Messages in this thread | | | Date | Wed, 30 Jun 2010 12:40:28 -0700 | From | Dan Williams <> | Subject | Re: BUG in drivers/dma/ioat/dma_v2.c:314 |
| |
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)
| |