I have an HVM guest and I am trying to have a usermode program in Dom0 query the context (CPU registers, specifically) of the guest. I first tried using xc_domain_getcontext() in xenctrl.h but I haven''t figured out what data structure ctxt_buf is that it returns. Next, I have tried using xc_vcpu_getcontext() in xenctrl.h but so far it always returns -1 for failure. For xc_vcpu_getcontext, I am passing in a vcpu number of 1 (I only have a single virtual CPU domU running) along with an unallocated vcpu_guest_context_t pointer. Is this the right direction to pull guest registers, or is there another method I need to use to get the HVM guest context? Thanks, Josh _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
On 09/10/2009 22:47, "Eads, Joshua Michael (S&T-Student)" <jmer43@mst.edu> wrote:> I have an HVM guest and I am trying to have a usermode program in Dom0 query > the context (CPU registers, specifically) of the guest. > > I first tried using xc_domain_getcontext() in xenctrl.h but I haven''t figured > out what data structure ctxt_buf is that it returns. Next, I have tried using > xc_vcpu_getcontext() in xenctrl.h but so far it always returns -1 for failure. > For xc_vcpu_getcontext, I am passing in a vcpu number of 1 (I only have a > single virtual CPU domU running) along with an unallocated > vcpu_guest_context_t pointer. > > Is this the right direction to pull guest registers, or is there another > method I need to use to get the HVM guest context?For an HVM guest you can use xc_domain_hvm_getcontext() or xc_domain_hvm_getcontext_partial(). You then have to pick apart the bag of bytes you get back. The save format is documented to some extent in xen/include/public/arch-x86/hvm/save.h -- Keir _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
> > I have an HVM guest and I am trying to have a usermode > program in Dom0 query > > the context (CPU registers, specifically) of the guest. > > > > I first tried using xc_domain_getcontext() in xenctrl.h but > I haven''t figured > > out what data structure ctxt_buf is that it returns. Next, > I have tried using > > xc_vcpu_getcontext() in xenctrl.h but so far it always > returns -1 for failure. > > For xc_vcpu_getcontext, I am passing in a vcpu number of 1 > (I only have a > > single virtual CPU domU running) along with an unallocated > > vcpu_guest_context_t pointer. > > > > Is this the right direction to pull guest registers, or is > there another > > method I need to use to get the HVM guest context? > > For an HVM guest you can use xc_domain_hvm_getcontext() or > xc_domain_hvm_getcontext_partial(). You then have to pick > apart the bag of > bytes you get back. The save format is documented to some extent in > xen/include/public/arch-x86/hvm/save.hOr you can use (or steal code from) the very nice tool that Tim Deegan wrote, xen-hvmctx, which is included in the xen-unstable source at tools/misc/xen-hvmctx.c. _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
On Sat, Oct 10, 2009 at 3:27 PM, Keir Fraser <keir.fraser@eu.citrix.com> wrote:> On 09/10/2009 22:47, "Eads, Joshua Michael (S&T-Student)" <jmer43@mst.edu> > wrote: > >> I have an HVM guest and I am trying to have a usermode program in Dom0 query >> the context (CPU registers, specifically) of the guest. >> >> I first tried using xc_domain_getcontext() in xenctrl.h but I haven''t figured >> out what data structure ctxt_buf is that it returns. Next, I have tried using >> xc_vcpu_getcontext() in xenctrl.h but so far it always returns -1 for failure. >> For xc_vcpu_getcontext, I am passing in a vcpu number of 1 (I only have a >> single virtual CPU domU running) along with an unallocated >> vcpu_guest_context_t pointer. >> >> Is this the right direction to pull guest registers, or is there another >> method I need to use to get the HVM guest context? > > For an HVM guest you can use xc_domain_hvm_getcontext() or > xc_domain_hvm_getcontext_partial(). You then have to pick apart the bag of > bytes you get back. The save format is documented to some extent in > xen/include/public/arch-x86/hvm/save.hSo that means xc_vcpu_getcontext() is only valid for PV domains? Thanks, H _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
On 15/10/2009 03:55, "NAHieu" <nahieu@gmail.com> wrote:>> For an HVM guest you can use xc_domain_hvm_getcontext() or >> xc_domain_hvm_getcontext_partial(). You then have to pick apart the bag of >> bytes you get back. The save format is documented to some extent in >> xen/include/public/arch-x86/hvm/save.h > > So that means xc_vcpu_getcontext() is only valid for PV domains?It''s usefulness is certainly limited. -- Keir _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel