[libvirt] Re: virDomainMemoryPeek for Xen?

Daniel P. Berrange berrange at redhat.com
Wed Aug 13 08:42:24 UTC 2008


On Wed, Aug 13, 2008 at 08:33:24AM +0100, Richard W.M. Jones wrote:
> On Wed, Aug 13, 2008 at 01:19:42PM +0900, Jun Koi wrote:
> > According to the comment in your driver code for virDomainMemoryPeek,
> > libvirt is not currently supporting Xen. Why is that? As far as I see,
> > Xen is use the same GPL2 version as libvirt.
> > 
> > I am thinking about implementing the driver for Xen, so have this question.
> 
> It'd be really good to have a driver for this for libvirt.

Yes, it would be very useful indeed

> On Xen things are a bit different.  You can map in physical pages from
> another guest using the libxc call xc_map_foreign_range.  Note that
> you cannot just call xc_map_foreign_range because the libxc & libvirt
> licenses are _not_ compatible.  So instead you'd need to do the
> underlying sequence of mmap / ioctl / munmap.  (See tools/libxc/
> xc_linux.c in the Xen source).
> 
> But you still need to do virtual to physical page translation, either
> using the qemu source as an example, or using
> xc_translate_foreign_address as a guide (or just using the Intel
> Programmers Reference Manual and doing it from first principles).

Alot of work, but ultimately it has to be done if we want tools like
virt-mem to be usable with Xen.

> Another alternative is to implement virDomainMemoryPeek
> (...VIR_MEMORY_PHYSICAL...).  It is not possible to implement this for
> QEMU at all, at least not without changing QEMU.  Implementing this
> for Xen would be much easier because you don't need to do address
> translation, but it does push the problem of address translation up to
> the callers.

And it wouldn't help getting any of your guest debugging programs
working bevacuse they all need VIR_MEMORY_VIRTUAL

> 
> Places to look in the QEMU source for inspiration:
> 
>   monitor.c:do_memory_save
>   target-i386/helper2.c:cpu_get_phys_page_debug
> 
> Other places to look in the Xen source for inspiration:
> 
>   tools/libxc/xc_linux.c
>   tools/libxc/xc_pagetab.c
>   tools/xentrace/xenctx.c  (thanks Mark McLoughlin)

NB, just a another reminder - do not copy code from these files if doing
a libvirt implementation for Xen since they are not license compatible.

Daniel
-- 
|: Red Hat, Engineering, London   -o-   http://people.redhat.com/berrange/ :|
|: http://libvirt.org  -o-  http://virt-manager.org  -o-  http://ovirt.org :|
|: http://autobuild.org       -o-         http://search.cpan.org/~danberr/ :|
|: GnuPG: 7D3B9505  -o-  F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :|




More information about the libvir-list mailing list