I tried this patch on my system, and xenU works OK.
diff -r 0d707feab01e xen/arch/x86/mm/shadow/common.c
--- a/xen/arch/x86/mm/shadow/common.c Mon Jul 07 16:13:53 2008 +0100
+++ b/xen/arch/x86/mm/shadow/common.c Wed Jul 16 15:47:02 2008 +0800
@@ -1676,6 +1676,9 @@ shadow_free_p2m_page(struct domain *d, s
/* Free should not decrement domain's total allocation, since
* these pages were allocated without an owner. */
page_set_owner(pg, NULL);
+#if defined(__x86_64__)
+ spin_lock_init(&(pg->lock))
+#endif
free_domheap_pages(pg, 0);
d->arch.paging.shadow.p2m_pages--;
perfc_decr(shadow_alloc_count);
Best Regards,
-- Dongxiao
-----Original Message-----
From: Keir Fraser [mailto:keir.fraser@xxxxxxxxxxxxx]
Sent: 2008年7月16日 15:24
To: Xu, Dongxiao; xen-devel@xxxxxxxxxxxxxxxxxxx
Cc: Tim Deegan
Subject: Re: [Xen-devel][PATCH] Fix the boot failure of xenU after destroying
aHVM guest
It's only polite for a subsystem which trashes page_info to reinstate it
when it is done. We'll work out a patch for the p2m code.
-- Keir
On 16/7/08 01:56, "Xu, Dongxiao" <dongxiao.xu@xxxxxxxxx> wrote:
> Hi, Keir,
> I saw in C/S 17899, you put the re-initialize code of the page lock in
> sh_set_allocation() instead of free_heap_pages(). In this condition, I think
> we should also re-initialize the page lock while freeing the shadow p2m page
> and maybe some other places. Because when alloc the shadow p2m page, it will
> use function sh_alloc_p2m_pages()->shadow_alloc() to initialize the page as
> shadow_page_info, so the re-initialize when freeing shadow p2m is necessary.
> So I think if only put the page lock re-initialize code in
> free_heap_pages(), it is the most safe. And it could fix the bug 1287.
>
> 1. Sometimes XenU guest cannot boot up on 32e host.
> http://bugzilla.xensource.com/bugzilla/show_bug.cgi?id=1287
>
> Thanks
> -- Dongxiao
>
> -----Original Message-----
> From: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
> [mailto:xen-devel-bounces@xxxxxxxxxxxxxxxxxxx] On Behalf Of Xu, Dongxiao
> Sent: 2008年6月26日 14:12
> To: Keir Fraser; xen-devel@xxxxxxxxxxxxxxxxxxx
> Cc: jbeulich@xxxxxxxxxx
> Subject: [Xen-devel][PATCH] Fix the boot failure of xenU after destroying aHVM
> guest
>
> Fix the boot failure of xenU after destroying a HVM guest.
> - Both page_info and shadow_page_info are stored in frame_table.
> At first, all spin locks in frame table are initialized as
> SPIN_LOCK_UNLOCKED.
> If one frame is used as shadow_page_info, we still should initialize the
> spin lock to be SPIN_LOCK_UNLOCKED when freeing that page.
>
> Signed-off-by: Dongxiao Xu <dongxiao.xu@xxxxxxxxx>
>
> Best Regards,
> -- Dongxiao
>
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|