Bug 550148

Summary: [Cisco 5.5 bug] Update enic driver to version
Product: Red Hat Enterprise Linux 5 Reporter: Scott Feldman <scofeldm>
Component: kernelAssignee: Andy Gospodarek <agospoda>
Status: CLOSED ERRATA QA Contact: Red Hat Kernel QE team <kernel-qe>
Severity: high Docs Contact:
Priority: high    
Version: 5.0CC: abjoglek, andriusb, cward, mgahagan, peterm, rlerch, vkolluri
Target Milestone: rcKeywords: OtherQA
Target Release: 5.5   
Hardware: All   
OS: Linux   
Fixed In Version: Doc Type: Bug Fix
Doc Text:
The enic driver has been updated to version
Story Points: ---
Clone Of: Environment:
Last Closed: 2010-03-30 03:09:08 EDT Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---
Bug Depends On:    
Bug Blocks: 541103    
Description Flags
Bug fix: use safe queue shutdown in dev->stop
Bug fix: try harder to fill Rx ring on skb allocation failures
minimize pkt filter updates to firmware
Bug fix: align desc ring sizes to 32 descs
feature add: add ethtool -c/C support
whitespace cleanup; #define cleanup; more verbose err msg
remove duplicate code left over from previous merge
Consolidated single patch for all changes
enic-5.5-proposed.patch none

Description Scott Feldman 2009-12-23 13:50:00 EST
1.  Feature Overview:
     a. See summary

     b. Feature Description
          Update the enic driver from to to address issues 
          found during test leading up to Beta.  The updates have been posted 
          to the upstream netdev mailing list

2.  Feature Details:
     a. Architectures:
         32-bit x86
         64-bit Intel EM64T/AMD64
     b. Red Hat Bugzilla Dependencies:

     c. Drivers or hardware dependencies:

     d. Upstream acceptance information:
          The patches have been submitted upstream, reviewed, and resubmitted to 
          address review comments.  Pending acceptance by netdev maintainer soon,
          but may be delayed due to holiday.

     e. External links:

     f. Severity (U,H,M,L):
         High (required for Hardware Enablement)

     g. Target Release Date:
         HW releasing beginning of Q1'10

3. Business Justification:
     a. Why is this feature needed?
         To fix bugs found in testing of Cisco's 10G Ethernet NIC
     b. What hardware does this enable?
         Cisco's 10G Ethernet NIC included with Cisco's UCS blade server product
     c. Forecast, impact on revenue?
     d. Any configuration info?
     e. Are there other dependencies (drivers).

4. Primary contact at Red Hat, email, phone (chat)
    First_Name Last_Name
     Phone Number

5. Primary contact at Partner, email, phone (chat)
    Scott Feldman
Comment 1 Scott Feldman 2009-12-23 13:57:32 EST
Attached reworked patches that apply cleanly to 182.el5 test kernel found at: http://people.redhat.com/dzickus/el5.  These are the same patches posted upstream, just re-diffed against the latest RH 182 kernel.  There is one additional patch (the latest one) that's need only for RH 182 to fix a previous merge error where some lines in the code are duplicated.
Comment 2 Scott Feldman 2009-12-23 14:01:20 EST
Created attachment 380075 [details]
Bug fix: use safe queue shutdown in dev->stop

Fix dev->stop shutdown bug where driver was stopping xmit queue and then
disabling intrs.  Fix is to disable intrs first and then stop the xmit
queue, otherwise an interrupt could cause the queue to be rewoken.  Also,
no need to explicitly do queue servicing because queues are cleaned and
reset back to initial state at end of dev->stop.  Servicing queues also
had the side-effect of also rewakening the xmit queue, which is not what
we want.

Signed-off-by: Vasanthy Kolluri <vkolluri@cisco.com>
Signed-off-by: Scott Feldman <scofeldm@cisco.com>
Comment 3 Scott Feldman 2009-12-23 14:02:00 EST
Created attachment 380076 [details]
Bug fix: try harder to fill Rx ring on skb allocation failures

During dev->open(), make sure we get at least one skb on the Rx ring. 
Otherwise abort the interface load.  Also, if we get skb allocation
failures in NAPI poll while trying to replenish the ring, try again
later so we don't end up starving out the Rx ring completely.
Comment 4 Scott Feldman 2009-12-23 14:02:43 EST
Created attachment 380077 [details]
minimize pkt filter updates to firmware

In set_multicast(), only push pkt filter changes down to firmware if
pkt filter actually changes.
Comment 5 Scott Feldman 2009-12-23 14:03:26 EST
Created attachment 380078 [details]
Bug fix: align desc ring sizes to 32 descs

Previous driver was aligning ring sizes to 16 descs, but hardware actually
wants desc ring sizes to be aligned to 32 descs.

Signed-off-by: Vasanthy Kolluri <vkolluri@cisco.com>
Signed-off-by: Scott Feldman <scofeldm@cisco.com>
Comment 6 Scott Feldman 2009-12-23 14:03:58 EST
Created attachment 380079 [details]
feature add: add ethtool -c/C support

Only rx_usec and tx_usec options for ethtool -C are settable as those
are the only settings that make sense to HW.  Adds driver reporting of 
intr coalescing timer value in usec units rather than HW units.

