From patchwork Thu Oct 4 01:48:03 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Wei Yang X-Patchwork-Id: 10625465 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id E63BB16B1 for ; Thu, 4 Oct 2018 01:48:57 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id D59D228D81 for ; Thu, 4 Oct 2018 01:48:57 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id CA0DE28DD0; Thu, 4 Oct 2018 01:48:57 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 804ED28D81 for ; Thu, 4 Oct 2018 01:48:57 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726858AbeJDIjv (ORCPT ); Thu, 4 Oct 2018 04:39:51 -0400 Received: from mail-pg1-f195.google.com ([209.85.215.195]:41951 "EHLO mail-pg1-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726735AbeJDIjv (ORCPT ); Thu, 4 Oct 2018 04:39:51 -0400 Received: by mail-pg1-f195.google.com with SMTP id 23-v6so2366386pgc.8 for ; Wed, 03 Oct 2018 18:48:54 -0700 (PDT) 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; bh=spfwQK7k0PL3HQSwL4FZDE9wrIvfEzpuhHK93i+w2Mc=; b=ukHD/RA+cypcPJhBdw6MiCDL2vOJ5nXPqC8snALF2jTYFywt/0IzrVb/oObp2wXHsn SC3DdUGhFijXhgA9MKQLf/I8b2l7YEjRRNrBUTruttePase/incxZi3342/O/1gfgb2D sSUTSjGm7+2ix6fJ4PlE+CzsmAALSGoycZGD553FKDy2jPOlsTfWp8E09IX1J9N0+xPX a3x1zVB2RepcukGYhORPraJuXIdNhuvEE5OwbnNUjFcbwNzRRPozRQo7WaIa+NFISikH Xui9A5rI9Itb1gv27QzA1f/dvyodYxvi9YjIC89AznGnQ67ry2HcSaINvqpX0N4YTGpd O25Q== 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; bh=spfwQK7k0PL3HQSwL4FZDE9wrIvfEzpuhHK93i+w2Mc=; b=P7g2HnEXXMiXtmaIXxs1k96I5Ie76qtdxiZBcvp1KBfzGluzBU20lyHlGItwQBkQN6 hiDZD6DDRwXbarvYtZBYBF+1mSQb3i2mvrfsIp8G7OE1gFwhRr6wAbhCDbzRIMY5YydJ 86aeAszh58VK2SSgNa/ZV+zdLaUB370YCrsOlbToBamC8qMe+gaj3RjC8U57fbO8j+xa n+SYGkZe0nEsriMzfuCHuPCHqUS3KSrn0IieL+pn8w+RtAWxqi0R6DtbI4xGT+85jaDz 93HrTSWQsSc99TIvmbs32vW4oqLLZ3EkRWo2hAEmMnuUD1JKMyPSO0DVygclsfIlU8rv DDFQ== X-Gm-Message-State: ABuFfoicD1t5CDmpw2rG6TgFafJKqy5KHmh4mNOpTdVVws8X5KufAanp lljeGqc10vtYHYOyk7/Tbh6e4Si0 X-Google-Smtp-Source: ACcGV61n6opCy3/XQscg6B/EAVkAXG4lQPJoTwXyn5YZMg/Uv9u0EAYW97bsS3YkCgTB0CpujXKpoQ== X-Received: by 2002:a62:56c1:: with SMTP id h62-v6mr4342772pfj.107.1538617733888; Wed, 03 Oct 2018 18:48:53 -0700 (PDT) Received: from localhost ([185.92.221.13]) by smtp.gmail.com with ESMTPSA id n13-v6sm2797729pgr.73.2018.10.03.18.48.52 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 03 Oct 2018 18:48:53 -0700 (PDT) From: Wei Yang To: pbonzini@redhat.com, rkrcmar@redhat.com Cc: x86@kernel.org, kvm@vger.kernel.org, Wei Yang Subject: [Patch v2 3/3] KVM: x86: extract mmu_spte_clear_track_bits in the loop of kvm_set_pte_rmapp Date: Thu, 4 Oct 2018 09:48:03 +0800 Message-Id: <20181004014803.94963-4-richard.weiyang@gmail.com> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20181004014803.94963-1-richard.weiyang@gmail.com> References: <20180926075853.28715-1-richard.weiyang@gmail.com> <20181004014803.94963-1-richard.weiyang@gmail.com> Sender: kvm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: kvm@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP In the loop of kvm_set_pte_rmapp(), both branch of if clause would call mmu_spte_clear_track_bits(). * one indirectly by pte_list_remove in *if* branch * one directly in *else* branch This patch extracts this behavior and call it before if clause. Signed-off-by: Wei Yang --- arch/x86/kvm/mmu.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/x86/kvm/mmu.c b/arch/x86/kvm/mmu.c index 00853b4d6658..26269948bf8c 100644 --- a/arch/x86/kvm/mmu.c +++ b/arch/x86/kvm/mmu.c @@ -1710,9 +1710,10 @@ static int kvm_set_pte_rmapp(struct kvm *kvm, struct kvm_rmap_head *rmap_head, sptep, *sptep, gfn, level); need_flush = 1; + mmu_spte_clear_track_bits(sptep); if (pte_write(*ptep)) { - pte_list_remove(rmap_head, sptep); + __pte_list_remove(sptep, rmap_head); goto restart; } else { new_spte = *sptep & ~PT64_BASE_ADDR_MASK; @@ -1723,7 +1724,6 @@ static int kvm_set_pte_rmapp(struct kvm *kvm, struct kvm_rmap_head *rmap_head, new_spte = mark_spte_for_access_track(new_spte); - mmu_spte_clear_track_bits(sptep); mmu_spte_set(sptep, new_spte); } }