|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen master] xen/x86: p2m-pod: Use typesafe gfn for the fields reclaim_single and max_guest
commit cb8d8395aec671cc15f99566701670e2cb56794b
Author: Julien Grall <julien.grall@xxxxxxx>
AuthorDate: Mon Oct 2 13:59:40 2017 +0100
Commit: George Dunlap <george.dunlap@xxxxxxxxxx>
CommitDate: Mon Oct 2 17:32:56 2017 +0100
xen/x86: p2m-pod: Use typesafe gfn for the fields reclaim_single and
max_guest
Signed-off-by: Julien Grall <julien.grall@xxxxxxx>
Acked-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
Reviewed-by: Wei Liu <wei.liu2@xxxxxxxxxx>
Reviewed-by: George Dunlap <george.dunlap@xxxxxxxxxx>
---
xen/arch/x86/mm/p2m-pod.c | 11 +++++------
xen/include/asm-x86/p2m.h | 4 ++--
2 files changed, 7 insertions(+), 8 deletions(-)
diff --git a/xen/arch/x86/mm/p2m-pod.c b/xen/arch/x86/mm/p2m-pod.c
index 55f2fa4..8d50a0d 100644
--- a/xen/arch/x86/mm/p2m-pod.c
+++ b/xen/arch/x86/mm/p2m-pod.c
@@ -977,10 +977,10 @@ p2m_pod_emergency_sweep(struct p2m_domain *p2m)
p2m_type_t t;
- if ( p2m->pod.reclaim_single == 0 )
+ if ( gfn_eq(p2m->pod.reclaim_single, _gfn(0)) )
p2m->pod.reclaim_single = p2m->pod.max_guest;
- start = p2m->pod.reclaim_single;
+ start = gfn_x(p2m->pod.reclaim_single);
limit = (start > POD_SWEEP_LIMIT) ? (start - POD_SWEEP_LIMIT) : 0;
/* FIXME: Figure out how to avoid superpages */
@@ -990,7 +990,7 @@ p2m_pod_emergency_sweep(struct p2m_domain *p2m)
* careful about spinlock recursion limits and POD_SWEEP_STRIDE.
*/
p2m_lock(p2m);
- for ( i = p2m->pod.reclaim_single; i > 0 ; i-- )
+ for ( i = gfn_x(p2m->pod.reclaim_single); i > 0 ; i-- )
{
p2m_access_t a;
(void)p2m->get_entry(p2m, _gfn(i), &t, &a, 0, NULL, NULL);
@@ -1020,7 +1020,7 @@ p2m_pod_emergency_sweep(struct p2m_domain *p2m)
p2m_pod_zero_check(p2m, gfns, j);
p2m_unlock(p2m);
- p2m->pod.reclaim_single = i ? i - 1 : i;
+ p2m->pod.reclaim_single = _gfn(i ? i - 1 : i);
}
@@ -1135,8 +1135,7 @@ p2m_pod_demand_populate(struct p2m_domain *p2m, gfn_t gfn,
goto out_of_memory;
/* Keep track of the highest gfn demand-populated by a guest fault */
- if ( gfn_x(gfn) > p2m->pod.max_guest )
- p2m->pod.max_guest = gfn_x(gfn);
+ p2m->pod.max_guest = gfn_max(gfn, p2m->pod.max_guest);
/*
* Get a page f/ the cache. A NULL return value indicates that the
diff --git a/xen/include/asm-x86/p2m.h b/xen/include/asm-x86/p2m.h
index 1ae9216..e8a9dca 100644
--- a/xen/include/asm-x86/p2m.h
+++ b/xen/include/asm-x86/p2m.h
@@ -316,8 +316,8 @@ struct p2m_domain {
single; /* Non-super lists */
long count, /* # of pages in cache lists */
entry_count; /* # of pages in p2m marked pod */
- unsigned long reclaim_single; /* Last gpfn of a scan */
- unsigned long max_guest; /* gpfn of max guest demand-populate */
+ gfn_t reclaim_single; /* Last gfn of a scan */
+ gfn_t max_guest; /* gfn of max guest demand-populate */
/*
* Tracking of the most recently populated PoD pages, for eager
--
generated by git-patchbot for /home/xen/git/xen.git#master
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxx
https://lists.xenproject.org/xen-changelog
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |