[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [PATCH v2 00/11] x86/intr: introduce EOI callbacks and fix vPT
Hello, The following series introduces EOI callbacks and switches a number of subsystems to use them. The first one is vmsi and dpci, which are quite straight forward to switch since they used to open code hooks in the EOI handlers. Finally HVM virtual timers are also switched to a different model where EOI callbacks are used instead of checking at every return to guest whether a timer interrupt is being injected. Note that such change also fixes a bug in virtual periodic timers that prevented injecting to a vCPU different than the one where the timer is assigned (and that would currently match the i8259 target). Those changes are paired together so that practical applications of having EOI callbacks can be seen in action. Note that further cleanup can be done, but I think the series is already big enough and could benefit from some review in order to know whether the direction taken is acceptable. Not posting as RFC as part of the series has already been posted before, but some patches could be considered RFC. Thanks, Roger. Roger Pau Monne (11): x86/hvm: drop vcpu parameter from vlapic EOI callbacks x86/hvm: drop domain parameter from vioapic/vpic EOI callbacks x86/vlapic: introduce an EOI callback mechanism x86/vmsi: use the newly introduced EOI callbacks x86/vioapic: switch to use the EOI callback mechanism x86/hvm: allowing registering EOI callbacks for GSIs x86/dpci: move code x86/dpci: switch to use a GSI EOI callback x86/vpt: switch interrupt injection model x86/vpt: remove vPT timers per-vCPU lists x86/vpt: introduce a per-vPT lock xen/arch/x86/domain.c | 2 +- xen/arch/x86/emul-i8254.c | 1 + xen/arch/x86/hvm/hpet.c | 8 +- xen/arch/x86/hvm/hvm.c | 19 +- xen/arch/x86/hvm/irq.c | 60 ++++ xen/arch/x86/hvm/rtc.c | 1 + xen/arch/x86/hvm/svm/intr.c | 3 - xen/arch/x86/hvm/vioapic.c | 139 +++++---- xen/arch/x86/hvm/vlapic.c | 66 ++++- xen/arch/x86/hvm/vmsi.c | 36 ++- xen/arch/x86/hvm/vmx/intr.c | 59 ---- xen/arch/x86/hvm/vpic.c | 8 +- xen/arch/x86/hvm/vpt.c | 465 +++++++++--------------------- xen/drivers/passthrough/io.c | 215 ++++++++------ xen/include/asm-x86/hvm/io.h | 4 +- xen/include/asm-x86/hvm/irq.h | 21 ++ xen/include/asm-x86/hvm/vcpu.h | 3 +- xen/include/asm-x86/hvm/vioapic.h | 2 +- xen/include/asm-x86/hvm/vlapic.h | 18 +- xen/include/asm-x86/hvm/vpt.h | 23 +- 20 files changed, 574 insertions(+), 579 deletions(-) -- 2.28.0
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |