Subject: CVS commit: [netbsd-3] src/sys/arch/xen/i386
To: None <source-changes@NetBSD.org>
From: Matthias Scheler <tron@netbsd.org>
List: source-changes
Date: 04/28/2005 10:19:48
Module Name: src
Committed By: tron
Date: Thu Apr 28 10:19:48 UTC 2005
Modified Files:
src/sys/arch/xen/i386 [netbsd-3]: vector.S
Log Message:
Pull up revision 1.9 (requested by bouyer in ticket #193):
Get rid of the event to pseudo-irq mapping. We are limited to 32 pseudo-irq,
including soft interrupt, and this is way too low in some use (lots of domains,
or domains with lots of xennet, or even hardware with lots of devices at
different interrupts).
Based on idea from YAMAMOTO Takashi, keep one list of handler per-event and
one per-IPL (so the same handler is now in 2 lists). In the common case were
an event is received at low IPL, we can call the handlers quickly (there
is usually only one handler per event, unless the event is mapped to a
physical interrupt and this interrupt is shared by different devices).
Deffered events and software interrupts are handled by a bitmask (as before)
with one bit per IPL. When one IPL has an event pending all handlers for
this IPL will be called.
With this change, it is now possible to have all the 1024 events active.
While here, handle debug event in a special way: the handler is always called,
regardless of the current IPL. Make the handler print usefull informations
about events and IPL states.
Also remove code not used on Xen in files inherited from the x86 port.
To generate a diff of this commit:
cvs rdiff -r1.6.2.2 -r1.6.2.3 src/sys/arch/xen/i386/vector.S
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.