[ipxe-devel] [gPXE] Delay while booting Windows 7 from iSCSI
Michael Brown
mbrown at fensystems.co.uk
Mon Nov 22 16:40:26 UTC 2010
On Monday 22 Nov 2010 09:59:03 Erik Loman wrote:
> I actually found something interesting with Wireshark. Since there is no
> network traffic (for some time) when Windows boots it seems that
> Window's network is the cause of the delay. It is sending ARP requests.
>
> I have attached a screenshot of the device LoadOrder and Wireshark.
>
> Do I need to change something to the load order of the drivers? Do you
> have an idea on what to do?
(Please Cc ipxe-devel at lists.ipxe.org on replies.)
I note the following points of interest on the wireshark trace:
#60036 (21.58s) - this is the final packet sent by iPXE: a TCP ACK for the last
iSCSI response received by iPXE before Windows takes over.
#60038 (29.75s) - this is the first packet sent by Windows: a gratuitous ARP
which is presumably the Windows TCP/IP stack checking for an IP address
collision before using its IP address (10.1.1.199).
#60042 (35.46s) - this is the first packet sent by Windows after it decides it
is safe to use the IP address 10.1.1.199.
#60043 (35.46s) - this is the start of the Windows iSCSI connection
So, the delay from 29.75s to 35.46s is attributable to Windows checking for an
IP address collision. It looks as though you should be able to tune the
number of gratuitous ARPs using the registry entry:
HKLM\System\CurrentControlSet\Services\TcpIp\Parameters\ArpRetryCount
A value of zero may or may not work; at least some versions of Windows will
treat a value of zero as meaning "use default number".
Disabling gratuitous ARP probably does make sense in the case of an iSCSI
boot. If gratuitous ARP were to detect an IP address conflict, it would
prevent the local interface from using the IP address, which would cause the
boot to fail around a minute later with a STOP 0x0000007B error, with no way
to inform the user that the IP address conflict was the root cause. Given
this, you may as well disable it and speed up your system boot.
Michael
More information about the ipxe-devel
mailing list