Signed-off-by: Vasanthy Kolluri <vkolluri@cisco.com>
Signed-off-by: Scott Feldman <scofeldm@cisco.com>
Comment 7 Scott Feldman 2009-12-23 14:04:33 EST
Created attachment 380080 [details]
whitespace cleanup; #define cleanup; more verbose err msg

Some misc changes to cleanup whitespace issues and fix/remove some #define
HW defintions.

1) fix some whitespace issues
2) more verbose err msg when resources aren't available to configure vnic
3) remove unused #define
4) fix RSS #define rss hash types

Signed-off-by: Vasanthy Kolluri <vkolluri@cisco.com>
Signed-off-by: Scott Feldman <scofeldm@cisco.com>
Comment 8 Scott Feldman 2009-12-23 14:05:22 EST
Created attachment 380081 [details]
remove duplicate code left over from previous merge

remove duplicate code left over from previous merge
Comment 9 Andrius Benokraitis 2009-12-23 14:56:53 EST
Thanks Scott - we'll take a look at these first thing in 2010.
Comment 10 Scott Feldman 2009-12-25 00:52:14 EST
The patches were accepted upstream by davem...
Comment 13 RHEL Product and Program Management 2010-01-04 14:42:04 EST
This request was evaluated by Red Hat Product Management for inclusion in a Red
Hat Enterprise Linux maintenance release.  Product Management has requested
further review of this request by Red Hat Engineering, for potential
inclusion in a Red Hat Enterprise Linux Update release for currently deployed
products.  This request is not yet committed for inclusion in an Update
Comment 14 Chris Ward 2010-01-05 09:33:29 EST

We need to confirm that there is commitment to test for 
the resolution of this request during the RHEL 5.5 Beta 
Test Phase before we can approve it for acceptance 
into the release.

RHEL 5.5 Beta Test Phase is expected to begin around February

In order to avoid any unnecessary delays, please post a 
confirmation as soon as possible, including the contact 
information for testing engineers.

Any additional information about alternative testing variations we 
could use to reproduce this issue in-house would be appreciated.
Comment 15 Scott Feldman 2010-01-06 17:18:48 EST

Per your comment #14, Cisco is committed to testing enic updates for RHEL 5.5
beta test.

The Cisco QA contact is Anthony Kent <antkent@cisco.com>.

Comment 16 Scott Feldman 2010-01-07 01:33:59 EST
Created attachment 382165 [details]
Consolidated single patch for all changes

Consolidated single patch for all changes.  This applies cleanly against 2.6.18-183.el5.  I thought I'd include it here for convenience.
Comment 17 Andy Gospodarek 2010-01-08 15:33:43 EST
Created attachment 382544 [details]

Scott, thanks for the help with this driver.  I've proposed the following patch for inclusion in RHEL5.5.  It includes a 2 other small commits that we missed in the past:

commit d19e22dc2c1c43724c1d9ce4a5456ae74eeb6da8
Author: Scott Feldman <scofeldm@cisco.com>
Date:   Thu Sep 3 17:02:08 2009 +0000

    enic: use netdev_alloc_skb

commit 09640e6365c679b5642b1c41b6d7078f51689ddf
Author: Harvey Harrison <harvey.harrison@gmail.com>
Date:   Sun Feb 1 00:45:17 2009 -0800

    net: replace uses of __constant_{endian}

so we are now shipping code that is almost identical to what is in net-next-2.6 aside from backporting differences.  Please let me know if you see any problems with these changes.
Comment 19 Scott Feldman 2010-01-08 15:49:26 EST
Andy, the proposed patch looks good.  Near identical to net-next-2.6 is great.  Thanks Andy.

Comment 22 Chris Ward 2010-02-11 05:32:34 EST
~~ Attention Customers and Partners - RHEL 5.5 Beta is now available on RHN ~~

RHEL 5.5 Beta has been released! There should be a fix present in this 
release that addresses your request. Please test and report back results 
here, by March 3rd 2010 (2010-03-03) or sooner.

Upon successful verification of this request, post your results and update 
the Verified field in Bugzilla with the appropriate value.

If you encounter any issues while testing, please describe them and set 
this bug into NEED_INFO. If you encounter new defects or have additional 
patch(es) to request for inclusion, please clone this bug per each request
and escalate through your support representative.
Comment 23 Andrius Benokraitis 2010-02-11 13:00:48 EST
Technical note added. If any revisions are required, please edit the "Technical Notes" field
accordingly. All revisions will be proofread by the Engineering Content Services team.

New Contents:
The enic driver has been updated to version
Comment 24 Scott Feldman 2010-02-11 13:07:21 EST
Yes, confirmed RHEL 5.5 Beta has enic  Full testing started with pre-Beta drop, and now test has transitioned to Beta.  Will report test results later.
Comment 26 Scott Feldman 2010-03-09 23:23:51 EST
Automation enic test suite 100% complete, all PASS.

Manual testing ongoing, 15% complete/PASS so far.
Comment 28 errata-xmlrpc 2010-03-30 03:09:08 EDT
An advisory has been issued which should help the problem
described in this bug report. This report is therefore being
closed with a resolution of ERRATA. For more information
on therefore solution and/or where to find the updated files,
please follow the link below. You may reopen this bug report
if the solution does not work for you.