Hello,
We need to boot system fast till ethernet functions correctly with ping.
We made a lot of effort, and got a little improvment, yet it still takes a lot of time till ping success
I would like to ask for Intel's suggestion as to what steps should be taken to get a further reduction and the timings.
A short description of what we did :
1. our configuration is based on kontron board, with pci i210 ethernet adapter:
# lspci
00:00.0 Host bridge: Intel Corporation Atom Processor Z36xxx/Z37xxx Series SoC Transaction Register (rev 11)
00:02.0 VGA compatible controller: Intel Corporation Atom Processor Z36xxx/Z37xxx Series Graphics & Display (rev 11)
00:13.0 IDE interface: Intel Corporation Atom Processor E3800 Series SATA IDE Controller (rev 11)
00:16.0 USB controller: Intel Corporation Atom Processor Z36xxx/Z37xxx Series OTG USB Device (rev 11)
00:17.0 SD Host controller: Intel Corporation Atom Processor E3800 Series eMMC 4.5 Controller (rev 11)
00:1b.0 Audio device: Intel Corporation Atom Processor Z36xxx/Z37xxx Series High Definition Audio Controller (rev 11)
00:1c.0 PCI bridge: Intel Corporation Atom Processor E3800 Series PCI Express Root Port 1 (rev 11)
00:1c.2 PCI bridge: Intel Corporation Atom Processor E3800 Series PCI Express Root Port 3 (rev 11)
00:1c.3 PCI bridge: Intel Corporation Atom Processor E3800 Series PCI Express Root Port 4 (rev 11)
00:1d.0 USB controller: Intel Corporation Atom Processor Z36xxx/Z37xxx Series USB EHCI (rev 11)
00:1f.0 ISA bridge: Intel Corporation Atom Processor Z36xxx/Z37xxx Series Power Control Unit (rev 11)
00:1f.3 SMBus: Intel Corporation Atom Processor E3800 Series SMBus Controller (rev 11)
01:00.0 PCI bridge: PLX Technology, Inc. PEX 8505 5-lane, 5-port PCI Express Switch (rev aa)
03:00.0 Ethernet controller: Intel Corporation I210 Gigabit Network Connection (rev 03)
2. The initial system takes ~11 seconds from boot till ping ack response :
2.1 interval of 3 seconds till kernel starts
2.2 interval of 1.8 seconds till init.d scripts starts
2.3 interval of 3 seconds from igb init till link is up
2.4 interval of 3 seconds from link up till we get ping ack response
4. we made various trials and modifications:
4.1. changed igb kernel to force disable of autonegotiation - improvement of 2 seconds, in intervbal 2.4 (from link up till ping),
4.2. we optimization 4.1 above (disable autonegotiation), which reduced 2.4 interval (from link up till ping) from 3sec to ~0.2 seconds ?
4.3. We start igb in bootargs (ip=...) , so that it will starts earlier in kernel.
4.4. We use static arp.
I have the following questions:
1. I mean, I expected it to reduce 2.3 interval (the time till link is up) .
Does it make sense ?
2. What steps should I take now ?
3. Should I change NVM ? if yes - Why NVM should give better results than directly modify driver as needed ?
Thank you for any suggestion on this issue,
ranran