[gPXE-devel] [PATCH] [sky2] Disable interrupts by default

Stefan Hajnoczi stefanha at gmail.com
Tue Aug 3 04:28:44 EDT 2010


On Tue, Aug 3, 2010 at 8:50 AM, Gilles Martin <gilles.martin at psi.ch> wrote:
> 2. With the undionly.kpxe it works but not very well:
>
> dhcp net0
> chain http://myserver/undionly.kpxe
>
> This runs fine.
>
> dhcp net0 gives systematically first time it runs a timeout (I tried
> several times):
>
> dhcp net0 (net0 00:17:42:1d:29:b7).............. Connection timed out
> (0x4c106035)
> Could not configure net0: Connection timed out (0x4c106035)
> Could not configure any interface.
> gPXE> dhcp net0
> DHCP (net0 00:17:42:1d:29:b7)....ok
>
> And then it loads the Tiny Core Linux without any problems.

I wonder if interrupts aren't working the first time around.  Tests to
reveal more:

1. Instead of running the first DHCP, just use ifopen net0 and then
wait for 1 minute.  Then try dhcp net0.  If the dhcp succeeds then
this may be a link or Spanning Tree Protocol issue (although I'm not
sure because undionly.kpxe was loaded successfully in the first
place).

2. Run two DHCPs but hit Ctrl+C to abort the first DHCP right away.
Then run dhcp net0 again.  If the second DHCP works, then the issue
may be a sky2 lifecycle issue where interrupts don't work until we do
DHCP the second time.

3. Build with debug messages: make DEBUG=sky2:10.  The output during
the first dhcp would be interesting.

> 3. I tried to load undionly.kpxe from undionly.kpxe and this crashes
> gPXE (may be I should not do this!):
>
> dhcp net0
> chain http://myserver/undionly.kpxe
> dhcp net0
> chain http://myserver/undionly.kpxe
> dhcp net0 (here is the crash)

I see the second undionly.kpxe's DHCP hang when double-loading in KVM
on top of Etherboot rtl8139.  This is an issue/limitation with
undionly.kpxe, not sky2.

(The problem may be the interrupt-based nature of UNDI.  Although you
can chain interrupt vectors, I'm not sure an interrupt gets propagated
to both instances of undionly.kpxe.)

Stefan


More information about the gPXE-devel mailing list