Re: USB transfer_buffer allocations on 64bit systems

From: Chris Wright
Date: Wed Apr 14 2010 - 19:39:01 EST


* Pedro Ribeiro (pedrib@xxxxxxxxx) wrote:
> On 14 April 2010 23:25, Chris Wright <chrisw@xxxxxxxxxxxx> wrote:
> > * Pedro Ribeiro (pedrib@xxxxxxxxx) wrote:
> >> Turns out CONFIG_DMAR was disabled because of PREEMPT_RT. I disabled
> >> the later and enabled _DMAR. It took a long time to boot, something
> >> wrong with the usb ports. You can see it in the appended dmesg from
> >> time 11s to 100s.
> >>
> >> Then after it booted, I could barely move my USB mouse and lots of
> >> errors appeared on dmesg. I tried to connect the DVB card but it
> >> wouldn't even initialize.
> >
> > [  316.360045] DMAR:[DMA Write] Request device [00:02.0] fault addr 23c00000
> > [  316.360046] DMAR:[fault reason 05] PTE Write access is not set
> >
> > That's your video device.  Do you have CONFIG_DMAR_BROKEN_GFX_WA=y?
>
> Where do I find this option in make menuconfig? Doesn't seem to be available...

It's hidden behind CONFIG_BROKEN. The iommu=pt test puts all devices in
a 1:1 mapping (the broken graphics workaround does that just for all
graphics devices).

> >> Enabling it with iommu=pt seemed to make no difference.
> >
> > It should (it should at least eliminate the video device problem).
>
> You are right, it does eliminate that problem. However I can't get any
> of the USB devices to work, and the mouse is terribly slow. One more
> dmesg attached.

Thanks. It works for me here. I just booted 2.6.33-rt4 on my T400 w/
iommu on, and an external USB mouse is working fine (I don't have the
same number of devices plugged in as you do). You are not seeing DMA
faults which suggest that the IOMMU mappings are correct w.r.t. the DMA
transactions that the controller is initiating.

thanks,
-chris
--
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/