pxeboot hangs if link bounces

Ryan Stone rysto32 at gmail.com
Wed Jul 27 16:45:44 UTC 2011


I'm trying to track down a very mysterious problem I've having with
pxebooting on 8.2-RELEASE and head (as of r224149).  I've found that
if I bring the link to a PXE client down and back up while it's in
pxeboot, pxeboot hangs and never recovers.  I've tried bouncing the
link to the NFS server and I see the same behaviour, so I believe that
the issue is really due to packet loss.  I added printfs to the loader
and I've found that the hang occurs when in vm86int() when it's called
from pxe_call, from readudp.  Once I bring down the link, vm86int()
never returns.  That's a BIOS bug -- PXENV_UDP_READ is defined to be
non-blocking by the spec -- but what utterly mystifies me is that a
6.1-RELEASE pxeldr does not get blocked in a PXENV_UDP_READ call.

I'm going to try a binary search to narrow down what set of changes
introduced the problem, but I'm hoping that somebody might have an
idea as to what could have changed that triggers this BIOS bug.  I've
tried building with -DOLD_NFSv2 but that didn't resolve the problem.

Ryan Stone


More information about the freebsd-net mailing list