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

Re: [Xen-devel] [PATCH 0/4] Add posted interrupt supporting



On Tue, Apr 09, 2013 at 02:01:27PM +0800, Yang Zhang wrote:
> From: Yang Zhang <yang.z.zhang@xxxxxxxxx>
> 
> The follwoing patches are adding the Posted Interrupt supporting to Xen:
> Posted Interrupt allows vAPIC interrupts to inject into guest directly
> without any vmexit.

Is there a mechanism for the guest to figure out whether this is exported?

Right now the Linux PVHVM guests will use the event channel mechanism
(via the 0xf3 callback vector). This means that if we want to do
IPIs (RESCHEDULE_VECTOR or CALL_FUNCTION_*) we end up doing a vmexit -
but with this we should be able to do these inside the guest right?

If so, is there a mechanism inside the guest to detect this and
use the HVM mechanisms for IPI?

It is mostly just the matter of not calling 'xen_hvm_smp_init' in the
Linux kernel.

> 
> - 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
> 
> Refer to Intel SDM vol3, 29.6  to get more information.
> 
> Yang Zhang (4):
>   VMX: Detect posted interrupt capability
>   VMX: Turn on posted interrupt bit in vmcs
>   VMX: Add posted interrupt supporting
>   VMX: Use posted interrupt to deliver virutal interrupt
> 
>  xen/arch/x86/hvm/vioapic.c                     |    4 +-
>  xen/arch/x86/hvm/vlapic.c                      |   19 +++++-
>  xen/arch/x86/hvm/vmsi.c                        |    5 +-
>  xen/arch/x86/hvm/vmx/vmcs.c                    |   18 +++++-
>  xen/arch/x86/hvm/vmx/vmx.c                     |   81 
> ++++++++++++++++++++++++
>  xen/arch/x86/hvm/vmx/vpmu_core2.c              |    5 +-
>  xen/arch/x86/hvm/vpt.c                         |   10 ++-
>  xen/include/asm-x86/hvm/hvm.h                  |    2 +
>  xen/include/asm-x86/hvm/vlapic.h               |    1 +
>  xen/include/asm-x86/hvm/vmx/vmcs.h             |   13 ++++
>  xen/include/asm-x86/hvm/vmx/vmx.h              |   22 +++++++
>  xen/include/asm-x86/mach-default/irq_vectors.h |    3 +-
>  12 files changed, 172 insertions(+), 11 deletions(-)
> 
> 
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@xxxxxxxxxxxxx
> http://lists.xen.org/xen-devel
> 

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.