From mboxrd@z Thu Jan 1 00:00:00 1970 From: Juergen Gross Subject: Re: [PATCH v5 8/9] libxc: rework of domain builder's page table handler Date: Thu, 19 Nov 2015 07:09:35 +0100 Message-ID: <564D679F.4010003@suse.com> References: <1447335816-31772-1-git-send-email-jgross@suse.com> <1447335816-31772-9-git-send-email-jgross@suse.com> <564CA324.5040005@oracle.com> <20151118161613.GP1495@citrix.com> <564CA57D.4040702@oracle.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------030705010009090809050506" Return-path: In-Reply-To: <564CA57D.4040702@oracle.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Boris Ostrovsky , Wei Liu Cc: roger.pau@citrix.com, stefano.stabellini@eu.citrix.com, ian.jackson@eu.citrix.com, Ian.Campbell@citrix.com, xen-devel@lists.xen.org List-Id: xen-devel@lists.xenproject.org This is a multi-part message in MIME format. --------------030705010009090809050506 Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit On 18/11/15 17:21, Boris Ostrovsky wrote: > On 11/18/2015 11:16 AM, Wei Liu wrote: >> On Wed, Nov 18, 2015 at 11:11:16AM -0500, Boris Ostrovsky wrote: >>> On 11/12/2015 08:43 AM, Juergen Gross wrote: >>>> In order to prepare a p2m list outside of the initial kernel mapping >>>> do a rework of the domain builder's page table handler. The goal is >>>> to be able to use common helpers for page table allocation and setup >>>> for initial kernel page tables and page tables mapping the p2m list. >>>> This is achieved by supporting multiple mapping areas. The mapped >>>> virtual addresses of the single areas must not overlap, while the >>>> page tables of a new area added might already be partially present. >>>> Especially the top level page table is existing only once, of course. >>>> >>>> Currently restrict the number of mappings to 1 because the only mapping >>>> now is the initial mapping created by toolstack. There should not be >>>> behaviour change and guest visible change introduced. >>>> >>>> Signed-off-by: Juergen Gross >>>> Reviewed-by: Wei Liu >>> --- >>>> tools/libxc/xc_dom_x86.c | 479 >>>> ++++++++++++++++++++++++----------------------- >>>> tools/libxc/xg_private.h | 39 +--- >>>> 2 files changed, 252 insertions(+), 266 deletions(-) >>> This broke PVH. I get a triple fault (somewhere in clear_page(), so the >>> guest have run a little) >>> >> Is there any output? We just noticed 32 bit pvgrub is broken. Not sure >> these two problems are related but the more information the better. > > > Not much: > > (d3) mapping kernel into physical memory > (XEN) d3v0 Triple fault - invoking HVM shutdown action 0 > > I then looked at RIP and it was pointing to 'mov %rax,(%rdi)' in > clear_page_orig(). I didn't check what %rdi was. I think I've found the bug. I dropped the special case for pvh to map page tables writable. Can you try the attached patch, please? Juergen --------------030705010009090809050506 Content-Type: text/x-patch; name="pvh.patch" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="pvh.patch" diff --git a/tools/libxc/xc_dom_x86.c b/tools/libxc/xc_dom_x86.c index 7279fa2..d529518 100644 --- a/tools/libxc/xc_dom_x86.c +++ b/tools/libxc/xc_dom_x86.c @@ -380,7 +380,7 @@ static x86_pgentry_t get_pg_prot_x86(struct xc_dom_image *dom, int l, map = domx86->maps + m; pfn_s = map->lvls[domx86->params->levels - 1].pfn; pfn_e = map->area.pgtables + pfn_s; - if ( pfn >= pfn_s && pfn < pfn_e ) + if ( !dom->pvh_enabled && pfn >= pfn_s && pfn < pfn_e ) return prot & ~_PAGE_RW; } --------------030705010009090809050506 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel --------------030705010009090809050506--