Re: [PATCH 00/33] dyn_array and nr_irqs support v4

Eric W. Biederman
2008-08-06T17:43:25Z

Yinghai Lu <yhlu.kernel@gmail.com> writes:

> Please check dyn_array support for x86
> v3: split changing to nr_irqs to small patches
> fix checkpatch error
> reorder the patch sequence to make dyn_array support go at first
> so could use that with arrays other than NR_IRQS
> v4: add CONFIG_HAVE_SPARSE_IRQ with list to use condensed irq_desc array
> so could use 32 init, and init more if needed.
>
> now: x86 32bit: have CONFIG_HAVE_DYN_ARRAY
> x86 64bit: have CONFIG_HAVE_DYN_ARRAY and CONFIG_HAVE_SPARSE_IRQ
>
> left:
> a. hook irq_2_iommu to irq_desc ?
> b. expand /proc/interrupts to process > nr_irqs
> c. expand to use irq > nr_irqs for msi
>
> notes: may break some arch compling...

It looks like you might possibly be iterating to something usable.
Breaking architectures is not acceptable however.

My suggestion for a non-breaking path:
- Kill NR_IRQS in then generic code.
With Alan's serial patch and my kstat patch it looks like we have
the worst of that.

- Introduce get_irq_desc and the functions or function modifications
that pass a struct irq_desc * into the genirq code.

Although I absolutely hate the name get_irq_desc as it implies we are
reference counting something and need a corresponding put_irq_desc.
Since the lifetime rules don't require that. Please just call the
function irq_desc().

- Update arch/x86 to do everything interesting with irq_desc pointers.

- Start dynamically allocating irq_desc and irq_cfg.

Eric