Re: [tip:x86/irq] x86: apic: Fix mismerge, add arch_probe_nr_irqs() again

From: Eric W. Biederman
Date: Mon Mar 01 2010 - 16:59:15 EST


Ian Campbell <ijc@xxxxxxxxxxxxxx> writes:

> On Mon, 2010-03-01 at 10:34 -0800, Eric W. Biederman wrote:
>>
>> As of 2.6.33 the limitations in DomU support are:
>> - xen_evtchn_do_upcall starts with the irq number instead of
>> the irq_desc, and happens to unnecessarily call into arch
>> specific code.
>
> I saw a patch to fix this one recently, "xen: Remove unnecessary arch
> specific xen irq functions.", right?

Yes.

You probably want to modify evtnchn_to_irq to return an irq_desc.

It is going to take a bit but our next big step for the irq methods
is to make them all take struct irq_desc pointers instead of unsigned
int irq, so we don't have to repeat the lookups.

>> - Xen has an array irq_info[NR_IRQS] one of the last static arrays
>> sized at NR_IRQs in the entire kernel.
>
> Hopefully the same info as is in that array could (and indeed should) be
> instead stored in irq_desc->chip_data. Would you object to
> arch_init_copy_chip_data and arch_free_chip_data becoming function
> pointers within the struct irq_chip?

No objections. Now that I see those methods it looks like they always
should have been in irq_chip.

>> If you can fix the Xen code so it isn't dragging the rest of the
>> kernel down when it comes to large numbers of irqs more power to you.
>
> If you know of other aspects of the Xen code where this is the case (or
> find them in the future) please let me know, I'll do my best to fix
> them.

Good to hear.

Right now I am being a bit of a jack in the box reviewer. I don't have
time to work on the irq code right now but I occasionally pop out of
my box and review the code and try to keep it from descending into an
unmaintainable disaster.

Eric
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/