WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

Re: [Xen-devel] viewing memory in domU

To: "Bryan D. Payne" <bryan@xxxxxxxxxxxx>
Subject: Re: [Xen-devel] viewing memory in domU
From: Anthony Liguori <aliguori@xxxxxxxxxx>
Date: Mon, 31 Oct 2005 19:31:45 -0600
Cc: xen-devel@xxxxxxxxxxxxxxxxxxx
Delivery-date: Tue, 01 Nov 2005 01:29:00 +0000
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <036E9E94-EF34-4AB3-9A57-B00050C8FD83@xxxxxxxxxxxx>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
References: <036E9E94-EF34-4AB3-9A57-B00050C8FD83@xxxxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Mozilla Thunderbird 1.0.7 (X11/20051013)
Bryan D. Payne wrote:

I'm looking at developing an application to run in dom0 that will need a view into the memory of machines in domU. For now it will be a read-only view, but I'd like to experiment with read-write later. I've done some poking around in the source code and found the xc_map_foreign_range function in libxc. From what I could tell, this is (at least one way) how to do this. So, a couple of questions:

Yup, this is the right function to use.

* This function doesn't seem to be used very much. The only usage that I could find was in the XenTrace tool. So I just wanted to confirm that this function was still maintained and not getting ready to go away with the 3.0 changes.

Yup, it's critical for both domain creation and save/restore. See libxc/xc_linux_build.c or libxc/xc_linux_save.c for other examples of use.

* Is there any reason that this functionality isn't implemented in the lowlevel/xc library in python? Perhaps just because there isn't as much demand for it? Or is there a deeper implementation issue?

Things that are that low-level are usually performance sensitive (like migration) so we implement it in C. Plus, I think it's non-trivial to expose raw memory to Python (with doing a copy).

* Are there other ways to view the memory of domU machines? Similarly, are there any ways to view items such as CPU registers of the domU machines?

No, xc_map_foreign_range is The Way. You can get the register state of a domU via xc_domain_get_vcpu_context().

* Given that the type of usage that I have in mind is going to be somewhat high bandwidth (i.e., need to constantly read and re-read memory on the domU machine(s)), is this function the best way to go? Or would you recommend that I look into another way?

xc_map_foreign_range() actually maps the physical page into dom0's address space. You're limited by the virtual address space available in dom0 (so you may have to remap portions of the domUs memory into your window) but there shouldn't be any performance overhead once it's mapped.

Regards,

Anthony Liguori

Thanks for the help!

-bryan

------------------------------------------------------------------------

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel

<Prev in Thread] Current Thread [Next in Thread>