Source-Changes archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
CVS commit: src/sys/arch/xen
Module Name: src
Committed By: bouyer
Date: Sat Apr 16 22:49:38 UTC 2005
Modified Files:
src/sys/arch/xen/i386: genassym.cf hypervisor_machdep.c vector.S
src/sys/arch/xen/include: cpu.h evtchn.h hypervisor.h if_xennetvar.h
intr.h pci_machdep.h
src/sys/arch/xen/x86: intr.c
src/sys/arch/xen/xen: clock.c ctrl_if.c evtchn.c if_xennet.c
isa_machdep.c pci_machdep.c pciide_machdep.c xbd.c xbdback.c
xencons.c xenevt.c xennetback.c
Added Files:
src/sys/arch/xen/include: intrdefs.h
Log Message:
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.1 -r1.2 src/sys/arch/xen/i386/genassym.cf
cvs rdiff -r1.6 -r1.7 src/sys/arch/xen/i386/hypervisor_machdep.c
cvs rdiff -r1.8 -r1.9 src/sys/arch/xen/i386/vector.S
cvs rdiff -r1.7 -r1.8 src/sys/arch/xen/include/cpu.h
cvs rdiff -r1.4 -r1.5 src/sys/arch/xen/include/evtchn.h \
src/sys/arch/xen/include/if_xennetvar.h
cvs rdiff -r1.10 -r1.11 src/sys/arch/xen/include/hypervisor.h
cvs rdiff -r1.2 -r1.3 src/sys/arch/xen/include/intr.h \
src/sys/arch/xen/include/pci_machdep.h
cvs rdiff -r0 -r1.1 src/sys/arch/xen/include/intrdefs.h
cvs rdiff -r1.5 -r1.6 src/sys/arch/xen/x86/intr.c
cvs rdiff -r1.9 -r1.10 src/sys/arch/xen/xen/clock.c
cvs rdiff -r1.4 -r1.5 src/sys/arch/xen/xen/ctrl_if.c \
src/sys/arch/xen/xen/evtchn.c
cvs rdiff -r1.19 -r1.20 src/sys/arch/xen/xen/if_xennet.c
cvs rdiff -r1.3 -r1.4 src/sys/arch/xen/xen/isa_machdep.c \
src/sys/arch/xen/xen/pci_machdep.c src/sys/arch/xen/xen/xenevt.c
cvs rdiff -r1.2 -r1.3 src/sys/arch/xen/xen/pciide_machdep.c
cvs rdiff -r1.16 -r1.17 src/sys/arch/xen/xen/xbd.c
cvs rdiff -r1.7 -r1.8 src/sys/arch/xen/xen/xbdback.c
cvs rdiff -r1.5 -r1.6 src/sys/arch/xen/xen/xencons.c
cvs rdiff -r1.6 -r1.7 src/sys/arch/xen/xen/xennetback.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Home |
Main Index |
Thread Index |
Old Index