|
|
|
|
|
|
|
|
|
|
xen-devel
Re: [Xen-devel] DMA trouble with current xen-sparse
On 28 Oct 2005, at 20:21, Stephen C. Tweedie wrote:
The trouble is that this is a 1G box, so its memory is not large enough
to automatically enable the swiotlb. (arch/xen/i386/kernel/swiotlb.c
enables swiotlb automatically for dom0 only if there's at least 2G of
memory.) And the first time we get a pci_dma_single() request for a
dom0-contiguous region which crosses a page boundary, we hit the BUG_ON
at arch/xen/i386/kernel/pci_dma.c:270 due to dma_map_single() checking:
IOMMU_BUG_ON(range_straddles_page_boundary(ptr, size));
And this happens *instantly* on any loaded tcp connection on my e1000
NIC. All I need to do to kill the box is to ssh in and type "find\n".
Instant dom0 death after the ssh client receives about a dozen lines of
output. The stack trace is appended below.
Is the network interface set up to use jumbo frames? Otherwise I
wouldn't expect alloc_skb() to allocate a data area that straddles a
page boundary, since the allocation will come from one of the
sub-page-sized power-of-two kmem caches.
If the problem is jumbo frames, we might need to add a hook to
alloc_skb(). Using swiotlb will suck hugely.
-- Keir
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
|
|
|
|