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

Re: [Xen-devel] [PATCH 09/10] events/x86: Define SCI virtual interrupt



On Sun, Nov 06, 2016 at 04:42:42PM -0500, Boris Ostrovsky wrote:
> PVH guests do not have IOAPIC which typically generates an SCI. For
> those guests SCI will be provided as a virtual interrupt.
> 
> We also move VIRQ_MCA definition out of xen-mca.h to
> keep all x86-specific VIRQ_ARCH_* in one place.

I somehow assumed that the ACPI MADT would be in the PVH guest so the
SCI would be enumerated in there (the INT_SVC_OVR) along with the magic
way one can figure this out.

But this implies that VIRQ17 is the SCI one? But how does
that connect to the SCI being at 9 (or 20)?

I know we don't have the LAPIC in there but going forward we may really
want it. Could you kindly explain how this VIRQ ends transumuting itself
in the MADT value? Or would there be an event(virq)->emulated GSI 
to be set?

Sorry for not following that.

Also you may want to expand the PVH markdown as well to document how the
CPU hotplug mechanism will work (or where you thinking to do that once
you get feedback on this, in which case pls ignore me).
> 
> Signed-off-by: Boris Ostrovsky <boris.ostrovsky@xxxxxxxxxx>
> ---
>  xen/include/asm-x86/event.h           | 3 ++-
>  xen/include/public/arch-x86/xen-mca.h | 2 --
>  xen/include/public/arch-x86/xen.h     | 3 +++
>  3 files changed, 5 insertions(+), 3 deletions(-)
> 
> diff --git a/xen/include/asm-x86/event.h b/xen/include/asm-x86/event.h
> index a82062e..9cad8e3 100644
> --- a/xen/include/asm-x86/event.h
> +++ b/xen/include/asm-x86/event.h
> @@ -38,9 +38,10 @@ static inline void local_event_delivery_enable(void)
>      vcpu_info(current, evtchn_upcall_mask) = 0;
>  }
>  
> -/* No arch specific virq definition now. Default to global. */
>  static inline int arch_virq_is_global(uint32_t virq)
>  {
> +    if ( virq == VIRQ_SCI )
> +     return 0;
>      return 1;
>  }
>  
> diff --git a/xen/include/public/arch-x86/xen-mca.h 
> b/xen/include/public/arch-x86/xen-mca.h
> index a97e821..b76c53c 100644
> --- a/xen/include/public/arch-x86/xen-mca.h
> +++ b/xen/include/public/arch-x86/xen-mca.h
> @@ -91,8 +91,6 @@
>  
>  #ifndef __ASSEMBLY__
>  
> -#define VIRQ_MCA VIRQ_ARCH_0 /* G. (DOM0) Machine Check Architecture */
> -
>  /*
>   * Machine Check Architecure:
>   * structs are read-only and used to report all kinds of
> diff --git a/xen/include/public/arch-x86/xen.h 
> b/xen/include/public/arch-x86/xen.h
> index cdd93c1..bffa3e0 100644
> --- a/xen/include/public/arch-x86/xen.h
> +++ b/xen/include/public/arch-x86/xen.h
> @@ -293,6 +293,9 @@ struct xen_arch_domainconfig {
>  };
>  #endif
>  
> +#define VIRQ_MCA VIRQ_ARCH_0 /* G. (DOM0) Machine Check Architecture */
> +#define VIRQ_SCI VIRQ_ARCH_1 /* V. (PVH) ACPI interrupt */
> +
>  #endif /* !__ASSEMBLY__ */
>  
>  /*
> -- 
> 2.7.4
> 
> 
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@xxxxxxxxxxxxx
> https://lists.xen.org/xen-devel

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

 


Rackspace

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