Bug 117291 - Cannot enable LRO on ixgbe
Summary: Cannot enable LRO on ixgbe
Status: RESOLVED INVALID
Alias: None
Product: Drivers
Classification: Unclassified
Component: Network (show other bugs)
Hardware: Intel Linux
: P1 normal
Assignee: drivers_network@kernel-bugs.osdl.org
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-04-27 09:12 UTC by Otto Sabart
Modified: 2016-05-09 10:01 UTC (History)
1 user (show)

See Also:
Kernel Version: 4.6-rc5
Subsystem:
Regression: No
Bisected commit-id:


Attachments
lspci (128.80 KB, text/plain)
2016-04-27 09:12 UTC, Otto Sabart
Details
dmesg (88.06 KB, text/plain)
2016-04-27 09:12 UTC, Otto Sabart
Details

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.

Note You need to log in before you can comment on or make changes to this bug.