|
|
|
|
|
|
|
|
|
|
xen-devel
[Xen-devel] Re: Sharing dom0 memory with hypervisor across hypercall
Whoops... nevermind. I had a stupid bug on my part. I've gotten it
to work now.
On Sat, Sep 27, 2008 at 4:17 PM, Mike Sun <msun@xxxxxxxxxx> wrote:
> Hi,
>
> For a research project implementation, I'm trying to allocate a large
> buffer of memory in dom0, which would then be passed to the hypervisor
> during a hypercall. I've seen examples of this in xc_domain_save
> where a dirty bitmap is passed during a log-dirty hypercall to get the
> log-dirty status of pages. It seems relatively straightforward in its
> use of guest handles and copy_to_user().
>
> My situation is different in that the hypervisor must copy to the
> shared memory buffer allocated by dom0 not during the hypervisor call,
> but upon subsequent faults of another guest domain(specifically, page
> faults). The copy_to_user() method would fail because I would not be
> in dom0's address space, but in a guest domain's address space.
>
> My approach was to provide a guest handle to the dom0 allocated buffer
> via a hypercall. The hypercall then determines the mfns of all the
> pages of the dom0 buffer and stores this in a data structure in the
> hypervisor. The fault handler then maps the buffer pages into the
> hypervisor address space using the mfns previousy determined during
> the hypercall. The fault handler can then copy into dom0's buffer.
> Am I on the right track or is this not feasible?
>
> My implementation does not seem to work correctly. I allocate a
> buffer in dom0 using xg_memalign(), pin it down with lock_pages(), and
> perform a hypercall in which I pass the virtual address of the buffer
> via a guest_handle. In the hypervisor, the hypercall translates the
> virtual address to an mfn by walking dom0's page tables. These
> actions seem to work correctly. The fault handler maps the mfn of the
> buffer using map_domain_page, and a copy is then done. This seems to
> fail.
>
> Any ideas? Have I completely misunderstood something?
>
> Thanks,
> Mike
>
> --
> msun@xxxxxxxxxx
> http://msun.bluespot.org
>
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
|
|
|
|