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] [PATCH] paging_enabled and non-HVM guests

To: Hollis Blanchard <hollisb@xxxxxxxxxx>
Subject: Re: [Xen-devel] [PATCH] paging_enabled and non-HVM guests
From: Simon Kagstrom <simon.kagstrom@xxxxxx>
Date: Wed, 10 May 2006 08:06:20 +0200
Cc: xen-devel list <xen-devel@xxxxxxxxxxxxxxxxxxx>
Delivery-date: Tue, 09 May 2006 23:06:27 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
In-reply-to: <1147204426.19485.67.camel@xxxxxxxxxxxxxxxxxxxxx>
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: <87wtcv5t9e.wl%simon.kagstrom@xxxxxx> <1147204426.19485.67.camel@xxxxxxxxxxxxxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Wanderlust/2.15.2 (Almost Unreal) SEMI/1.14.6 (Maruoka) FLIM/1.14.6 (Marutamachi) APEL/10.6 Emacs/21.4 (i386-pc-linux-gnu) MULE/5.0 (SAKAKI)
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