Hello !

Context: We are trying to put machines to sleep (suspend to ram state) and
wake them up very fast. The goal is to be up and running in a few hundred
milliseconds.

We currently have some issues with e1000 cards (I217-LM). These cards take
approximately 3 seconds to re-establish their link when coming back from D3
state. Is there a way to speed up the wakeup?


Here is what we have done and know:
- autonegotiation is disabled (it saved us 2s: with autonegotiation the
card takes 5s to wake up, now it "only" takes 3s). We are currently forcing
100Mbs full duplex.

- we use static IPs.

- very little time is spent in the kernel driver. The driver has fully done
all its work in ~100ms and then waits for ~3s for a link status change.

- we have confirmed that our cards and cables are fine using the Intel
LanConf tool -- everything looks good. We also have the same ~3s when
testing the "time to link" using Lanconf with a forced speed (no
autonegotiation), so our configuration seems fine too.



So it seems that the card spends a significant amount of time "setting up
the physical link". Any idea why? (Is it a requirement of the ethernet
specification? Any way to avoid that?)

One interesting insight is that if we unplug and re-plug the cable quickly
(less than 1s between unplug and re-plug), then the link is re-established
instantaneously: we see a "link is down" immediately followed by a "link is
up" in the kernel. So it seems that the card is able to "remember a cable"
and re-establish the connection quickly on a "known cable". But when we put
the card to sleep (or wait a while before re-plugging the cable), the card
seem to have forgotten that it knows the link. Any way to change that
behaviour?

Another option for us would be to always keep the link established, even
when the machine is put in sleep state. We have activated WoL hopping that
it would always keep the link up, but it does work (the physical link is
reset when switching from WoL mode to regular operation mode). Any idea on
how to do that?


And of course, any other insight is appreciated :)

Thanks in advance,
Baptiste.
------------------------------------------------------------------------------
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
patterns at an interface-level. Reveals which users, apps, and protocols are 
consuming the most bandwidth. Provides multi-vendor support for NetFlow, 
J-Flow, sFlow and other flows. Make informed decisions using capacity 
planning reports. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e
_______________________________________________
E1000-devel mailing list
E1000-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/e1000-devel
To learn more about Intel® Ethernet, visit 
http://communities.intel.com/community/wired

Reply via email to