|
|
|
|
|
|
|
|
|
|
xen-devel
[Xen-devel] [PATCH 13 of 15] xenpaging: retry unpageable gfns
# HG changeset patch
# User Olaf Hering <olaf@xxxxxxxxx>
# Date 1319189129 -7200
# Node ID 713701a53968823b8122f5a2a15b5e053143f2ed
# Parent 2a4c2be433b27cec227ef8441937b2088d2ec24b
xenpaging: retry unpageable gfns
Nomination of gfns can fail, but may succeed later.
Thats the case for a guest that starts ballooned.
v2:
- print debug when clearing uncosumed happens
Signed-off-by: Olaf Hering <olaf@xxxxxxxxx>
diff -r 2a4c2be433b2 -r 713701a53968 tools/xenpaging/policy_default.c
--- a/tools/xenpaging/policy_default.c
+++ b/tools/xenpaging/policy_default.c
@@ -32,6 +32,7 @@ static unsigned int i_mru;
static unsigned int mru_size;
static unsigned long *bitmap;
static unsigned long *unconsumed;
+static unsigned int unconsumed_cleared;
static unsigned long current_gfn;
static unsigned long max_pages;
@@ -87,8 +88,21 @@ int policy_choose_victim(xenpaging_t *pa
current_gfn++;
if ( current_gfn >= max_pages )
current_gfn = 0;
+ /* Could not nominate any gfn */
if ( wrap == current_gfn )
{
+ /* Count wrap arounds */
+ unconsumed_cleared++;
+ /* Force retry every few seconds (depends on poll() timeout) */
+ if ( unconsumed_cleared > 123)
+ {
+ /* Force retry of unconsumed gfns */
+ bitmap_clear(unconsumed, max_pages);
+ unconsumed_cleared = 0;
+ DPRINTF("clearing unconsumed, wrap %lx", wrap);
+ /* One more round before returning ENOSPC */
+ continue;
+ }
victim->gfn = INVALID_MFN;
return -ENOSPC;
}
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
<Prev in Thread] |
Current Thread |
[Next in Thread>
|
- [Xen-devel] [PATCH 00 of 15] tools/xenpaging fixes for xen-unstable, Olaf Hering
- [Xen-devel] [PATCH 13 of 15] xenpaging: retry unpageable gfns,
Olaf Hering <=
- [Xen-devel] [PATCH 14 of 15] xenpaging: install into LIBEXEC dir, Olaf Hering
- [Xen-devel] [PATCH 04 of 15] xenpaging: simplify file_op, Olaf Hering
- [Xen-devel] [PATCH 08 of 15] xenpaging: track the number of paged-out pages, Olaf Hering
- [Xen-devel] [PATCH 02 of 15] xenpaging: remove obsolete comment in resume path, Olaf Hering
- [Xen-devel] [PATCH 01 of 15] xenpaging: remove filename from comment, Olaf Hering
- [Xen-devel] [PATCH 07 of 15] xenpaging: remove xc_dominfo_t from paging_t, Olaf Hering
- [Xen-devel] [PATCH 15 of 15] xenpaging: add XEN_PAGING_DIR / libxl_xenpaging_dir_path(), Olaf Hering
- [Xen-devel] [PATCH 09 of 15] xenpaging: move page add/resume loops into its own function, Olaf Hering
- [Xen-devel] [PATCH 06 of 15] xenpaging: update xenpaging_init, Olaf Hering
- [Xen-devel] [PATCH 03 of 15] xenpaging: use PERROR to print errno, Olaf Hering
|
|
|
|
|