|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [PATCH v2] x86/mm: limit deferred TLB flushing to PV domain support
The current logic on x86 will mark all domain owned pages as needing a TLB
flush before being re-used. However such TLB flushing is only strictly
needed when the pages might have been mapped by a PV domain, as those can
keep a reference to the page in the TLB after it has been freed.
Limit the flushing to builds with PV domain support, as tracking whether a
page might have been mapped by a PV domain is not trivial (and possibly not
worth the extra logic).
Signed-off-by: Roger Pau Monné <roger@xxxxxxxxxxxxxx>
---
Changes since v1:
- Only avoid the flush if there's no PV domain support.
- Fix comment.
---
xen/common/page_alloc.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/xen/common/page_alloc.c b/xen/common/page_alloc.c
index 62ac89b824de..cbb2af7f64ce 100644
--- a/xen/common/page_alloc.c
+++ b/xen/common/page_alloc.c
@@ -1538,8 +1538,11 @@ static bool mark_page_free(struct page_info *pg, mfn_t
mfn)
BUG();
}
- /* If a page has no owner it will need no safety TLB flush. */
- pg->u.free.need_tlbflush = (page_get_owner(pg) != NULL);
+ /*
+ * If a page has no owner and there's no PV domain support it will need no
+ * safety TLB flush, there can be no stale TLB entries.
+ */
+ pg->u.free.need_tlbflush = IS_ENABLED(CONFIG_PV) && page_get_owner(pg);
if ( pg->u.free.need_tlbflush )
page_set_tlbflush_timestamp(pg);
--
2.55.0
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |