diff options
author | Keir Fraser <keir.fraser@citrix.com> | 2009-07-02 16:45:31 +0100 |
---|---|---|
committer | Keir Fraser <keir.fraser@citrix.com> | 2009-07-02 16:45:31 +0100 |
commit | 428dc303f59bf749bd9437e44db1f54d12bdb5bc (patch) | |
tree | 25cc970448069c97ff3e29a870d05bc6f4016305 /xen/common/tmem_xen.c | |
parent | 4cb90ae29a9c8615d7087773362062545f052d0f (diff) | |
download | xen-428dc303f59bf749bd9437e44db1f54d12bdb5bc.tar.gz xen-428dc303f59bf749bd9437e44db1f54d12bdb5bc.tar.bz2 xen-428dc303f59bf749bd9437e44db1f54d12bdb5bc.zip |
Remove page-scrub lists and async scrubbing.
The original user for this was domain destruction. Now that this is
preemptible all the way back up to dom0 userspace, asynchrony is
better iontroduced at that level, if at all, imo.
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
Diffstat (limited to 'xen/common/tmem_xen.c')
-rw-r--r-- | xen/common/tmem_xen.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/xen/common/tmem_xen.c b/xen/common/tmem_xen.c index f168535a2a..9911e802ed 100644 --- a/xen/common/tmem_xen.c +++ b/xen/common/tmem_xen.c @@ -195,12 +195,14 @@ EXPORT unsigned long tmh_page_list_pages = 0; EXPORT void tmh_release_avail_pages_to_host(void) { spin_lock(&tmh_page_list_lock); - if ( !page_list_empty(&tmh_page_list) ) + while ( !page_list_empty(&tmh_page_list) ) { - scrub_list_splice(&tmh_page_list); - INIT_PAGE_LIST_HEAD(&tmh_page_list); - tmh_page_list_pages = 0; + struct page_info *pg = page_list_first(&tmh_page_list); + scrub_one_page(pg); + free_domheap_page(pg); } + INIT_PAGE_LIST_HEAD(&tmh_page_list); + tmh_page_list_pages = 0; spin_unlock(&tmh_page_list_lock); } |