[Devel] [PATCH RHEL7 COMMIT] Revert "kvm/x86: do not clear hyperv synic pages when setting MSRs"

Konstantin Khorenko khorenko at virtuozzo.com
Tue Apr 18 05:56:34 PDT 2017


The commit is pushed to "branch-rh7-3.10.0-514.16.1.vz7.30.x-ovz" and will appear at https://src.openvz.org/scm/ovz/vzkernel.git
after rh7-3.10.0-514.16.1.vz7.30.2
------>
commit 12ef8f93ff4c22492a7e3844d2a97bb7b8c98526
Author: Evgeny Yakovlev <eyakovlev at virtuozzo.com>
Date:   Tue Apr 18 16:56:34 2017 +0400

    Revert "kvm/x86: do not clear hyperv synic pages when setting MSRs"
    
    This reverts commit 9b97e5b0878dcf05bdb00c6054fb99125be46501,
    next patch "kvm/x86: clear hyperv synic pages only when guest modifies MSRs"
    contains a better fix for
    
    https://jira.sw.ru/browse/PSBM-63164
    https://jira.sw.ru/browse/PSBM-64657
    
    Signed-off-by: Evgeny Yakovlev <eyakovlev at virtuozzo.com>
    Reviewed-by: Roman Kagan <rkagan at virtuozzo.com>
---
 arch/x86/kvm/hyperv.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/arch/x86/kvm/hyperv.c b/arch/x86/kvm/hyperv.c
index 563c54fb..eae314b 100644
--- a/arch/x86/kvm/hyperv.c
+++ b/arch/x86/kvm/hyperv.c
@@ -219,11 +219,23 @@ static int synic_set_msr(struct kvm_vcpu_hv_synic *synic,
 		synic->version = data;
 		break;
 	case HV_X64_MSR_SIEFP:
+		if (data & HV_SYNIC_SIEFP_ENABLE)
+			if (kvm_clear_guest(vcpu->kvm,
+					    data & PAGE_MASK, PAGE_SIZE)) {
+				ret = 1;
+				break;
+			}
 		synic->evt_page = data;
 		if (!host)
 			synic_exit(synic, msr);
 		break;
 	case HV_X64_MSR_SIMP:
+		if (data & HV_SYNIC_SIMP_ENABLE)
+			if (kvm_clear_guest(vcpu->kvm,
+					    data & PAGE_MASK, PAGE_SIZE)) {
+				ret = 1;
+				break;
+			}
 		synic->msg_page = data;
 		if (!host)
 			synic_exit(synic, msr);


More information about the Devel mailing list