[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [PATCH v2 5/6] x86/hvm: limit memory type cache flush to running domains
Avoid the cache flush if the domain is not yet running. There shouldn't be any cached data resulting from domain accesses that need flushing, as the domain hasn't run yet. No change in domain observable behavior intended. Signed-off-by: Roger Pau Monné <roger.pau@xxxxxxxxxx> --- Changes since v1: - New in this version. --- xen/arch/x86/hvm/mtrr.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/xen/arch/x86/hvm/mtrr.c b/xen/arch/x86/hvm/mtrr.c index 402a1d926337..8e1e15af8d73 100644 --- a/xen/arch/x86/hvm/mtrr.c +++ b/xen/arch/x86/hvm/mtrr.c @@ -783,7 +783,13 @@ HVM_REGISTER_SAVE_RESTORE(MTRR, hvm_save_mtrr_msr, NULL, hvm_load_mtrr_msr, 1, void memory_type_changed(struct domain *d) { if ( (is_iommu_enabled(d) || cache_flush_permitted(d)) && - d->vcpu && d->vcpu[0] && p2m_memory_type_changed(d) ) + d->vcpu && d->vcpu[0] && p2m_memory_type_changed(d) && + /* + * Do the p2m type-change, but skip the cache flush if the domain is + * not yet running. The check for creation_finished must strictly be + * done after the call to p2m_memory_type_changed(). + */ + d->creation_finished ) { flush_all(FLUSH_CACHE); } -- 2.48.1
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |