As an another addendum the AP+ multicomputer port (actually it is a part of the generic Sparc kernel sources) uses kernel threads to solve the problem of servicing a true fault from interrupt space. The kernel thread is called asyncd(), the AP+ multicomputer takes interrupts when one cell on the machine does a dma access to another cell and the page is not present or otherwise needs to be faulted in or whatever. The interrupt handler adds this fault to a queue of faults to service and wakes up the async daemon which runs with real time priority much like the other linux kernel daemons. Poof, solution to the classic interrupt context limitation problem. ;-) Later, David S. Miller (davem@caip.rutgers.edu) |