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

Andi Kleen (ak@suse.de)
Wed, 2 Jul 2003 01:57:01 +0200


On 01 Jul 2003 11:46:12 -0500
James Bottomley <James.Bottomley@steeleye.com> wrote:

On further thought about the issue:

The K8 IOMMU cannot support this virtually contiguous thing. The reason
is that there is no guarantee that an entry in a sglist is a multiple
of page size. And the aperture can only map 4K sized chunks, like
a CPU MMU. So e.g. when you have an sglist with multiple 1K entries there is
no way to get them continuous in IOMMU space (short of copying)

This means I just need a flag to turn this assumption off in the block layer.

Currently it doesn't even guarantee that pci_map_sg is continuous for page sized chunks - pci_map_sg is essentially just a loop that calls pci_map_single
and is quite possible that all the entries are spread over the IOMMU hole.

Also James do you remember when these changes were added to the block layer?
We have a weird IDE corruption here and I'm wondering if it is related
to this.

-Andi

-
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/