Xen 
 
Home About Xen.org Xen Xen Summit Wiki Mailing List Bug Tracker Xen Downloads
 
   
 

xen-bugs

[Xen-bugs] [Bug 1227] Out of SW-IOMMU space, 3ware Raid controller/3w-xx

To: xen-bugs@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-bugs] [Bug 1227] Out of SW-IOMMU space, 3ware Raid controller/3w-xxxx module
From: bugzilla-daemon@xxxxxxxxxxxxxxxxxxx
Date: Sat, 7 Jun 2008 12:30:53 -0700
Delivery-date: Sat, 07 Jun 2008 12:31:09 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
In-reply-to: <bug-1227-3@xxxxxxxxxxxxxxxxxxxxxxxxxxx/bugzilla/>
List-help: <mailto:xen-bugs-request@lists.xensource.com?subject=help>
List-id: Xen Bugzilla <xen-bugs.lists.xensource.com>
List-post: <mailto:xen-bugs@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-bugs>, <mailto:xen-bugs-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-bugs>, <mailto:xen-bugs-request@lists.xensource.com?subject=unsubscribe>
Reply-to: bugs@xxxxxxxxxxxxxxxxxx
Sender: xen-bugs-bounces@xxxxxxxxxxxxxxxxxxx
http://bugzilla.xensource.com/bugzilla/show_bug.cgi?id=1227





------- Comment #2 from christian.jung@xxxxxxxxxxxxx  2008-06-07 12:30 -------
I've got the same problem with current SuSE SLES10 SP2 (on Intel, x86_64, 3ware
9650SE 4LP). There seems to be a solution, which I found on the RedHat
bugzilla:

https://bugzilla.redhat.com/show_bug.cgi?id=433554

The error is located in the PCI DMA stuff. I'm not very familiar with this so I
have to citate Stephen Tweedie who wrote this patch:

---8<---
    On Xen kernels, BIOVEC_PHYS_MERGEABLE permits merging of disk IOs that
    span multiple pages, provided that the pages are both pseudophysically-
    AND machine-contiguous ---

        (((bvec_to_phys((vec1)) + (vec1)->bv_len) == bvec_to_phys((vec2))) && \
         ((bvec_to_pseudophys((vec1)) + (vec1)->bv_len) == \
          bvec_to_pseudophys((vec2))))

    However, this best-effort merging of adjacent pages can occur in
    regions of dom0 memory which just happen, by virtue of having been
    initially set up that way, to be machine-contiguous.  Such pages
    which occur outside of a range created by xen_create_contiguous_
    region won't be seen as contiguous by range_straddles_page_boundary(),
    so the pci-dma-xen.c code for dma_map_sg() will send these regions
    to the swiotlb for bounce buffering.

    In RHEL-5.1 this did not happen, because we did not have the check
    for range_straddles_page_boundary() in that code.  Now that that check
    has been added, these SG ranges --- which ARE machine contiguous and
    which can perfectly well be sent to a dma engine --- are being bounce-
    buffered in the swiotlb instead, causing a performance overhead and
    potentially leading to early swiotlb exhaustion.

    This patch adds a new check, check_pages_physically_contiguous(),
    to the swiotlb_map_sg() code to capture these ranges and map them
    directly via virt_to_bus() mapping rather than through the swiotlb.
---8<---

I've incorporated the patch on the SuSE kernel and made a little test (dd
if=/dev/zero of=/dev/sda3 bs=1024k). No PCI DMA errors occured since the last
two hours. 

No special Kernel-parameters for xen or the dom0 kernel. On my current machine
this means 2MB SW-IOMMU buffer.

Hope this helps.

bye
Chris


-- 
Configure bugmail: 
http://bugzilla.xensource.com/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.

_______________________________________________
Xen-bugs mailing list
Xen-bugs@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-bugs

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-bugs] [Bug 1227] Out of SW-IOMMU space, 3ware Raid controller/3w-xxxx module, bugzilla-daemon <=