aboutsummaryrefslogtreecommitdiffstats
path: root/xen/common/tmem_xen.c
diff options
context:
space:
mode:
authorKeir Fraser <keir.fraser@citrix.com>2009-07-02 16:45:31 +0100
committerKeir Fraser <keir.fraser@citrix.com>2009-07-02 16:45:31 +0100
commit428dc303f59bf749bd9437e44db1f54d12bdb5bc (patch)
tree25cc970448069c97ff3e29a870d05bc6f4016305 /xen/common/tmem_xen.c
parent4cb90ae29a9c8615d7087773362062545f052d0f (diff)
downloadxen-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.c10
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);
}