[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] Buffers not reachable by PCI
On Fri, Dec 09, 2011 at 08:19:47PM +0000, Taylor, Neal E wrote: > We're running 64-bit Xex 4.1.1 and 32-bit Linux 3.0.4 Dom0 (Linux 3.1 shows > the same symptom.) Hm, 32-bit. Did it work if the Dom0 was 64-bit? > > Several PCI drivers are unable to use DMA. Most fallback to using PIO but in > two instances the network drivers (e1000 and pcinet32) abort. The same kernel > running on the same hardware without Xen works fine. > > Digging through the code, in swiotlb-xen.c I find "DMA_BIT_MASK(32)" > (0x00000000ffffffff) compared to "xen_virt_to_bus(xen_io_tlb_end - 1)" which > resolves to 0x1,20fd,feff. Since the address is larger than the mask, DMA is > declared as unsupportable. <blinks> xen_io_tlb_end resolved to 120fdfeff? That is a definite bug. Can you attach you full bootup serial log with 'debug loglevel=8' parameters on the Linux line please? > In talking with others I hear Linux handles this situation with bounce > buffers. Is there a config setting I've missed to enable that for Xen? > (Config file attached) The Xen SWIOTLB is by default enabled, so it is on, but the xen_virt_to_bus(xen_io_tlb_end - 1) _MUST_ never be above 4GB. In your case it is, which is bad. It is rather surprising as I had not seen this ever happen. _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |