> - (RvH) I changed host-linux.c so that it takes the amount of
> quanta to run as an argument to ioctl(). Now it doesn't trap
> back to the user application on ever quantum.
Just one point: not every interrupt reflected back means that a
quantum has passed ;-) (Anyway, I don't think there is any
particular use in running for a specific number of quantums
-- just run until something happens ...)
> on 2.2 we use current->need_resched, but is this true for
> 2.0 too, or does it have need_resched as a global variable ?
On 2.0, need_resched is indeed a global variable.
> 2.2 SMP is rather annoying because it allocates lots of IPIs,
> and most of them aren't fixed (2.2 SMP does not use the 0x20-
> 0x2f mapping for the PIC, but has everything go through the
> I/O APIC with rather weird interrupt mappings). In order to
> allocate the correct interrupts I need access to a kernel
> array called irq_vector[], which unfortunately is not exported
> to modules.
Argh. Are you really sure this is worth all that effort? Just to
avoid an additional fault in the unlikely case that the guest OS uses
a software interrupt that doesn't overlap with hardware vectors?
I'd still propose to just redirect all interrupts in the 32..255 range
and be done with it -- no OS dependency, no trouble ;-)
Bye,
Ulrich
--
Ulrich Weigand,
IMMD 1, Universitaet Erlangen-Nuernberg,
Martensstr. 3, D-91058 Erlangen, Phone: +49 9131 85-7688