[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [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
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |