Messages in this thread | | | Date | Wed, 19 Aug 2009 01:06:45 +0300 | From | Avi Kivity <> | Subject | Re: [Alacrityvm-devel] [PATCH v3 3/6] vbus: add a "vbus-proxy" bus model for vbus_driver objects |
| |
On 08/19/2009 12:26 AM, Avi Kivity wrote: >> >> Off the top of my head, I would think that transporting userspace >> addresses in the ring (for copy_(to|from)_user()) vs. physical addresses >> (for DMAEngine) might be a problem. Pinning userspace pages into memory >> for DMA is a bit of a pain, though it is possible. > > > Oh, the ring doesn't transport userspace addresses. It transports > guest addresses, and it's up to vhost to do something with them. > > Currently vhost supports two translation modes: > > 1. virtio address == host virtual address (using copy_to_user) > 2. virtio address == offsetted host virtual address (using copy_to_user) > > The latter mode is used for kvm guests (with multiple offsets, > skipping some details). > > I think you need to add a third mode, virtio address == host physical > address (using dma engine). Once you do that, and wire up the > signalling, things should work.
You don't need in fact a third mode. You can mmap the x86 address space into your ppc userspace and use the second mode. All you need then is the dma engine glue and byte swapping.
-- I have a truly marvellous patch that fixes the bug which this signature is too narrow to contain.
| |