[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] physical memory address in guest (from his point of vie
From: |
Paolo Bonzini |
Subject: |
Re: [Qemu-devel] physical memory address in guest (from his point of view) |
Date: |
Fri, 24 Apr 2015 12:52:59 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.5.0 |
On 24/04/2015 12:22, Catalin Vasile wrote:
> > > Does a physical memory address in a guest points to the same memory as
> > > qemu?
> > > For example: if I have a physical pointer 0x34 in the guest, does it
> > > point to the same location that qemu points with 0x34 address?
> >
> > No. QEMU converts guest pointers (which are just uint64_t) to host
> > pointers using address_space_map/address_space_unmap.
>
> That being said. Does a message that passes from guest to a backend
> need to pass through qemu everytime?
> I'm trying to understand how virtio virtqueues work. Namely I'm trying
> to pass as data itself a pointer in which the backend will write,
> namely use copy_to_user() if the backend is a kernel module.
vhost provides the infrastructure to do the same thing as
address_space_map/unmap.
Passing pointers inside a data buffer would be very weird for virtio
devices. The way you do it typically, is that you pass a one descriptor
corresponding to a request or response header, and one or more
descriptors for the data buffers.
Paolo