Hi, Here is a series of patches for vector domain. By these patches, we can use more than 256 irqs. There are based on existing x86-64 vector domain code. There are for 2.6.21 and I tested them on my ia64 box. This patch set is just a draft, so there are following TBDs, I think. o How to create vector domain Per CPU, per node, or others? o How to migrate irq In migration, we don't handle the vector for the pending irqs. Probably we should manage it. o NR_IRQS size Because I define NR_IRQS as 4096, there is a huge array on generic kernel_stat area. I should determine appropriate size. o Relation between irq and gsi On x86_64, irq equals to gsi. It is one easy way to get a suitable irq number from gsi, However, when gsi is larger than the biggest irq, it doesn't work. o How to assign irq number If pci drivers are enabled/disabled devices dynamically, its irq number is changed to the different one. I want to avoid it. The following fourteen patches are related to the vector domain for ia64. This patch set applies against 2.6.21. [PATCH 1/12] Remove block structure for locking in iosapic.c [PATCH 2/12] Remove duplicated members in iosapic_rte_info [PATCH 3/12] Use per iosapic lock for indirect iosapic register access [PATCH 4/12] Cleanup lock order in iosapic_register_intr [PATCH 5/12] Use dynamic irq for iosapic interrupts [PATCH 6/12] Fix invalid irq vector assumption for iosapic [PATCH 7/12] Check if irq is sharable [PATCH 8/12] Add mapping table between irq and vector [PATCH 9/12] Add support for vector domain [PATCH 10/12] Support irq migration across domain [PATCH 11/12] Enable percpu vector domain for IA64_GENERIC [PATCH 12/12] Enable percpu vector domain for IA64_DIG For more details. please refer to the header of each patch. Any comments or questions are welcome. Thanks. Yasuaki Ishimatsu - To unsubscribe from this list: send the line "unsubscribe linux-ia64" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html
![]() |