linux/arch/powerpc/sysdev
Ian Munsie b0345bbc6d powerpc/msi: Improve IRQ bitmap allocator
Currently msi_bitmap_alloc_hwirqs() will round up any IRQ allocation requests
to the nearest power of 2. eg. ask for 5 IRQs and you'll get 8. This wastes a
lot of IRQs which can be a scarce resource.

For cxl we may require multiple IRQs for every context that is attached to the
accelerator. There may be 1000s of contexts attached, hence we can easily run
out of IRQs, especially if we are needlessly wasting them.

This changes the msi_bitmap_alloc_hwirqs() to allocate only the required number
of IRQs, hence avoiding this wastage. It keeps the natural alignment
requirement though.

Signed-off-by: Ian Munsie <imunsie@au1.ibm.com>
Signed-off-by: Michael Neuling <mikey@neuling.org>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
2014-10-08 20:15:42 +11:00
..
ge powerpc: Delete non-required instances of include <linux/init.h> 2014-01-15 13:46:44 +11:00
qe_lib powerpc: Delete non-required instances of include <linux/init.h> 2014-01-15 13:46:44 +11:00
xics powerpc/powernv: Don't call generic code on offline cpus 2014-09-25 23:14:50 +10:00
6xx-suspend.S
axonram.c powerpc: make of_device_ids const 2014-09-25 23:14:46 +10:00
cpm1.c powerpc: Mark low level irq handlers NO_THREAD 2013-06-20 16:55:08 +10:00
cpm2.c
cpm2_pic.c powerpc: Delete non-required instances of include <linux/init.h> 2014-01-15 13:46:44 +11:00
cpm2_pic.h
cpm_common.c powerpc: add explicit OF includes 2013-10-09 20:04:11 -05:00
dart.h
dart_iommu.c powerpc/kmemleak: Do not scan the DART table 2014-06-24 14:29:46 +10:00
dcr-low.S
dcr.c powerpc: Export dcr_ind_lock to fix build error 2014-09-25 23:14:45 +10:00
ehv_pic.c powerpc:eVh_pic: Kill irq_desc abuse 2014-03-04 17:37:51 +01:00
fsl_85xx_cache_ctlr.h
fsl_85xx_cache_sram.c
fsl_85xx_l2ctlr.c powerpc: make of_device_ids const 2014-09-25 23:14:46 +10:00
fsl_gtm.c Merge remote-tracking branch 'grant/devicetree/next' into for-next 2013-11-07 10:34:46 -06:00
fsl_lbc.c powerpc/85xx: handle the eLBC error interrupt if it exists in dts 2014-01-10 17:19:27 -06:00
fsl_mpic_err.c
fsl_mpic_timer_wakeup.c powerpc/fsl: add MPIC timer wakeup support 2013-07-01 18:38:42 -05:00
fsl_msi.c Revert "powerpc/fsl_msi: spread msi ints across different MSIRs" 2014-09-19 15:20:42 -05:00
fsl_msi.h Revert "powerpc/fsl_msi: spread msi ints across different MSIRs" 2014-09-19 15:20:42 -05:00
fsl_pci.c powerpc: fsl_pci: Add forced PCI Agent enumeration 2014-09-03 18:51:23 -05:00
fsl_pci.h fsl/pci: The new pci suspend/resume implementation 2014-03-19 22:37:44 -05:00
fsl_pmc.c powerpc: add explicit OF includes 2013-10-09 20:04:11 -05:00
fsl_rio.c powerpc/fsl-rio: Fix fsl_rio_setup error paths and use-after-unmap 2014-05-09 15:49:05 -05:00
fsl_rio.h
fsl_rmu.c powerpc/rmu: Fix the error memory free parameters 2014-05-22 18:08:13 -05:00
fsl_soc.c powerpc/fsl: fsl_soc: remove 'fixed-link' parsing code 2014-05-22 15:16:44 -04:00
fsl_soc.h powerpc/mpc512x: remove unnecessary #if 2013-10-30 22:56:10 +01:00
grackle.c
i8259.c powerpc: Delete non-required instances of include <linux/init.h> 2014-01-15 13:46:44 +11:00
indirect_pci.c powerpc/sysdev: Fix a pci section mismatch for Book E 2014-01-07 19:23:31 -06:00
ipic.c
ipic.h
Kconfig powerpc: Added PCI MSI support using the HSTA module 2014-05-01 08:26:30 +10:00
Makefile powerpc: Added PCI MSI support using the HSTA module 2014-05-01 08:26:30 +10:00
micropatch.c powerpc/8xx: Remove empty asm/mpc8xx.h 2014-06-25 18:49:40 -05:00
mmio_nvram.c
mpc5xxx_clocks.c
mpc8xx_pic.c powerpc: Delete non-required instances of include <linux/init.h> 2014-01-15 13:46:44 +11:00
mpc8xx_pic.h
mpic.c powerpc: Make a bunch of things static 2014-09-25 23:14:41 +10:00
mpic.h
mpic_msgr.c powerpc/mpic_msgr: Use kcalloc and correct the argument to sizeof 2014-07-29 19:26:31 -05:00
mpic_msi.c of/irq: Replace of_irq with of_phandle_args 2013-10-24 11:42:51 +01:00
mpic_pasemi_msi.c
mpic_timer.c powerpc/mpic_timer: fix convert ticks to time subtraction overflow 2014-01-09 17:52:14 -06:00
mpic_u3msi.c
msi_bitmap.c powerpc/msi: Improve IRQ bitmap allocator 2014-10-08 20:15:42 +11:00
mv64x60.h
mv64x60_dev.c powerpc: make of_device_ids const 2014-09-25 23:14:46 +10:00
mv64x60_pci.c
mv64x60_pic.c
mv64x60_udbg.c dt/bindings: Remove device_type "serial" from marvell,mv64360-mpsc 2014-01-16 16:31:31 +00:00
of_rtc.c powerpc: add explicit OF includes 2013-10-09 20:04:11 -05:00
pmi.c powerpc: make of_device_ids const 2014-09-25 23:14:46 +10:00
ppc4xx_cpm.c
ppc4xx_gpio.c
ppc4xx_hsta_msi.c powerpc: Added PCI MSI support using the HSTA module 2014-05-01 08:26:30 +10:00
ppc4xx_msi.c
ppc4xx_ocm.c powerpc/44x: Fix ocm_block allocation 2013-12-10 11:25:04 +11:00
ppc4xx_pci.c powerpc: Added PCI MSI support using the HSTA module 2014-05-01 08:26:30 +10:00
ppc4xx_pci.h
ppc4xx_soc.c powerpc: add explicit OF includes 2013-10-09 20:04:11 -05:00
rtc_cmos_setup.c PTR_RET is now PTR_ERR_OR_ZERO(): Replace most. 2013-07-15 11:25:01 +09:30
scom.c powerpc/scom: Improve debugfs interface 2013-11-06 14:13:50 +11:00
simple_gpio.c
simple_gpio.h
tsi108_dev.c
tsi108_pci.c
udbg_memcons.c powerpc: Delete non-required instances of include <linux/init.h> 2014-01-15 13:46:44 +11:00
uic.c
xilinx_intc.c powerpc: make of_device_ids const 2014-09-25 23:14:46 +10:00
xilinx_pci.c powerpc: make of_device_ids const 2014-09-25 23:14:46 +10:00