From mboxrd@z Thu Jan 1 00:00:00 1970 From: Olaf Hering Subject: [PATCH] xenpaging: use poll timeout if no paging target exists Date: Tue, 28 Aug 2012 10:32:50 +0200 Message-ID: Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: xen-devel@lists.xen.org List-Id: xen-devel@lists.xenproject.org # HG changeset patch # User Olaf Hering # Date 1346142745 -7200 # Node ID b088e473c7fb1a47b9578693c1750cd27767cc25 # Parent 03ef29089830b119b6efd87db8ab5c38b7428938 xenpaging: use poll timeout if no paging target exists Currently xenpaging will use 100% cpu time if a paging target is not yet set via xenstore. The reason is that ->use_poll_timeout is initialized to zero. Another case is when the paging target is set to zero. In this case ->use_poll_timeout will not be set to 1. Fix the first case by initializing use_poll_timeout to 1 in xenpaging_init. The second case is fixed by setting use_poll_timeout in case the target is zero and there are no more pages left to resume. Signed-off-by: Olaf Hering diff -r 03ef29089830 -r b088e473c7fb tools/xenpaging/xenpaging.c --- a/tools/xenpaging/xenpaging.c +++ b/tools/xenpaging/xenpaging.c @@ -482,6 +482,9 @@ static struct xenpaging *xenpaging_init( goto err; } + /* Use a poll timeout until xenpaging got a target from xenstore */ + paging->use_poll_timeout = 1; + return paging; err: @@ -1019,6 +1022,8 @@ int main(int argc, char *argv[]) { if ( paging->num_paged_out ) resume_pages(paging, paging->num_paged_out); + else + paging->use_poll_timeout = 1; } /* Evict more pages if target not reached */ else if ( tot_pages > paging->target_tot_pages )