RE: [PATCH v6 0/5] KVM: VMX: Add Posted Interrupt supporting

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Gleb Natapov wrote on 2013-03-18:
> On Mon, Mar 18, 2013 at 02:49:25AM +0000, Zhang, Yang Z wrote:
>> Zhang, Yang Z wrote on 2013-03-15:
>>> From: Yang Zhang <yang.z.zhang@xxxxxxxxx>
>>> 
>>> The follwoing patches are adding the Posted Interrupt supporting to KVM:
>>> The first patch enables the feature 'acknowledge interrupt on vmexit'.Since
>>> it is required by Posted interrupt, we need to enable it firstly.
>>> 
>>> And the subsequent patches are adding the posted interrupt supporting:
>>> Posted Interrupt allows APIC interrupts to inject into guest directly
>>> without any vmexit.
>>> 
>>> - When delivering a interrupt to guest, if target vcpu is running,
>>>   update Posted-interrupt requests bitmap and send a notification
>>>   event to the vcpu. Then the vcpu will handle this interrupt
>>>   automatically, without any software involvemnt. - If target vcpu is
>>>   not running or there already a notification event pending in the
>>>   vcpu, do nothing. The interrupt will be handled by next vm entry
>>> NOTE: We don't turn on the Posted Interrupt until the coalesced issue is
>>> solved.
>>> 
>>> Changes from v5 to v6:
>>> * Split sync_pir_to_irr into two functions one to query whether PIR is empty
>>>   and the other to perform the sync.
>>> * Add comments to explain how vmx_sync_pir_to_irr() work.
>>> * Rebase on top of KVM upstream.
>>> 
>>> Changes from v4 to v5:
>>> * Add per cpu count for posted IPI handler.
>>> * Dont' check irr when delivering interrupt. Since we can not get interrupt
>>>   coalesced info with Posted Interrupt. So there is no need to check the
>>>   irr. There is another patch will changed current interrupt coalesced
>>>   logic. Before it, we will not turn on Posted Interrupt. * Clear
>>>   outstanding notification bit after call local_irq_disable, but before
>>>   check request. As Marcelo suggested, we can ensure the IPI not lost in
>>>   this way * Remove the spinlock. Same as item 2, if not need to get
>>>   coalesced info, then no need the lock.
>>> * Rebase on top of KVM upstream.
>>> 
>>> Yang Zhang (5):
>>>   KVM: VMX: Enable acknowledge interupt on vmexit
>>>   KVM: VMX: Register a new IPI for posted interrupt
>>>   KVM: VMX: Check the posted interrupt capability
>>>   KVM: VMX: Add the algorithm of deliver posted interrupt
>>>   KVM : VMX: Use posted interrupt to deliver virtual interrupt
>>>  arch/x86/include/asm/entry_arch.h  |    4 +
>>>  arch/x86/include/asm/hardirq.h     |    3 +
>>>  arch/x86/include/asm/hw_irq.h      |    1 +
>>>  arch/x86/include/asm/irq_vectors.h |    5 +
>>>  arch/x86/include/asm/kvm_host.h    |    5 +
> arch/x86/include/asm/vmx.h
>>>         |    4 + arch/x86/kernel/entry_64.S         |    5 +
>>>  arch/x86/kernel/irq.c              |   22 ++++
>>>  arch/x86/kernel/irqinit.c          |    4 + arch/x86/kvm/irq.c
>>>         |    3 +- arch/x86/kvm/lapic.c               |   29 ++++-
>>>         arch/x86/kvm/lapic.h               |    2 + arch/x86/kvm/svm.c
>>>         |   30 +++++ arch/x86/kvm/vmx.c                 |  223
>>>  ++++++++++++++++++++++++++++++++---- arch/x86/kvm/x86.c
>>>  |    8 +- virt/kvm/kvm_main.c                |    1 + 16 files changed,
>>>  320 insertions(+), 29 deletions(-)
>> Are there any other comments with this patch?
>> 
> Haven't reviewed it yet, will do ASAP. "Use eoi to track RTC interrupt
> delivery status" series is pre-request for this one.
> 
>> For TMR issue, since it has nothing to do with APICv, if we really need to handle
> it later, then we may need a separate patch to fix it. But currently, we may
> focused on APICv only.
>> 
> What do you mean by "TMR has nothing to do with APICv"?
Just ignore it. I will send out the fixing with APICv patch.

Best regards,
Yang


--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux