linux/drivers/dma/ioat
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
..
dca.c ioat: Do not enable DCA if tag map is invalid 2012-11-15 05:20:01 -08:00
dma_v2.c dmaengine: use kmem_cache_zalloc instead of kmem_cache_alloc/memset 2012-09-18 08:55:17 +05:30
dma_v2.h ioat: ring size variables need to be 32bit to avoid overflow 2012-04-05 15:22:58 -07:00
dma_v3.c dmaengine-fixes for 3.4-rc3 2012-04-10 15:30:16 -07:00
dma.c dmaengine-fixes for 3.4-rc3 2012-04-10 15:30:16 -07:00
dma.h dmaengine-fixes for 3.4-rc3 2012-04-10 15:30:16 -07:00
hw.h ioat: remove unused #defines 2012-09-01 08:45:38 -07:00
Makefile drivers/dma/ioat: Use the ccflag-y instead of EXTRA_CFLAGS 2010-12-04 15:03:06 -08:00
pci.c ioat: Adding Ivy Bridge IOATDMA PCI device IDs 2012-08-31 21:19:51 +05:30
registers.h ioat3: interrupt coalescing 2010-03-03 21:21:13 -07:00