Received: by 10.223.164.202 with SMTP id h10csp343139wrb; Wed, 8 Nov 2017 17:53:21 -0800 (PST) X-Google-Smtp-Source: ABhQp+Q08EGF4Et/snCPYlwZT9DSF8q26jOzffrxAhHSfeQbT0cedxcpbYy/F3BJlki7wKcoygW/ X-Received: by 10.101.93.134 with SMTP id f6mr2250818pgt.89.1510192401145; Wed, 08 Nov 2017 17:53:21 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1510192401; cv=none; d=google.com; s=arc-20160816; b=KMcfqSe7h2mxYCy5w3EiDk2yGyyBFyz8w0Zvjn2ytjRAb9j2nxEhOHz9Q2MnWKajJX 5MZKrVu5MMQaAgJo9S6+SIHXRyisIPJabkL6SAD4vFkQG1tr8/wy+dZljxlQuWR6puWr gisq/1DIawmlm7/DYK5pDU4TTRHc1iepDOa3dwDsVklt9KEemGgNW3v6nGKbGjgxSET/ kK9QwPQbcdA2rdpDGg2P0mlx6sAtIOA46TzoqrNdO0rX/GHKdbfPhPtfNT+PU6jWUsdX v3azQ9ShnqJt23jUSfuwkMUEuAnml1UEYS0aw3eoaWH9vMTm3o34Z2f9lsmj9WkhEmqG 7kDg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:arc-authentication-results; bh=Kp9ZpBh7OpiHmniGx8lWEg8PHCVHES7udYXaTX//LwY=; b=peDzGyPMRoeRqzMGhXpnMIEr6KuTm0ZvBMQmPIGnBu7+9+SDJiILhS4JNZdMQQofDF Q1F6QoGbmBIu/y+Jsf9y9JpN3/SZpgL3+jqYv4+5v5pdsRYFPhIp8XXmgMW0cH2D+wXC KWOvd7OoHSk6AF+1TQGYmDMyeJJ8VJc7PFBdwbEggWpIRbOgLlpoU5Oz7RzuvS1MKdCW LHCqGnDc7sNyYWCZCpcCondp7UP1n5DqcPr8uwWFOGraDN3OpVc0Gr254QKcKE/uN9Uv r2slkn8kASgmX5Q6m6RC1cczhRfQ/qZrauhk38FlTlHzqF3EHdsvvq3FqgWoHJCIgFAi YO0Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=REgi3SY1; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id e1si5015152pln.687.2017.11.08.17.53.10; Wed, 08 Nov 2017 17:53:21 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=REgi3SY1; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753149AbdKIBwa (ORCPT + 82 others); Wed, 8 Nov 2017 20:52:30 -0500 Received: from mail-pf0-f196.google.com ([209.85.192.196]:54468 "EHLO mail-pf0-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752862AbdKIBw1 (ORCPT ); Wed, 8 Nov 2017 20:52:27 -0500 Received: by mail-pf0-f196.google.com with SMTP id n89so3121154pfk.11; Wed, 08 Nov 2017 17:52:27 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=Kp9ZpBh7OpiHmniGx8lWEg8PHCVHES7udYXaTX//LwY=; b=REgi3SY18/yhIgVQzUdXtcf+8NoLgXceNVkLI8M4wFoG7R+XCPQZedKZlYHYLOlTzj JYTAGgO6L4utrAmODoHjRWjC2QOU0gl9+M9JMVwt2Pg/NpWhyYJzOzdhhSoMzfYBuJwh rFl+uZzkaA9GZ2B3UFqe1GkhFDbRG6eJHDiAdp68eKgPZKPZDkLzMWCPNdcXosF67Wrr dOiwtmUJd3qy1RbI28zmn9gSda8FGaGnKAIfD8RsHdicx5bj89Ejbc7i7u80qGetI3gc Zowpa2wWfC+mMymeVjOGwM/yNaIdxQylKe9f5YUvBeKdcylwtk7mLL9ve1RG1ylUSBMK sQjQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=Kp9ZpBh7OpiHmniGx8lWEg8PHCVHES7udYXaTX//LwY=; b=bYmXEyT5PYcTZ3dTFU4aJrSUNPaIrB3w70Lq+JmISzDJX5HsWNvxwBaqftkA1EUupa NtM7sgDDfxCxWp6I85O1+96F+GdZLDHgSR3nt6js+M5UyeOOugXFkpe5uHqokz22VQa3 ZFpdi8hrqpaBMeHFhk57IieitxNuPJc9ZG1ROK8plakdajx6Ha4RooSgfsh8TYDDq+w3 R7Mn0RO32Es6ctPT5hHGL1b6wZOAyZAG+fiSMb1hLocWSG1TBPXF/6JDhJ5ZYUEZV+Xo 0GZVKlCB2OJvzGHrLLweNz7mTPZZC8JcjAYVVKM2rq0o2mIhh/FJT25fz/cI1eYlq7te wjBg== X-Gm-Message-State: AJaThX4Vn+F5bJjqrbAnnYvfTkXy9i1eQbirIAc1mAjPk1ittUW8I4v0 o4iyxRB5AODU0i8aS8rpKoIGQg== X-Received: by 10.159.216.137 with SMTP id s9mr2155668plp.173.1510192347119; Wed, 08 Nov 2017 17:52:27 -0800 (PST) Received: from localhost ([203.205.141.123]) by smtp.gmail.com with ESMTPSA id 125sm9727194pff.14.2017.11.08.17.52.25 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 08 Nov 2017 17:52:26 -0800 (PST) From: Wanpeng Li X-Google-Original-From: Wanpeng Li To: linux-kernel@vger.kernel.org, kvm@vger.kernel.org Cc: Paolo Bonzini , =?UTF-8?q?Radim=20Kr=C4=8Dm=C3=A1=C5=99?= , Wanpeng Li Subject: [PATCH 3/3] KVM: Add flush_on_enter before guest enter Date: Wed, 8 Nov 2017 17:52:15 -0800 Message-Id: <1510192335-4765-4-git-send-email-wanpeng.li@hotmail.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1510192335-4765-1-git-send-email-wanpeng.li@hotmail.com> References: <1510192335-4765-1-git-send-email-wanpeng.li@hotmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Wanpeng Li PV-Flush guest would indicate to flush on enter, flush the TLB before entering and exiting the guest. Cc: Paolo Bonzini Cc: Radim Krčmář Signed-off-by: Wanpeng Li --- arch/x86/kvm/x86.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c index 1ea28a2..f295360 100644 --- a/arch/x86/kvm/x86.c +++ b/arch/x86/kvm/x86.c @@ -2116,7 +2116,13 @@ static void record_steal_time(struct kvm_vcpu *vcpu) &vcpu->arch.st.steal, sizeof(struct kvm_steal_time)))) return; - vcpu->arch.st.steal.preempted = KVM_VCPU_NOT_PREEMPTED; + if (xchg(&vcpu->arch.st.steal.preempted, KVM_VCPU_NOT_PREEMPTED) == + (KVM_VCPU_SHOULD_FLUSH | KVM_VCPU_PREEMPTED)) + /* + * Do TLB_FLUSH before entering the guest, its passed + * the stage of request checking + */ + kvm_x86_ops->tlb_flush(vcpu); if (vcpu->arch.st.steal.version & 1) vcpu->arch.st.steal.version += 1; /* first time write, random junk */ @@ -2887,7 +2893,9 @@ static void kvm_steal_time_set_preempted(struct kvm_vcpu *vcpu) if (!(vcpu->arch.st.msr_val & KVM_MSR_ENABLED)) return; - vcpu->arch.st.steal.preempted = KVM_VCPU_PREEMPTED; + if (xchg(&vcpu->arch.st.steal.preempted, KVM_VCPU_PREEMPTED) == + KVM_VCPU_SHOULD_FLUSH) + kvm_make_request(KVM_REQ_TLB_FLUSH, vcpu); kvm_write_guest_offset_cached(vcpu->kvm, &vcpu->arch.st.stime, &vcpu->arch.st.steal.preempted, -- 2.7.4 From 1583534337164267041@xxx Wed Nov 08 21:20:26 +0000 2017 X-GM-THRID: 1583036146436860425 X-Gmail-Labels: Inbox,Category Forums,HistoricalUnread