Messages in this thread | | | From | (Eric W. Biederman) | Date | Wed, 06 Aug 2008 10:37:54 -0700 | Subject | Re: [PATCH 00/33] dyn_array and nr_irqs support v4 |
| |
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
| |