Re: [RFC PATCH 23/35] Add support for Xen event channels.

Andi Kleen
2006-03-22T15:03:30Z

On Wednesday 22 March 2006 07:31, Chris Wright wrote:
> Support Xen event channels instead of the i8259 PIC.
>
> Event channels are used to inject events into the kernel, either from
> the hypervisor or from another VM. The injected events are mapped to
> interrupts.
>
> If an event needs to be injected, the hypervisor causes an upcall into
> the kernel. The upcall handler then scans the event pending bitmap
> and calls do_IRQ for each pending event.

This looks like mostly generic code. Shouldn't most of this belong
into drivers/xen to be used by other architectures too? Putting
so much generic code into i386 looks wrong.

>
> -#if defined(CONFIG_X86_IO_APIC)
> +#if defined(CONFIG_X86_XEN)
> +extern void hw_resend_irq(struct hw_interrupt_type *h, unsigned int i);
> +#elif defined(CONFIG_X86_IO_APIC)
> static inline void hw_resend_irq(struct hw_interrupt_type *h, unsigned int i)
> {
> if (IO_APIC_IRQ(i))

Better just put this out of line in the native case too.

> +/* Upcall to generic IRQ layer. */
> +#ifdef CONFIG_X86

We don't do such things with ifdef trees. Put the necessary
code into asm/

> --- /dev/null
> +++ xen-subarch-2.6/include/asm-i386/mach-xen/irq_vectors.h
> @@ -0,0 +1,126 @@
> +/*
> + * This file should contain #defines for all of the interrupt vector
> + * numbers used by this architecture.

This is mostly identical with native right? Sharing, sharing, sharing.

-Andi