Received: by 2002:a05:6a10:f3d0:0:0:0:0 with SMTP id a16csp2836641pxv; Mon, 12 Jul 2021 03:09:23 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzb/d99iSxQS0Tz/hVftGCl7qSKpx778DCjXm8OjHIEb+aqHnqu5Zlky7nHnOH5P4uVjp1a X-Received: by 2002:a92:660f:: with SMTP id a15mr39049144ilc.182.1626084444425; Mon, 12 Jul 2021 03:07:24 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1626084444; cv=none; d=google.com; s=arc-20160816; b=oCbekP9O8V5qXaqxliREcn+K+1CLlBadZeUZ+7BK/sfVymildqgMT3iEruqjW+ooI8 Wdtr6Zcg7cgaMxASSCfVH7q6ofXYFStTLAOE0NhiAAXsBznFOlVyaWA+s9pQYeNQMOfk y/ZDgYxaiwGQxK04GmpDOlL2PWMb0K5AGk/MdOwOzuvo13tqzv5QCoX/Okn2COvZRqGq 7Xm8ftuEDzCuqasbi+XCG676HzFLXJJ3VIzrL0zBsLBfbFzj5WU66v7onH5OCgOz1CUV +FaOWSuXmmXOP+f+2T0FBZ8SS+HquoeuHrELWji6/MZWapMnTlArh4N4dFDzG0CoFbo0 SKhA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=WY/bU+o38zobz0IWb3cfa18rXkrOrhYSKjCIv/P4NfE=; b=AjhDvE14M04n2JECTrrnH1yTerLxG7HH4fv+/WJQ9jod1YsdtA2q38168J58NA8L4s Gz93wd0TrZ5hJdyQofMiMmalzwjSAzDTD+v0Q1Pcq+WoChj1xg8f5vhMHUU7Ts1qUrCw 4FW6i3tgPgAQIGFDqW/mli2SDeLprk4j/fZTbaRapyTkfoVZPz2puEBwPZskKbgozwnK dr02B8Oyu9TjX5/WJJDrEcr4G5xx1VCpalYhGiLfzQ7beDmzyZiVO1SESKB6b0ZHfHPa rDAyWRFE0ME0z9d9CdIGNlgsVKs7SVbwaYISeh+Bo1lrEQsEZ5N7SV0tjCnOhfh7cJsU ueZw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=H3vMTa3L; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id j23si15279431iok.60.2021.07.12.03.07.12; Mon, 12 Jul 2021 03:07:24 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=H3vMTa3L; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1349919AbhGLHpA (ORCPT + 99 others); Mon, 12 Jul 2021 03:45:00 -0400 Received: from mail.kernel.org ([198.145.29.99]:46988 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S245405AbhGLHMX (ORCPT ); Mon, 12 Jul 2021 03:12:23 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 8DB1D61006; Mon, 12 Jul 2021 07:09:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1626073774; bh=zs2iCVfLhabpPBv7Qs0DHn84/XSM8RTgq6Y6Z4Nmh48=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=H3vMTa3Lh524CAKObH34UOTB5FjbT+YB1BUSuzRPXms6D1hzpiBGjnib1U1TeYD9h 192jIS9xP67XZaYCzHuhQFR+xZ44H/hZYndmvZ0WX7qcaLb62SYaYFBktSSjjRvNKn leVCORN/BY7kXwDw3xtGcibx+C0jCroIbbS6kxOA= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Sean Christopherson , Kai Huang , Paolo Bonzini , Sasha Levin Subject: [PATCH 5.12 302/700] KVM: x86/mmu: Fix pf_fixed count in tdp_mmu_map_handle_target_level() Date: Mon, 12 Jul 2021 08:06:25 +0200 Message-Id: <20210712061008.512163414@linuxfoundation.org> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210712060924.797321836@linuxfoundation.org> References: <20210712060924.797321836@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Kai Huang [ Upstream commit 857f84743e4b78500afae010d866675642e18e90 ] Currently pf_fixed is not increased when prefault is true. This is not correct, since prefault here really means "async page fault completed". In that case, the original page fault from the guest was morphed into as async page fault and pf_fixed was not increased. So when prefault indicates async page fault is completed, pf_fixed should be increased. Additionally, currently pf_fixed is also increased even when page fault is spurious, while legacy MMU increases pf_fixed when page fault returns RET_PF_EMULATE or RET_PF_FIXED. To fix above two issues, change to increase pf_fixed when return value is not RET_PF_SPURIOUS (RET_PF_RETRY has already been ruled out by reaching here). More information: https://lore.kernel.org/kvm/cover.1620200410.git.kai.huang@intel.com/T/#mbb5f8083e58a2cd262231512b9211cbe70fc3bd5 Fixes: bb18842e2111 ("kvm: x86/mmu: Add TDP MMU PF handler") Reviewed-by: Sean Christopherson Signed-off-by: Kai Huang Message-Id: <2ea8b7f5d4f03c99b32bc56fc982e1e4e3d3fc6b.1623717884.git.kai.huang@intel.com> Signed-off-by: Paolo Bonzini Signed-off-by: Sasha Levin --- arch/x86/kvm/mmu/tdp_mmu.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/arch/x86/kvm/mmu/tdp_mmu.c b/arch/x86/kvm/mmu/tdp_mmu.c index 7cfb55788df5..5c83b912becc 100644 --- a/arch/x86/kvm/mmu/tdp_mmu.c +++ b/arch/x86/kvm/mmu/tdp_mmu.c @@ -782,7 +782,11 @@ static int tdp_mmu_map_handle_target_level(struct kvm_vcpu *vcpu, int write, rcu_dereference(iter->sptep)); } - if (!prefault) + /* + * Increase pf_fixed in both RET_PF_EMULATE and RET_PF_FIXED to be + * consistent with legacy MMU behavior. + */ + if (ret != RET_PF_SPURIOUS) vcpu->stat.pf_fixed++; return ret; -- 2.30.2