Messages in this thread | | | Date | Fri, 16 Jan 2004 00:42:10 +0200 | From | Mika Penttilä <> | Subject | Re: [PATCH] 2.6.1-mm2: Get irq_vector size right for generic subarch UP installer kernels |
| |
James Cleverdon wrote:
>On Wednesday 14 January 2004 8:36 pm, Zwane Mwaikambo wrote: > > >>On Wed, 14 Jan 2004, Nakajima, Jun wrote: >> >> >>>I tend to agree. I think the confusing part is the range of the IRQs on >>>that machine. Assuming that irq_vector[NR_IRQ_VECTORS = 1024] requires >>>more entries, then the IRQs should take that range, because >>>IO_APCI_VECTOR(irq) is just irq_vector[irq], for example. If NR_IRQS is >>>still 224, how can do_IRQ() can get the correct IRQ (i.e. >= 224) ? So >>>in that case, the IRQ should be smaller than 224, then irq_vector[] >>>should be smaller. >>> >>> >>In my opinion we should be breaking after we've exceeded the maximum >>external vectors we can install. This will of course mean less than >>the number of RTEs. James have you actually managed to use the devices >>connected to the high (over ~224) RTEs? >> >> > >No, I haven't exceeded the available vectors, but wli has on a large NUMA-Q >box. > >The x440 and x445's problems are pre-reserving lots of bus numbers in the >BIOS, more than one per PCI slot. They must be anticipating PCI cards with >bridge chips on them. > >I believe that the reason for irq_vector being so large is to allow IRQ (and >eventually vector) sharing. The array is to map from RTE to vector. > > Any attempt to setup an irq >= NR_IRQS will crash, because for instance entry.c interrupt stubs are an array of NR_IRQS entries...NR_IRQ_VECTORS > NR_IRQS really doesn't make sense as is.
We do support irq sharing among devices, but not vector sharing among irqs. For that the handler should loop through irq_vector[] to find every index, index != irq, irq_vector[index] == irq_vector[irq].
--Mika
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |