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/
Home Products Support Community News


Re: [Xen-devel] Setting up page directories and tables

To: Dave Pacheco <dap@xxxxxxxxxxxx>
Subject: Re: [Xen-devel] Setting up page directories and tables
From: Jeremy Fitzhardinge <jeremy@xxxxxxxxxxxxx>
Date: Fri, 27 Apr 2007 18:14:29 -0700
Cc: Joel Weinberger <joel@xxxxxxxxxxxx>, xen-devel@xxxxxxxxxxxxxxxxxxx
Delivery-date: Mon, 30 Apr 2007 10:18:44 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
In-reply-to: <2d88d46a0704271756t3968218h9f992ff495a6d48c@xxxxxxxxxxxxxx>
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: <2d88d46a0704271311m4f41aa6bna46cc903bb619f32@xxxxxxxxxxxxxx> <C2582C06.679A%Keir.Fraser@xxxxxxxxxxxx> <2d88d46a0704271756t3968218h9f992ff495a6d48c@xxxxxxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Thunderbird (X11/20070302)
Dave Pacheco wrote:
> /var/log/xen/xend.log doesn't say much useful, other than that the
> domain crashed. Is there a way to tell why a domain crashed (i.e.
> executing an illegal instruction, or triple fault, or something like
> that)?

If you compile Xen with debug mode turned on, and then you get useful
stuff on the console.  It's generally fairly cryptic, but enough to give
you some hints.  Also, you can use gdbserver-xen to poke around in your
domain so long as it has valid pagetables.  It's useful for stepping up
to your cr3 load and looking at the state of things.

I see from your description that you're pinning L1 pages.  That's
generally not how Xen linux kernels do it these days; they just pin the
whole pagetable from L2 down (in your non-PAE case).  Since pinning from
top-down is the same as loading cr3 from a validity-checking
perspective, it's useful to see if Xen likes your pagetables without
actually trashing them (if you load a bad cr3, you end up in limbo with
no useful pagetables, and Xen can't even print a useful stack backtrace
as it destroys your domain).

Also, remember that all pages in your new pagetable have to be mapped RO
in *all* other pagetables.  The easiest way to achieve that is to make
all pagetables share the same L1 pages in your "kernel" address space,
assuming you have such a thing.  Otherwise when you're allocating a new
page for a pagetable, you have to walk through all other pagetables and
be sure to update any mappings for that page to RO.


Xen-devel mailing list

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