linux/drivers/dma
Thomas Petazzoni 777572911a dmaengine: mv_xor: optimize performance by using a subset of the XOR channels
Due to how async_tx behaves internally, having more XOR channels than
CPUs is actually hurting performance more than it improves it, because
memcpy requests get scheduled on a different channel than the XOR
requests, but async_tx will still wait for the completion of the
memcpy requests before scheduling the XOR requests.

It is in fact more efficient to have at most one channel per CPU,
which this patch implements by limiting the number of channels per
engine, and the number of engines registered depending on the number
of availables CPUs.

Marvell platforms are currently available in one CPU, two CPUs and
four CPUs configurations:

 - in the configurations with one CPU, only one channel from one
   engine is used.

 - in the configurations with two CPUs, only one channel from each
   engine is used (they are two XOR engines)

 - in the configurations with four CPUs, both channels of both engines
   are used.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
2015-08-19 22:32:14 +05:30
..
bestcomm dmaengine: constify of_device_id array 2015-03-18 22:13:14 +05:30
dw Merge branch 'for-linus' of git://git.infradead.org/users/vkoul/slave-dma 2015-04-24 09:49:37 -07:00
hsu dmaengine: hsu: remove excessive lock 2015-07-16 18:30:46 +05:30
ioat dmaengine: ioatdma: Clean up IOAT_COMPLETION_PENDING flag 2015-08-17 13:37:31 +05:30
ipu dmaengine: kill off set_irq_flags usage 2015-08-19 21:31:58 +05:30
ppc4xx dmaengine: Remove FSF mailing addresses 2015-03-16 22:28:15 +05:30
sh dmaengine updates for 4.2-rc1 2015-06-29 09:44:45 -07:00
xilinx dmaengine: xilinx-dma: move header file to common location 2015-03-17 16:23:21 +05:30
acpi-dma.c resources: Move struct resource_list_entry from ACPI into resource core 2015-02-05 15:09:25 +01:00
amba-pl08x.c dmaengine: pl08x: support dt channel assignment 2015-08-18 22:12:14 +05:30
at_hdmac_regs.h dmaengine: hdmac: Implement interleaved transfers 2015-06-12 18:13:36 +05:30
at_hdmac.c dmaengine: Use Pointer xt after NULL check. 2015-07-07 09:52:11 +05:30
at_xdmac.c dmaengine: at_xdmac: fix bug in prep_dma_cyclic 2015-08-19 21:21:28 +05:30
bcm2835-dma.c dmaengine: bcm2835-dma: Fix memory leak when stopping a running transfer 2015-03-30 23:17:08 +05:30
coh901318_lli.c
coh901318.c dmaengine: Add an enum for the dmaengine alignment constraints 2015-08-05 10:53:52 +05:30
coh901318.h
cppi41.c dmaengine: cppi41: add missing bitfields 2015-04-11 21:12:58 +05:30
dma-jz4740.c Merge branch 'for-linus' of git://git.infradead.org/users/vkoul/slave-dma 2015-04-24 09:49:37 -07:00
dma-jz4780.c dmaengine: jz4780: Kill tasklets before unregistering the device 2015-08-18 22:28:50 +05:30
dmaengine.c dmaengine updates for 4.2-rc1 2015-06-29 09:44:45 -07:00
dmaengine.h
dmatest.c kernel/params: constify struct kernel_param_ops uses 2015-05-28 11:32:10 +09:30
edma.c dmaengine: Add an enum for the dmaengine alignment constraints 2015-08-05 10:53:52 +05:30
ep93xx_dma.c dmaengine: ep93xx: Constify platform_device_id 2015-05-04 16:38:55 +05:30
fsl_raid.c dmaengine: fsl_raid: statify fsl_re_chan_probe 2015-04-02 16:11:35 +05:30
fsl_raid.h dmaengine: Driver support for FSL RaidEngine device. 2015-04-02 16:10:27 +05:30
fsl-edma.c dmaengine: fsl-edma: clear pending interrupts on initialization 2015-06-25 09:22:32 +05:30
fsldma.c dmaengine: fsldma: remove the unused variable 2015-01-13 23:58:08 +05:30
fsldma.h dmaengine: fsldma: declare slave capabilities for the generic code 2015-01-13 23:58:08 +05:30
img-mdc-dma.c dmaengine: img-mdc: remove device_alloc_chan_resources handler 2015-03-18 22:44:58 +05:30
imx-dma.c dmaengine: Add an enum for the dmaengine alignment constraints 2015-08-05 10:53:52 +05:30
imx-sdma.c dmaengine: imx-sdma: Add imx6sx platform support 2015-08-19 21:28:55 +05:30
iop-adma.c dmaengine: Remove FSF mailing addresses 2015-03-16 22:28:15 +05:30
k3dma.c dmaengine: Add an enum for the dmaengine alignment constraints 2015-08-05 10:53:52 +05:30
Kconfig dmaengine: add driver for lpc18xx dmamux 2015-08-18 22:12:14 +05:30
lpc18xx-dmamux.c dmaengine: add driver for lpc18xx dmamux 2015-08-18 22:12:14 +05:30
Makefile dmaengine: add driver for lpc18xx dmamux 2015-08-18 22:12:14 +05:30
mic_x100_dma.c x86/mm: Decouple <linux/vmalloc.h> from <asm/io.h> 2015-06-03 12:02:00 +02:00
mic_x100_dma.h dmaengine: Add an enum for the dmaengine alignment constraints 2015-08-05 10:53:52 +05:30
mmp_pdma.c dmaengine: Add an enum for the dmaengine alignment constraints 2015-08-05 10:53:52 +05:30
mmp_tdma.c dmaengine: Add an enum for the dmaengine alignment constraints 2015-08-05 10:53:52 +05:30
moxart-dma.c dmaengine: moxart-dma: Fix memory leak when stopping a running transfer 2015-03-30 23:17:08 +05:30
mpc512x_dma.c dmaengine: constify of_device_id array 2015-03-18 22:13:14 +05:30
mv_xor.c dmaengine: mv_xor: optimize performance by using a subset of the XOR channels 2015-08-19 22:32:14 +05:30
mv_xor.h dmaengine: mv_xor: improve descriptors list handling and reduce locking 2015-06-10 22:18:31 +05:30
mxs-dma.c dmaengine: mxs: Constify platform_device_id 2015-05-04 16:38:55 +05:30
nbpfaxi.c dmaengine: nbpfaxi: Constify platform_device_id 2015-05-04 16:38:55 +05:30
of-dma.c dmaengine: of_dma: Support for DMA routers 2015-05-09 17:11:25 +05:30
omap-dma.c Merge branch 'topic/omap' into for-linus 2015-06-25 09:21:43 +05:30
pch_dma.c dmaengine: Remove remaining FSF mailing addresses 2015-07-06 19:18:53 +05:30
pl330.c dmaengine: pl330: do not emit loop for 1 byte transfer. 2015-08-19 22:11:46 +05:30
pxa_dma.c dmaengine: pxa_dma: fix debug information 2015-08-18 22:10:09 +05:30
qcom_bam_dma.c Merge branch 'for-linus' of git://git.infradead.org/users/vkoul/slave-dma 2015-04-24 09:49:37 -07:00
s3c24xx-dma.c dmaengine: s3c24xx: Constify platform_device_id 2015-05-04 16:38:55 +05:30
sa11x0-dma.c dmaengine: sa11x0: report slave capabilities to upper layers 2015-04-17 23:24:35 +05:30
sirf-dma.c dmaengine: sirf: clear pending DMA interrupt when DMA terminates 2015-08-18 22:13:59 +05:30
ste_dma40_ll.c
ste_dma40_ll.h
ste_dma40.c dmaengine: Add an enum for the dmaengine alignment constraints 2015-08-05 10:53:52 +05:30
sun6i-dma.c dmaengine: Add an enum for the dmaengine alignment constraints 2015-08-05 10:53:52 +05:30
tegra20-apb-dma.c dmaengine: tegra: add slave capabilities reporting 2015-01-14 00:00:30 +05:30
ti-dma-crossbar.c dmaengine: Add driver for TI DMA crossbar on DRA7x 2015-05-14 20:49:25 +05:30
timb_dma.c dmaengine: Remove remaining FSF mailing addresses 2015-07-06 19:18:53 +05:30
TODO dmaengine: dw: don't perform DMA when dmaengine_submit is called 2014-07-15 22:14:30 +05:30
txx9dmac.c dmaengine: txx9: Rename device_control 2014-12-22 12:33:22 +05:30
txx9dmac.h MIPS: Replace MIPS-specific 64BIT_PHYS_ADDR with generic PHYS_ADDR_T_64BIT 2014-11-24 22:46:44 +01:00
virt-dma.c dmaengine: virt-dma: don't always free descriptor upon completion 2015-06-17 22:15:59 +05:30
virt-dma.h dmaengine: virt-dma: don't always free descriptor upon completion 2015-06-17 22:15:59 +05:30
xgene-dma.c dmaengine: Add an enum for the dmaengine alignment constraints 2015-08-05 10:53:52 +05:30