Messages in this thread | | | Date | Wed, 2 Jul 2003 01:57:01 +0200 | From | Andi Kleen <> | Subject | Re: [RFC] block layer support for DMA IOMMU bypass mode II |
| |
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/
| |