2
0
mirror of https://github.com/xcat2/xNBA.git synced 2024-11-22 01:21:45 +00:00
xCAT Network Boot Agent
Go to file
Michael Brown 9acf442c20 [pxe] Avoid potential interrupt storms when using shared interrupts
Current gPXE code always returns "OURS" in response to
PXENV_UNDI_ISR:START.  This is harmless for non-shared interrupt
lines, and avoids the complexity of trying to determine whether or not
we really did cause the interrupt.  (This is a non-trivial
determination; some drivers don't have interrupt support and hook the
system timer interrupt instead, for example.)

A problem occurs when we have a shared interrupt line, the other
device asserts an interrupt, and the controlling ISR does not chain to
the other device's ISR when we return "OURS".  Under these
circumstances, the other device's ISR never executes, and so the
interrupt remains asserted, causing an interrupt storm.

Work around this by returning "OURS" if and only if our net device's
interrupt is currently recorded as being enabled.  Since we always
disable interrupts as a result of a call to PXENV_UNDI_ISR:START, this
guarantees that we will eventually (on the second call) return "NOT
OURS", allowing the other ISR to be called.  Under normal operation,
including a non-shared interrupt situation, this change will make no
difference since PXENV_UNDI_ISR:START would be called only when
interrupts were enabled anyway.

Signed-off-by: Michael Brown <mcb30@etherboot.org>
2010-03-23 01:39:52 +00:00
contrib [contrib] Add README file to rom-o-matic 2010-01-18 21:37:14 -05:00
src [pxe] Avoid potential interrupt storms when using shared interrupts 2010-03-23 01:39:52 +00:00
COPYING Initial revision 2005-05-17 16:44:57 +00:00
COPYRIGHTS Rename Copyrights to COPYRIGHTS for consistency with other filenames 2008-02-14 16:21:51 -05:00
LOG Update LOG for 0.9.3 release 2008-02-14 16:33:43 -05:00
README Add README file which replaces INSTALL and gives pointers to more information. 2008-02-14 16:17:30 -05:00

gPXE README File

gPXE is an implementation of the PXE specification for network
booting, with extensions to allow additional features such as booting
via HTTP, iSCSI, and AoE.  

In generally, gPXE is compatible with the industry-standard PXE
specification, and also supports Etherboot .nbi file loading and some
additional protocols and features.

For more detailed information about gPXE, please visit our project
website at: http://etherboot.org/

BUILDING gPXE IMAGE FROM SOURCE

If you don't want to install development tools, and have access to the
Web, you can get gPXE and Etherboot ROM images made on demand from
http://rom-o-matic.net/

If you would like to compile gPXE images from source, here are some tips.

We normally compile gPXE images on x86, 32-bit Linux machines. It is
possible to also use x86-64 machines. We use gcc compiler options to
create 32-bit output.

It is important to have the necessary software  packages installed.  A gcc-based
toolchain is required.

The following packages (at least) are required:

  - a gcc tool chain (gcc 3.x or gcc 4.x)
  - binutils
  - perl
  - syslinux
  - mtools
  
To test your environment, cd to the "src" directory and type:

   make

You should see a lot of output, and when it stops, the "bin" directory
should be populated with gPXE images and object files.

To learn more about what to build and how to use gPXE, please visit our
project website at http://etherboot.org/ , particularly the "howto" section.

CONTACTING US

Pointers to our project mailing lists are on http://etherboot.org/

Real-time help is often available on IRC on the #etherboot channel of
irc.freenode.net.