[lkml]   [2004]   [Jun]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: PATCH: Further aacraid work
    Alan Cox wrote:
    > On Thu, Jun 17, 2004 at 09:10:43PM +0200, Andi Kleen wrote:
    >>The AMD64 IOMMU could do it too (and the code to do it exists in
    >>2.6). But the problem is that the current IO layer doesn't provide a
    >>sufficient fallback path when this fails. You have to promise in
    >>advance that you can merge and then later it's too late to change your
    >>mind without signalling an IO error.
    > I would rather see it below the I/O layer for things like AMD64. The
    > reason I say this is that many drivers would suffer from iommu merging not
    > gain, and others may have limits.

    This reminds me of good ole IDE: the first-generation SATA controllers
    carry forward the limits of the older PCI IDE controllers: neither the
    S/G table nor any single S/G entry may span a 64K boundary.

    In theory the block layer / SCSI layer DMA boundary stuff takes care of
    this -- but iommu merging _undoes_ the segment splitting that the
    hardware _requires_. Thus, in ata_fill_sg in libata-core.c, I re-split
    the S/G list after DMA-mapping it. A bit lame.

    James and BenH discussed a solution at the DMA level, but I don't think
    anything ever happened.


    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to
    More majordomo info at
    Please read the FAQ at

     \ /
      Last update: 2005-03-22 14:03    [W:0.020 / U:74.136 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site