Re: BUG in drivers/dma/ioat/dma_v2.c:314

From: Dan Williams
Date: Wed Jun 30 2010 - 15:40:33 EST


On 6/30/2010 11:43 AM, Woodhouse, David wrote:
On Wed, 2010-06-30 at 19:26 +0100, Chris Li wrote:

The delta seems to be this line:
ioatdma 0000:00:0f.0: ioat2_set_chainaddr: chainaddr: ffffe000

That's a reasonable address if the IOMMU is enabled. We start at 4GiB
and work down, so that's the second page given out (or the first 8KiB
chunk).

It looks like the DMA is going AWOL causing the initialisation to
fail... but it's interesting that there are no DMA faults reported by
the IOMMU.


It seems the 5400 has a dedicated remapping engine just for the DMA device [1], is Linux only setting up the iommus per root port (which the DMA bypasses)??

From the dmesg:
IOMMU 0: reg_base_addr fe710000 ver 1:0 cap 900000c2f0462 ecap e01
DMAR: DRHD base: 0x000000fe714000 flags: 0x0
IOMMU 1: reg_base_addr fe714000 ver 1:0 cap 900000c2f0462 ecap e01
DMAR: DRHD base: 0x000000fe719000 flags: 0x0
IOMMU 2: reg_base_addr fe719000 ver 1:0 cap 900000c2f0462 ecap e01
DMAR: DRHD base: 0x000000fe718000 flags: 0x1
IOMMU 3: reg_base_addr fe718000 ver 1:0 cap 900000c2f0462 ecap e01

Where we expect bit 54 to be set for the DMA iommu, and it does not appear to show up.

--
Dan

[1]: http://www.intel.com/Assets/PDF/datasheet/318610.pdf (Section 3.11.2 page 256)
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/