Thread (55 messages) 55 messages, 8 authors, 2011-06-01

Re: [PATCH 12/13] kvm/powerpc: Accelerate H_PUT_TCE by implementing it in real mode

From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Date: 2011-05-17 09:35:51
Also in: kvm

On Tue, 2011-05-17 at 11:31 +0200, Alexander Graf wrote:
On 17.05.2011, at 11:11, Benjamin Herrenschmidt wrote:
quoted
On Tue, 2011-05-17 at 10:01 +0200, Alexander Graf wrote:
quoted
I'm not sure I fully understand how this is supposed to work. If the
tables are kept inside the kernel, how does userspace get to know
where to DMA to?
The guest gets a dma range from the device-tree which is the range of
device-side dma addresses it can use that correspond to the table.

The guest kernel uses the normal linux iommu space allocator to allocate
space in that region and uses H_PUT_TCE to populate the corresponding
table entries.

This is the same interface that is used for "real" iommu's with PCI
devices btw.
I'm still slightly puzzled here :). IIUC the main point of an IOMMU is for the kernel
to change where device accesses actually go to. So device DMAs address A, goes through
the IOMMU, in reality accesses address B.
Right :-)
Now, how do we tell the devices implemented in qemu that they're supposed to DMA to
address B instead of A if the mapping table is kept in-kernel?
Oh, bcs qemu mmaps the table :-)

Cheers,
Ben.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help