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

[Xen-devel] Re: [PATCH 36 of 38] xen: route hardware irqs via Xen



On Thu, Nov 13, 2008 at 11:10:34AM -0800, Jeremy Fitzhardinge wrote:
> This patch puts the hooks into place so that when the interrupt
> subsystem registers an irq, it gets routed via Xen (if we're running
> under Xen).
> 
> The first step is to get a gsi for a particular device+pin.  We use
> the normal acpi interrupt routing to do the mapping.
> 
> Normally the gsi number is used directly as the irq number.  We can't
> do that since we also have irqs for non-hardware event channels, and
> so we must share the irq space between them.  A given gsi is only
> allocated a single irq, so re-registering a gsi will simply return the
> same irq.
> 
> We therefore allocate an irq for a given gsi, and return that.  As a
> special case, we reserve the first 16 irqs for identity-mapping legacy
> irqs, since there's a fair amount of code which assumes that.
> 
> Having allocated an irq, we ask Xen to allocate a vector, and then
> bind that pirq/vector to an event channel.  When the hardware raises
> an interrupt on a vector, Xen signals us on the corresponding event
> channel, which gets routed to the irq and delivered to the appropriate
> device driver.
> 
> This patch does everything except set up the IO APIC pin routing to
> the vector.
> 
> Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@xxxxxxxxxx>
> ---
>  arch/x86/kernel/acpi/boot.c |    8 +++
>  arch/x86/pci/legacy.c       |    4 +
>  arch/x86/xen/Makefile       |    1
>  arch/x86/xen/pci.c          |   98 
> +++++++++++++++++++++++++++++++++++++++++++
>  arch/x86/xen/xen-ops.h      |    1
>  drivers/xen/events.c        |    9 ++-
>  include/asm-x86/xen/pci.h   |    7 +++
>  include/xen/events.h        |    8 +++
>  8 files changed, 132 insertions(+), 4 deletions(-)
> 

[snip]

> diff --git a/arch/x86/xen/xen-ops.h b/arch/x86/xen/xen-ops.h
> --- a/arch/x86/xen/xen-ops.h
> +++ b/arch/x86/xen/xen-ops.h
> @@ -63,7 +63,6 @@
>  static inline void xen_smp_init(void) {}
>  #endif
>  
> -
>  void xen_init_apic(void);
>  
>  /* Declare an asm function, along with symbols needed to make it

Hi Jeremy,

This seems like a spurious whitespace change that could be
merged into "[PATCH 30 of 38] xen: implement io_apic_ops"

[snip]

-- 
Simon Horman
  VA Linux Systems Japan K.K., Sydney, Australia Satellite Office
  H: www.vergenet.net/~horms/             W: www.valinux.co.jp/en


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

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