Re: [RFC] block layer support for DMA IOMMU bypass mode

James Bottomley (James.Bottomley@steeleye.com)
01 Jul 2003 15:11:16 -0500


On Tue, 2003-07-01 at 14:59, Alex Williamson wrote:
> The thing that's got me concerned about this is that it allows
> for sg lists that contains both entries that the block layer
> expects will be mapped into the iommu and ones that it expects
> to bypass. I don't like the implications of parsing through
> sg lists looking for bypass-able and non-bypass-able groupings.
> This seems like a lot more overhead than we have now and the
> complexity of merging partially bypass-able scatterlists seems
> time consuming.
>
> The current ia64 sba_iommu does a quick and dirty sg bypass
> check. If the device can dma to any memory address, the entire
> sg list is bypassed. If not, the entire list is coalesced and
> mapped by the iommu. The idea being that true performance
> devices will have 64bit dma masks and be able to quickly bypass.
> Everything else will at least get the benefit of coalescing
> entries to make more efficient dma. The coalescing is a bit
> simpler since it's the entire list as well. With this proposal,
> we'd have to add a lot of complexity to partially bypass sg
> lists. I don't necessarily see that as a benefit. Thanks,

But if that's all you want, you simply set the BIO_VMERGE_BYPASS_MASK to
the full u64 set bitmask. Then it will only turn off virtual merging
for devices that have a fully set dma_mask, and your simple test will
work.

James

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/