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

[Xen-devel] Re: [PATCH 02/18] xen: hook io_apic read/write operations



Ingo Molnar wrote:
* Ingo Molnar <mingo@xxxxxxx> wrote:

* Jeremy Fitzhardinge <jeremy@xxxxxxxx> wrote:

--- a/arch/x86/kernel/apic/io_apic.c
+++ b/arch/x86/kernel/apic/io_apic.c
@@ -62,8 +62,10 @@
 #include <asm/uv/uv_hub.h>
 #include <asm/uv/uv_irq.h>
+#include <asm/xen/hypervisor.h>
 #include <asm/apic.h>
+
 #define __apicdebuginit(type) static type __init
/*
@@ -407,14 +409,26 @@ static inline void io_apic_eoi(unsigned int apic, 
unsigned int vector)
static inline unsigned int io_apic_read(unsigned int apic, unsigned int reg)
 {
-       struct io_apic __iomem *io_apic = io_apic_base(apic);
+       struct io_apic __iomem *io_apic;
+
+       if (xen_initial_domain())
+               return xen_io_apic_read(apic, reg);
hm, any reason why we dont want to create a 'struct io_apic' driver abstraction instead of spreading xen_initial_domain() checks all around the code?

My initial patch did that, and I'm happy to revive it. But HPA preferred this approach, arguing against introducing another layer of abstraction for the sake of one user.

And on a higher level, i still dont see why you dont do the whole Xen thing under an irqchip. There should be no extra crappy checks in native code.

Hm, every time you see this code, you always have this quasi-Pavlovian response. You say "use an irqchip". I say:

   * We already use irqchip
   * but most of the interesting IO apic accesses (routing) are not
     done via the irqchip interface
   * so irqchip doesn't help

And then you don't reply.  And then you raise it again.

I would *always* prefer to hook into an interface like irqchip rather than gouge into the code, but I really think that irqchip isn't that interface. If you have a more specific suggestion or proposal I'll happily follow it up, but repeating "you should use an irqchip" isn't getting anywhere.

To reiterate:

   * irq_chip is all about interrupt delivery, masking, acking, etc
   * these Xen dom0 apic changes are all about interrupt routing
   * irq_chip doesn't cover routing


   J

_______________________________________________
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®.