[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] [PATCH] xenpaging:add the dealing of MEM_EVENT_FLAG_EVICT_FAIL request in

# HG changeset patch
# User h00166998@xxxxxxxxxxxxxxxxxxxxxxxxxx
# Date 1328777881 -28800
# Node ID 68eae0b487aef8349f168518f56264ce61afb0a1
# Parent  9f4640e40d4f31563885427a5a8d9eae2e110514
xenpaging:add the dealing of MEM_EVENT_FLAG_EVICT_FAIL request in

If a page is nominated but not evicted,then dom0 accesses the page,it
will change the page's p2mt to be p2m_ram_paging_in,and the req.flags is
MEM_EVENT_FLAG_EVICT_FAIL;so it will fail in p2m_mem_paging_evict() because
of the p2mt;and paging->num_paged_out will not increase in this case;After
the paging process is terminated, the p2mt p2m_ram_paging_in still remains
in p2m table.Once domU accesses the nominated page,it will result in BSOD
or vm'stuck.
The patch adds the dealing of this request to resume the page before xenpaging
is ended.


diff -r 9f4640e40d4f -r 68eae0b487ae tools/xenpaging/xenpaging.c
--- a/tools/xenpaging/xenpaging.c       Thu Feb 09 16:50:52 2012 +0800
+++ b/tools/xenpaging/xenpaging.c       Thu Feb 09 16:58:01 2012 +0800
@@ -911,7 +911,7 @@
                         !!(req.flags & MEM_EVENT_FLAG_EVICT_FAIL) );
                 /* Tell Xen to resume the vcpu */
-                if ( req.flags & MEM_EVENT_FLAG_VCPU_PAUSED )
+                if (( req.flags & MEM_EVENT_FLAG_VCPU_PAUSED ) || ( req.flags 
                     /* Prepare the response */
                     rsp.gfn = req.gfn;

Xen-devel mailing list



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