Re: [GIT PULL] Xen APIC hooks (with io_apic_ops)
From: Avi Kivity
Date: Sun May 24 2009 - 16:11:33 EST
Ingo Molnar wrote:
IO APIC operations are not even slightly performance critical? Are
they ever used on the interrupt delivery path?
Since they are not performance critical, then why doesnt Xen catch
the IO-APIC accesses, and virtualizes the device?
If you want to hook into the IO-APIC code at such a low level, why
dont you hook into the _hardware_ API - i.e. catch those
setup/routing modifications to the IO-APIC space. No Linux changes
are needed in that case.
When x2apic is enabled, and EOI broadcast is disabled, then the io apic
does become a hot path - it needs to be written for each level-triggered
interrupt EOI. In this case I might want to paravirtualize the EOI
write to exit only if an interrupt is pending; otherwise communicate via
shared memory.
We do something similar for Windows (by patching it) very successfully;
Windows likes to touch the APIC TPR ~ 100,000 times per second, usually
without triggering an interrupt. We hijack these writes, do the checks
in guest context, and only exit if the TPR write would trigger an interrupt.
(kvm will likely gain x2apic support in 2.6.32; patches have already
been posted)
--
I have a truly marvellous patch that fixes the bug which this
signature is too narrow to contain.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/