[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