Re: pci_map_sg() does not coalesce adjacent physical memory? x86

From: FUJITA Tomonori
Date: Wed Nov 19 2008 - 02:05:48 EST


Oops, sorry about typos.

On Wed, 19 Nov 2008 15:58:12 +0900
FUJITA Tomonori <fujita.tomonori@xxxxxxxxxxxxx> wrote:

> > Of course, I could write my own (tm) and map my pages into PCI using
> > pci_map_single, but I thought I was being the good kid by using what
> > was there.
>
> I don't think it's not a good place. What pci_map_single should do is
> mapping a virtual address to a dma-capable address.
>
> IOMMU dma operations maps a virtual address to an I/O address and
> non-IOMMU dma operations do nothing. As you said below, some IOMMU
> operations do coalescing but it's virtual mapping (probably their code
virtual coalescing

> can handle physical coalescing too though but the block layer does
> physical coalescing before that though). And the virtual mapping is
virtual coalescing

> optional. Not all the IOMMU operations do. As I said, x86 IOMMUs
> (VT-d, AMD, and Calgary) except for GART does not do coalescing. Any
> non-IOMMU dma operations don't do something complicated.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/