linux/drivers/dma
Laurent Pinchart 1ed1315f9b dmaengine: rcar-dmac: Cache hardware descriptors memory
Unlike DMA transfers descriptors that are preallocated and cached,
memory used to store hardware descriptors is allocated and freed with
the DMA coherent allocation API for every transfer. Besides degrading
performances, this creates a CMA stress test that seems to cause issues.
Running dmatest with the noverify option produces

[   50.066539] alloc_contig_range test_pages_isolated(6b845, 6b846) failed
[   50.235180] alloc_contig_range test_pages_isolated(6b848, 6b84e) failed
[   52.964584] alloc_contig_range test_pages_isolated(6b847, 6b848) failed
[   54.127113] alloc_contig_range test_pages_isolated(6b843, 6b844) failed
[   56.270253] alloc_contig_range test_pages_isolated(6b84c, 6b850) failed

The root cause needs to be fixed, but in the meantime, as a workaround
and a performance improvement, cache hardware descriptors.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Tested-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
2014-12-23 11:13:03 +02:00
..
bestcomm dma: bestcomm: drop owner assignment from platform_drivers 2014-10-20 16:20:28 +02:00
dw dmaengine: dw: update the driver comments 2014-12-22 20:26:45 +05:30
ioat dmaengine: ioatdma: fix dma mapping errors 2014-12-09 14:52:05 +05:30
ipu dmaengine: ipu-idmac: Split device_control 2014-12-22 12:28:59 +05:30
ppc4xx dma: ppc4xx: drop owner assignment from platform_drivers 2014-10-20 16:20:29 +02:00
sh dmaengine: rcar-dmac: Cache hardware descriptors memory 2014-12-23 11:13:03 +02:00
xilinx dmaengine: xilinx: Split device_control 2014-12-22 12:33:21 +05:30
acpi-dma.c acpi-dma: convert to return error code when asked for channel 2014-02-11 23:30:50 +05:30
amba-pl08x.c dmaengine: pl08x: Split device_control 2014-12-22 12:28:56 +05:30
at_hdmac_regs.h dmaengine: at_hdmac: update the driver comments 2014-12-22 20:24:14 +05:30
at_hdmac.c dmaengine: hdmac: Split device_control 2014-12-22 12:28:57 +05:30
at_xdmac.c dmaengine: at_xdmac: Declare slave capabilities for the generic code 2014-12-22 12:33:23 +05:30
bcm2835-dma.c dmaengine: bcm2835: Declare slave capabilities for the generic code 2014-12-22 12:33:23 +05:30
coh901318_lli.c Merge branch 'next' of git://git.infradead.org/users/vkoul/slave-dma 2013-02-26 09:24:48 -08:00
coh901318.c dmaengine: coh901318: Split device_control 2014-12-22 12:28:57 +05:30
coh901318.h dma: coh901318: merge header files 2013-01-07 17:36:37 +01:00
cppi41.c dmaengine: cppi41: Split device_control 2014-12-22 12:28:57 +05:30
dma-jz4740.c dmaengine: jz4740: Split device_control 2014-12-22 12:28:58 +05:30
dmaengine.c dmaengine: Add a warning for drivers not using the generic slave caps retrieval 2014-12-22 12:34:21 +05:30
dmaengine.h
dmatest.c dmaengine-3.17 2014-10-07 20:39:25 -04:00
edma.c dmaengine: edma: Declare slave capabilities for the generic code 2014-12-22 12:33:23 +05:30
ep93xx_dma.c dmaengine: ep93xx: update the driver comments 2014-12-22 20:27:25 +05:30
fsl-edma.c dmaengine: fsl-edma: Declare slave capabilities for the generic code 2014-12-22 12:33:23 +05:30
fsldma.c dmaengine: fsl-dma: Split device_control 2014-12-22 12:29:03 +05:30
fsldma.h dmaengine: Freescale: change descriptor release process for supporting async_tx 2014-07-14 21:32:18 +05:30
imx-dma.c dmaengine: imx: Split device_control 2014-12-22 12:28:59 +05:30
imx-sdma.c dmaengine: imx-sdma: Split device_control 2014-12-22 12:28:59 +05:30
intel_mid_dma_regs.h
intel_mid_dma.c dmaengine: intel-mid-dma: Split device_control 2014-12-22 12:28:59 +05:30
iop-adma.c dmaengine: Remove .owner field for driver 2014-11-06 11:54:18 +05:30
k3dma.c dmaengine: k3: Split device_control 2014-12-22 12:28:59 +05:30
Kconfig Merge branch 'topic/at_xdmac' into for-linus 2014-12-05 19:31:32 +05:30
Makefile dmaengine: rcar-dmac: Add Renesas R-Car Gen2 DMA Controller (DMAC) driver 2014-12-23 11:13:01 +02:00
mic_x100_dma.c dma: MIC X100 DMA Driver 2014-07-12 09:57:42 -07:00
mic_x100_dma.h dma: MIC X100 DMA Driver 2014-07-12 09:57:42 -07:00
mmp_pdma.c dmaengine: mmp-pdma: Split device_control 2014-12-22 12:29:00 +05:30
mmp_tdma.c dmaengine: mmp-tdma: Split device_control 2014-12-22 12:29:00 +05:30
moxart-dma.c dmaengine: moxart: Split device_control 2014-12-22 12:29:01 +05:30
mpc512x_dma.c dmaengine: mpc512x: Split device_control 2014-12-22 12:29:04 +05:30
mv_xor.c dmaengine: mv_xor: Remove device_control 2014-12-22 12:33:22 +05:30
mv_xor.h dma: mv_xor: Add support for DMA_INTERRUPT 2014-09-23 20:17:01 +05:30
mxs-dma.c dmaengine: mxs-dma: fix unused variable warn 2014-12-22 12:34:23 +05:30
nbpfaxi.c dmaengine: nbpfaxi: update the driver comments 2014-12-22 20:28:04 +05:30
of-dma.c dmaengine: of: add common xlate function for matching by channel id 2014-07-26 00:21:41 +05:30
omap-dma.c dmaengine: omap: fix the assignment to .device_config 2014-12-22 12:34:22 +05:30
pch_dma.c dmaengine: pch-dma: Rename device_control 2014-12-22 12:33:22 +05:30
pl330.c dmaengine: pl330: Declare slave capabilities for the generic code 2014-12-22 12:34:21 +05:30
qcom_bam_dma.c dmaengine: bam-dma: Split device_control 2014-12-22 12:32:15 +05:30
s3c24xx-dma.c dmaengine: s3c24xx: Split device_control 2014-12-22 12:32:15 +05:30
sa11x0-dma.c dmaengine: sa11x0: Split device_control 2014-12-22 12:32:15 +05:30
sirf-dma.c dmaengine: sirf: Declare slave capabilities for the generic code 2014-12-22 12:34:21 +05:30
ste_dma40_ll.c dmaengine: ste_dma40_ll: Replace meaningless register set with comment 2013-06-04 11:12:10 +02:00
ste_dma40_ll.h dmaengine: ste_dma40: Remove unnecessary call to d40_phy_cfg() 2013-05-23 21:13:19 +02:00
ste_dma40.c dmaengine: ste_dma: fix incompatible pointer type warns 2014-12-22 12:34:23 +05:30
sun6i-dma.c dmaengine: sun6i: Declare slave capabilities for the generic code 2014-12-22 12:34:21 +05:30
tegra20-apb-dma.c dmaengine: tegra: fix incompatible pointer type warns 2014-12-22 12:34:23 +05:30
timb_dma.c dmaengine: td: Rename device_control 2014-12-22 12:33:22 +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
virt-dma.h dma: fix vchan_cookie_complete() debug print 2014-01-26 17:33:45 +05:30