Bug 117291

Summary: Cannot enable LRO on ixgbe
Product: Drivers Reporter: Otto Sabart (seberm)
Component: NetworkAssignee: drivers_network (drivers_network)
Status: RESOLVED INVALID    
Severity: normal CC: bastienphilbert
Priority: P1    
Hardware: Intel   
OS: Linux   
Kernel Version: 4.6-rc5 Subsystem:
Regression: No Bisected commit-id:
Attachments: lspci
dmesg

Description Otto Sabart 2016-04-27 09:12:23 UTC
Created attachment 214521 [details]
lspci

I cannot enable LRO (large-receive-offload) on ixgbe device.


Version-Release number of selected component (if applicable):
$ uname -r
4.6.0-0.rc5.git0.1.el7.x86_64

$ ethtool -i ixgbe
driver: ixgbe
version: 4.2.1-k
firmware-version: 0x18f40001
bus-info: 0000:08:00.0
supports-statistics: yes
supports-test: yes
supports-eeprom-access: yes
supports-register-dump: yes
supports-priv-flags: no


$ ethtool -k ixgbe
Features for ixgbe:
rx-checksumming: on
tx-checksumming: on
        tx-checksum-ipv4: on
        tx-checksum-ip-generic: off [fixed]
        tx-checksum-ipv6: on
        tx-checksum-fcoe-crc: on [fixed]
        tx-checksum-sctp: on
scatter-gather: on
        tx-scatter-gather: on
        tx-scatter-gather-fraglist: off [fixed]
tcp-segmentation-offload: on
        tx-tcp-segmentation: on
        tx-tcp-ecn-segmentation: off [fixed]
        tx-tcp6-segmentation: on
udp-fragmentation-offload: off [fixed]
generic-segmentation-offload: on
generic-receive-offload: on
large-receive-offload: off [requested on]
rx-vlan-offload: on
tx-vlan-offload: on
ntuple-filters: off
receive-hashing: on
highdma: on [fixed]
rx-vlan-filter: on [fixed]
vlan-challenged: off [fixed]
tx-lockless: off [fixed]
netns-local: off [fixed]
tx-gso-robust: off [fixed]
tx-fcoe-segmentation: on [fixed]
tx-gre-segmentation: off [fixed]
tx-ipip-segmentation: off [fixed]
tx-sit-segmentation: off [fixed]
tx-udp_tnl-segmentation: off [fixed]
fcoe-mtu: off [fixed]
tx-nocache-copy: off
loopback: off [fixed]
rx-fcs: off [fixed]
rx-all: off
tx-vlan-stag-hw-insert: off [fixed]
rx-vlan-stag-hw-parse: off [fixed]
rx-vlan-stag-filter: off [fixed]
l2-fwd-offload: off
busy-poll: on [fixed]
hw-tc-offload: off

I have upstream kernel installed on RHEL7.2 - stable.

How reproducible:
100%


Steps to Reproduce:
1. $ ethtool -K ixgbe lro on
2. $ ethtool -k ixgbe | grep large-receive-offload
large-receive-offload: off [requested on]

Everytime it says "requested on" but I could not find a way to enable it.

I tried to restart ixgbe device and enable LRO, but I did not succeed:
$ ip link set ixgbe down
$ ethtool -K ixgbe lro off
$ ethtool -K ixgbe lro on
Could not change any device features
$ ip link set ixgbe up
$ ethtool -k ixgbe | grep large-receive-offload
large-receive-offload: off [requested on]


Actual results:
LRO is not working.


Expected results:
Working LRO.
Comment 1 Otto Sabart 2016-04-27 09:12:47 UTC
Created attachment 214531 [details]
dmesg
Comment 2 Otto Sabart 2016-04-27 09:36:10 UTC
On stable RHEL7.2 kernel everything works just fine.
Comment 3 [account disabled by administrator] 2016-04-29 00:38:01 UTC
Can you try changing this:
adapter->flags2 |= IXGBE_FLAG2_RSC_CAPABLE;
to:
 	adapter->flags2 |= IXGBE_FLAG2_RSC_CAPABLE;
	adapter->flags2 |= IXGBE_FLAG2_RSC_ENABLED;
for the function, ixgbe_sw_init in the file, drivers/net/ethernet/intel/ixgbe/ixgbe_main.c from the root of the kernel directory. In the same file change the line:
adapter->flags2 &= ~IXGBE_FLAG2_RSC_CAPABLE;
to:
 	adapter->flags2 &= ~IXGBE_FLAG2_RSC_CAPABLE;
	adapter->flags2 &= ~IXGBE_FLAG2_RSC_ENABLED;
and see if that fixes your issue as something disabled LRO by default on your card's driver in late 2015. Seems it was not back ported to the red hat kernel tree and therefore you may be seeing breakage just now of your driver on your current configuration with the latest rc kernel.
Comment 4 Otto Sabart 2016-05-06 10:02:13 UTC
Hello,
I badly described my problem. I was not able to turn on LRO immediately _after the boot_.

When I reloaded the ixgbe driver, LRO was possible to turn on without any problem.

I was enabling it in /etc/rc.local because network manager does not have support for offloads yet.

It seems the problem was caused by NM. When I disabled NM, LRO started to work.

Please close this as a "not a bug".

Thanks!
Comment 5 [account disabled by administrator] 2016-05-07 20:56:11 UTC
I cannot close the bug but you can do so as I did not open the ticket.