Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:12.2:ARM
xen
24219-xenpaging_retry_unpageable_gfns.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 24219-xenpaging_retry_unpageable_gfns.patch of Package xen
changeset: 24219:8eba32b9598c user: Olaf Hering <olaf@aepfle.de> date: Sun Nov 20 17:02:41 2011 +0100 files: tools/xenpaging/policy_default.c description: 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@aepfle.de> Committed-by: Ian Jackson <ian.jackson.citrix.com> --- tools/xenpaging/policy_default.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) Index: xen-4.1.2-testing/tools/xenpaging/policy_default.c =================================================================== --- xen-4.1.2-testing.orig/tools/xenpaging/policy_default.c +++ xen-4.1.2-testing/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; }
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor