linux/drivers/dma
Alexander Duyck 07bd34db29 ioat: Do not enable DCA if tag map is invalid
I have encountered several systems that have an invalid tag map.  This
invalid tag map results in only two tags being generated 0x1F which is
usually applied to the first core in a Hyper-threaded pair and 0x00 which
is applied to the second core in a Hyper-threaded pair.  The net result of
all this is that DCA causes significant cache thrash because the 0x1F tag
will send traffic to the second socket, which the 0x00 tag will not DCA tag
the frame resulting in no benefit.

For now the best solution from the driver's perspective is to just disable
DCA if the tag map is invalid.  The correct solution for this would be to
have the BIOS on affected systems updated so that the correct tags are
generated for a given APIC ID.

Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
Tested-by: Stephen Ko <stephen.s.ko@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
2012-11-15 05:20:01 -08:00
..
ioat ioat: Do not enable DCA if tag map is invalid 2012-11-15 05:20:01 -08:00
ipu dma: ipu: remove the use of ipu_platform_data 2012-07-01 21:57:43 +08:00
ppc4xx dma: fix comments 2012-09-01 08:57:12 -07:00
sh dmaengine: shdma: restore partial transfer calculation 2012-08-01 13:48:52 +09:00
Kconfig drivers/dma/dw_dmac: make driver's endianness configurable 2012-10-25 14:37:53 -07:00
Makefile dmaengine: mmp-pdma support 2012-09-14 08:14:07 +05:30
TODO dmaengine: remove ste_dma40 from issue_pending TODO 2011-07-14 04:02:08 +05:30
amba-pl08x.c drivers/dma/amba-pl08x.c: fix error return code 2012-08-22 09:51:04 +05:30
at_hdmac.c Sound updates for 3.7-rc1 2012-10-09 07:07:14 +09:00
at_hdmac_regs.h ARM: at91: move platform_data definitions 2012-09-14 11:16:40 +02:00
coh901318.c dma: coh901318: use devm allocation 2012-06-14 08:42:26 +05:30
coh901318_lli.c dmaengine: Use sg_dma_address instead of sg_phys 2012-05-11 12:04:38 +05:30
coh901318_lli.h dmaengine: move drivers to dma_transfer_direction 2011-10-27 20:53:43 +05:30
dmaengine.c drivers/dma/dmaengine.c: lower the priority of 'failed to get' dma channel message 2012-10-06 03:04:36 +09:00
dmaengine.h dmaengine: consolidate initialization of cookies 2012-03-13 11:37:22 +05:30
dmatest.c dmaengine: fix missing 'cnt' in ?: in dmatest 2012-01-23 11:43:18 -08:00
dw_dmac.c dw_dmac: fix a regression in dwc_prep_dma_memcpy 2012-10-02 13:18:00 +05:30
dw_dmac_regs.h drivers/dma/dw_dmac: make driver's endianness configurable 2012-10-25 14:37:53 -07:00
edma.c dmaengine: add TI EDMA DMA engine driver 2012-09-01 06:14:02 +05:30
ep93xx_dma.c Sound updates for 3.7-rc1 2012-10-09 07:07:14 +09:00
fsldma.c dma: fix comments 2012-09-01 08:57:12 -07:00
fsldma.h dmaengine: move last completed cookie into generic dma_chan structure 2012-03-13 11:36:06 +05:30
imx-dma.c dmaengine: imx-dma: fix missing unlock on error in imxdma_xfer_desc() 2012-10-24 08:52:45 +05:30
imx-sdma.c Sound updates for 3.7-rc1 2012-10-09 07:07:14 +09:00
intel_mid_dma.c treewide: fix comment/printk/variable typos 2012-09-01 10:33:05 -07:00
intel_mid_dma_regs.h dma: fix comments 2012-09-01 08:57:12 -07:00
iop-adma.c dmaengine-fixes for 3.4-rc3 2012-04-10 15:30:16 -07:00
iovlock.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
mmp_pdma.c dmaengine: mmp-pdma support 2012-09-14 08:14:07 +05:30
mmp_tdma.c Merge branch 'next' of git://git.infradead.org/users/vkoul/slave-dma 2012-10-10 11:10:41 +09:00
mpc512x_dma.c dmaengine: consolidate initialization of cookies 2012-03-13 11:37:22 +05:30
mv_xor.c ARM: orion: move platform_data definitions 2012-09-19 17:42:17 +02:00
mv_xor.h ARM: Orion: XOR: Add support for clk 2012-05-08 16:34:02 -07:00
mxs-dma.c Merge branch 'next' of git://git.infradead.org/users/vkoul/slave-dma 2012-10-10 11:10:41 +09:00
omap-dma.c Sound updates for 3.7-rc1 2012-10-09 07:07:14 +09:00
pch_dma.c dmaengine: Use sg_dma_address instead of sg_phys 2012-05-11 12:04:38 +05:30
pl330.c Merge branch 'next' of git://git.infradead.org/users/vkoul/slave-dma 2012-10-10 11:10:41 +09:00
sa11x0-dma.c dmaengine: Pass flags via device_prep_dma_cyclic() callback 2012-09-22 11:12:45 -04:00
sirf-dma.c dmaengine: sirf: fix a typo in moving running dma_desc to active queue 2012-10-24 16:30:38 +05:30
ste_dma40.c Merge branch 'next' of git://git.infradead.org/users/vkoul/slave-dma 2012-10-10 11:10:41 +09:00
ste_dma40_ll.c dma40: cyclic xfer support 2011-01-30 22:27:21 -08:00
ste_dma40_ll.h dma: fix comments 2012-09-01 08:57:12 -07:00
tegra20-apb-dma.c Merge branch 'next' of git://git.infradead.org/users/vkoul/slave-dma 2012-10-10 11:10:41 +09:00
timb_dma.c dmaengine: add context parameter to prep_slave_sg and prep_dma_cyclic 2012-03-21 19:20:23 +05:30
txx9dmac.c dmaengine: add context parameter to prep_slave_sg and prep_dma_cyclic 2012-03-21 19:20:23 +05:30
txx9dmac.h dmaengine: move last completed cookie into generic dma_chan structure 2012-03-13 11:36:06 +05:30
virt-dma.c dmaengine: virt-dma: add support for cyclic DMA periodic callbacks 2012-07-01 14:15:23 +01:00
virt-dma.h dmaengine: virt-dma: add support for cyclic DMA periodic callbacks 2012-07-01 14:15:23 +01:00