[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


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.