Port-xen archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Crash with vnd



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@localhost>
     NetBSD: 26 ans d'experience feront toujours la difference
--



Home | Main Index | Thread Index | Old Index