[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