Subject: Re: Crash with vnd
To: Martti Kuparinen <martti.kuparinen@iki.fi>
From: Manuel Bouyer <bouyer@antioche.lip6.fr>
List: port-xen
Date: 04/11/2005 13:03:42
On Mon, Apr 11, 2005 at 01:40:41PM +0300, Martti Kuparinen wrote:
> Manuel Bouyer wrote:
>
> >Ho, I've just seen yamt@'s commit, how many interrupts are you using ?
> >dmesg should show you ...
>
>
> xen1:~> dmesg | grep interrupt
dmesg | grep irq
would have been more complete, but anyway
> debug events interrupting at irq 0
> misdirect events interrupting at irq 1
> uhci0: interrupting at physical irq 16, irq 3
> uhci1: interrupting at physical irq 19, irq 4
> Intel 6300ESB Advanced Interrupt Controller (interrupt system, interface
> 0x20, revision 0x02) at pci0 dev 29 function 5 not configured
> ehci0: interrupting at physical irq 23, irq 5
> piixide0: primary channel interrupting at physical irq 14, irq 6
> piixide0: secondary channel interrupting at physical irq 15, irq 7
> wm0: interrupting at physical irq 18, irq 9
> wm1: interrupting at physical irq 24, irq 10
> wm2: interrupting at physical irq 25, irq 11
> wm3: interrupting at physical irq 21, irq 12
there is at last Xen clock, at irq 13 I guess.
Ok, so with 6 more domains, we're up to irq 25 assuming you have only one
xbd and one xennet per domain. We're close to the max number of interrupts
which is 27. With a 7th domain, it overflows, as well as if something else
also grab an interrupt.
This needs to be fixed in some way. I can see
- extend the interrupt bitmap. But even if we go with 2 32bit bitmaps, it may
still not be enouth, and needs some x86 assembly hacking.
We can go with a 2 level bitmap, just like we have for events,
but then we'd probably have an issue with IPLs. This needs more thoughs.
- share interrupts for different events of the same IPL. Easier to implement
but doens't scale well.
I can try to do the second solution to fix the immediate problem, and think
at a better solution for the long term. If we go with the first solution, we
could even map events to irqs 1-1 which could make a few things easier.
Maybe we could even just use the event bitmap for this, and keep the IRQ bitmap
only for soft interrupts.
--
Manuel Bouyer <bouyer@antioche.eu.org>
NetBSD: 26 ans d'experience feront toujours la difference
--