[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


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.