[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] paging_enabled and non-HVM guests
At Tue, 09 May 2006 14:53:46 -0500, Hollis Blanchard wrote: > > On Tue, 2006-05-09 at 13:31 +0200, Simon Kagstrom wrote: > > I had a problem with the GDB-server crashing on connections in > > xen_ptrace.c:map_domain_va(). paging_enabled() should only be checked > > for HVM guests, and the patch adds a check for that. > > > > Signed-off-by: Simon Kagstrom <ska@xxxxxx> > > > > diff -r 4501d60d6add tools/libxc/xc_ptrace.c > > --- a/tools/libxc/xc_ptrace.c Tue May 9 09:57:05 2006 > > +++ b/tools/libxc/xc_ptrace.c Tue May 9 13:26:14 2006 > > @@ -374,7 +374,7 @@ > > if (fetch_regs(xc_handle, cpu, NULL)) > > return NULL; > > > > - if (!paging_enabled(&ctxt[cpu])) { > > + if ( (ctxt[cpu].flags & VGCF_HVM_GUEST) && > > !paging_enabled(&ctxt[cpu])) { > > static void * v; > > unsigned long page; > > I looked at this a couple weeks ago, and I think the real problem is > that the CR registers are never updated in Xen's vcpu structure, and so > xc_vcpu_getcontext() doesn't get them either. So Xen should be fixed; we > shouldn't add workarounds to userland. OK, I guess that sounds reasonable. Checks for HVM guests are done on a number of other places as well in libxc, however. Is the support meant to be transparent between HVM and PV guests? I won't argue for an incorrect fix, but as the code is right now it segmentation faults because the virtual address passed to page = page_array[va >> PAGE_SHIFT] << PAGE_SHIFT; (with libxc incorrectly believing paging is disabled) accesses outside of page_array. I'll keep the patch privately for now since gdbserver breaks without it. // Simon _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |