xenpaging: track the number of paged-out pages
authorOlaf Hering <olaf@aepfle.de>
Sun, 20 Nov 2011 16:02:38 +0000 (17:02 +0100)
committerOlaf Hering <olaf@aepfle.de>
Sun, 20 Nov 2011 16:02:38 +0000 (17:02 +0100)
This change is required by subsequent changes.

Signed-off-by: Olaf Hering <olaf@aepfle.de>
Committed-by: Ian Jackson <ian.jackson.citrix.com>
tools/xenpaging/xenpaging.c
tools/xenpaging/xenpaging.h

index 04b030c8e8d2cd54a898d5c26679c834358d5201..5877030cddc5b77da28c44067d63676b6d575b63 100644 (file)
@@ -467,6 +467,9 @@ static int xenpaging_evict_page(xenpaging_t *paging,
     /* Notify policy of page being paged out */
     policy_notify_paged_out(victim->gfn);
 
+    /* Record number of evicted pages */
+    paging->num_paged_out++;
+
  out:
     return ret;
 }
@@ -480,8 +483,13 @@ static int xenpaging_resume_page(xenpaging_t *paging, mem_event_response_t *rsp,
 
     /* Notify policy of page being paged in */
     if ( notify_policy )
+    {
         policy_notify_paged_in(rsp->gfn);
 
+       /* Record number of resumed pages */
+       paging->num_paged_out--;
+    }
+
     /* Tell Xen page is ready */
     ret = xc_mem_paging_resume(paging->xc_handle, paging->mem_event.domain_id,
                                rsp->gfn);
index 65cc6f9c3f8ab5c8c728ad2626e4ddbd8e3f37f6..2ea8064234377941e10727b6046e2ccf33b8fdf6 100644 (file)
@@ -49,6 +49,7 @@ typedef struct xenpaging {
     mem_event_t mem_event;
     /* number of pages for which data structures were allocated */
     int max_pages;
+    int num_paged_out;
     int num_pages;
     int policy_mru_size;
     unsigned long pagein_queue[XENPAGING_PAGEIN_QUEUE_SIZE];