[lkml]   [2012]   [Jun]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    Subject[PATCHv6 0/8] kvm: eoi optimization support
    I'm looking at reducing the interrupt overhead for virtualized guests:
    some workloads spend a large part of their time processing interrupts.

    On kvm, an EOI write from the guest causes an expensive exit to host; we
    avoid this using shared memory.

    The patches work fine on my boxes. See individual patches
    for perf tests. You need to patch qemu to whitelist the kvm feature.
    qemu patch was sent separately.

    The patches are against Linus's master and apply to kvm.git
    cleanly. The last patch in the series, supplying the host
    part, also depends on the ISR optimization patch that I
    have for convenience included in the series (patch 2),
    I also included a documentation patch (patch 1) - it is
    here since it clarifies patch 2. This revision does not yet address
    Thomas's idea of reworking the APIC page handling. Changes to this
    optimization would require reworking this last patch in the series.

    The rest of the patchset has not changed since v2.


    Changes from v5:
    Clear PV EOI when we cancel interrupts.
    Pointed out by Gleb.
    Always set ISR cache when we inject an interrupt.
    Suggested by Ronen Hod.

    Changes from v4:
    Turn off PV EOI on each exit. Turn it back on when safe.
    Suggested by Avi.
    Address bug with nested interrupts pointed out by Marcelo.

    Changes from v3:
    Address review comments by Marcelo:
    Multiple cosmetic changes eoi -> pv_eoi
    Added multiple comments
    Changes from v2:
    Kill guest with GP on an illegal MSR value
    Add documentation

    Changes from v1:
    Add host side patch to series
    Remove kvm-specific __test_and_clear_bit, document
    that x86 one does what we want already
    Clear msr on cpu unplug

    Michael S. Tsirkin (8):
    kvm: document lapic regs field
    kvm: optimize ISR lookups
    kvm_para: guest side for eoi avoidance
    x86/bitops: note on __test_and_clear_bit atomicity
    kvm: eoi msi documentation
    kvm: only sync when attention bits set
    kvm: rearrange injection cancelling code
    kvm: host side for eoi optimization

    Documentation/virtual/kvm/msr.txt | 32 ++++++
    arch/x86/include/asm/bitops.h | 13 ++-
    arch/x86/include/asm/kvm_host.h | 12 +++
    arch/x86/include/asm/kvm_para.h | 7 ++
    arch/x86/kernel/kvm.c | 51 ++++++++++-
    arch/x86/kvm/cpuid.c | 1 +
    arch/x86/kvm/lapic.c | 188 +++++++++++++++++++++++++++++++++++-
    arch/x86/kvm/lapic.h | 11 ++
    arch/x86/kvm/trace.h | 34 +++++++
    arch/x86/kvm/x86.c | 20 +++-
    10 files changed, 353 insertions(+), 16 deletions(-)


     \ /
      Last update: 2012-06-03 10:01    [W:0.040 / U:51.500 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site