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

From: Dan Williams
Date: Wed Jun 30 2010 - 00:17:42 EST

[ copying David to see if I am barking up the wrong VT-d tree. This is on a MacPro 3,1 according to dmesg so a 5400 series MCH ]

On 6/29/2010 6:07 PM, Chris Li wrote:
On Tue, Jun 29, 2010 at 4:57 PM, Dan Williams<dan.j.williams@xxxxxxxxx> wrote:
0000:00:0f.0: ioat2_timer_event: Channel halted (10)

This says that we got an invalid chain address error when trying to start
the engine. If there was a driver problem with init I would have expected
to see reports from other systems. The attached patch will print out what
chain address we are setting. The hardware expects a 64-byte aligned
address which should be guaranteed by the use of pci_pool_alloc().

OK. I can't do this test remotely so I will get back to you tomorrow.

I appreciate it!

However, if you are up for another experiment, I'd like to see what happens
if you disable VT-d. Maybe it is a misconfigured iommu table that is
blocking the engine's access to memory?

You mean disable VT-d in kernel config or the BIOS?

I was thinking in the BIOS, but appending iommu=off to the kernel command-line should also do the trick.

BTW, I don't know how to disable VT-d in Mac BIOS. It use EFI, then simulate
a normal BIOS in the boot camp mode to boot Linux.

Another stab in the dark is that, it is Mac. It has some strange SMI interaction
like TSC drifting even after boot. I notice that in the past.

...but the failure is not intermittent, right?

Where it fell over is a pretty straightforward usage of the dma engine and it is failing on the first transaction that the first channel issues to memory. You should be able to 'modprobe ioatdma' after you boot and watch it fail again if my suspicion is correct... if the signature changes that would also be good to know.

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at