We noticed very slow app performance when 10g SFP+ card has no modules
plugged in. After some digging, it seems to be related to the ethtool
ioctl call to those interfaces w/o modules. This is the sequence of the
problematic call:
dev_ioctl
rtnl_lock()
dev_ethtool()
ixgbe_get_settings()
ixgbe_identify_sfp_module_generic()
ixgbe_read_i2c_eeprom_generic()
...(rest of logic omitted)
rtnl_unlock()
ixgbe_read_i2c_eeprom_generic() would try to read a byte from i2c bus (clk
& data line driven by sw), it would fail, the function would proceed with
msleep(100), and retry. After 10 retries, it gives up. All this time
(~0.4s) the lock is held.
On our system w/ a 4 port SFP+ card, and snmpd goes around and issue ioctl
to each of those interfaces, the effect is quite obvious.
Has anyone else run into this issue or have a fix? :) I'm experimenting
with reducing the number of retries and the msleep duration, but not sure
if that may break other things. ixgbe used is 3.19.1 off sourceforge.
Haven't worked with ixgbe code much, your insight is greatly appreciated.
Thanks,
Jason
------------------------------------------------------------------------------
HPCC Systems Open Source Big Data Platform from LexisNexis Risk Solutions
Find What Matters Most in Your Big Data with HPCC Systems
Open Source. Fast. Scalable. Simple. Ideal for Dirty Data.
Leverages Graph Analysis for Fast Processing & Easy Data Exploration
http://p.sf.net/sfu/hpccsystems
_______________________________________________
E1000-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/e1000-devel
To learn more about Intel® Ethernet, visit
http://communities.intel.com/community/wired