Received: by 2002:a25:683:0:0:0:0:0 with SMTP id 125csp772233ybg; Wed, 10 Jun 2020 13:19:12 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyrqHarmvVZ8Lu9PvW0OlVW5FeVBoJX+OAgv2HsjkEeTVi7FjebmmNiAQup8rpWib1OFncQ X-Received: by 2002:a17:906:11d9:: with SMTP id o25mr4944377eja.377.1591820352184; Wed, 10 Jun 2020 13:19:12 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1591820352; cv=none; d=google.com; s=arc-20160816; b=GH0WdvzstfMsL91ViaZoEiSkn6BB+qREHJ4K5VMNZYefLBj/hUxfVP9JdfbEDFH1nH h2solWh9uNhQgzWO/XdFr9fGw8umzitQguaoAJa0AsUoDImlaL0MD7p5yuDbfDN3sP58 LrXalAVfWV8BjzZLfbn8bcMZJ48eojlHUX36Xlejj0IepEqSHaU8Bvq/QKETeGymNOr8 dT6f2yjzllg50kj7SIrTxhr+ZEBpSNLYgUD7pk547UylNxYnvYqTtgBEN+ePRfa8gJOJ Q1QuEGQA8y8EtYTz8n1opxIP+gsi2C90ET16WpjB3/LZW369B9S9Zhlq2VPlvfs3SUDl WDnA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=0A0qTEHL/4KHt4CSQ8r/67Dw7HuODJhcnw3jBL6/4J0=; b=krG9ALMpw09bMaEraMp4GsB+xssngGjjZlo8ZNl3CCKK3l8wROvmVJfrV2g8sVZ+cc zWDg1dfY4Jr0OcNqWa0H0vCn0Jt7rAcuIuKH+kuRkDA3H+2p2oYZ9ekUpWQztcNNOaqE fApy3M9uqhE+AJoboyiCypPDoa4HFhEYrKYIeyjQwCK2xO8zrmYmvAAqLD3dKiY0ZJzE w6nKndraRV9zbXWhHBYNKAvAgroCW/bxMoORRh2zwnIpczPhBLGezwGOrHmzzeH3vT/4 BdSeJFz5aR5/gABzrz7pqzgHhM7aNLpKVBB//wBqWeo6HNDZYg8o71wtOBNIi3VzR+Br oYlA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=Uf3Tl88+; 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=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id s14si708469ejx.620.2020.06.10.13.18.48; Wed, 10 Jun 2020 13:19:12 -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=@google.com header.s=20161025 header.b=Uf3Tl88+; 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=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726668AbgFJStR (ORCPT + 99 others); Wed, 10 Jun 2020 14:49:17 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47412 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729248AbgFJStQ (ORCPT ); Wed, 10 Jun 2020 14:49:16 -0400 Received: from mail-ua1-x941.google.com (mail-ua1-x941.google.com [IPv6:2607:f8b0:4864:20::941]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4CE1FC08C5C2 for ; Wed, 10 Jun 2020 11:49:15 -0700 (PDT) Received: by mail-ua1-x941.google.com with SMTP id t26so1205135ual.13 for ; Wed, 10 Jun 2020 11:49:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=0A0qTEHL/4KHt4CSQ8r/67Dw7HuODJhcnw3jBL6/4J0=; b=Uf3Tl88+r0ZyuZCQWfWB4PKDaMKAKtTmR6Y9IRa+cZCE9Bel4uJmzIXjeKMF6RESzG LfRsF4qIQ0RgpqHmWzJlWqVEBTAqGpfp3uDaBvyS+7FpOH2I5TCz8Aup8cO5pEGd0SCa dZZRdSK4u8zEu43fSdct+eOH+fiK8d8XsddBgDh0+mFmO/treg7/Zgl5ppH2zXln/3rm aHbacx6sUYuvLvgSVcBokZ6/H9kJZ2LLodZG55RSeTYZ6S48Q6/WxuvmnbLN+rlClHkk xZgdZAOd7KqDVNt1dPiM0Ajs/2q3d6Fqn5vfCVRThl9/PLnPIFWioYOR1khnyt7cBCZC QdEg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=0A0qTEHL/4KHt4CSQ8r/67Dw7HuODJhcnw3jBL6/4J0=; b=K360zLxU2cqQTCZqbB6EnAah7/G6BM1y8Awm0cN7QcFWMqcgSRtyvIKzmq4zyOPyv/ 7jC1xCJrmUzPPFIHfXkEYsGLKSURq+5SBJTtbAe5+vkAEsmgRNOTPLgJDEle7k2xX6hb T6ykkVmZuF0dDJjRS2wFvhz2NTestvaTDxmibvn6xAnyXDgT5JhXPdgfWXuimBe9AHiY qgvbiZOrj0BSC/xVNILSk5qymGCdMqcf1bNZfS1PbK4M56E4tFCTdBkb6FWxlUJNnTXa Mo7Lnx+ce/wh1/KnmJtzY5AY7NwBYX0EA5tJOPJKRSMmNhNX1qKLFSzxtU7VeHaWiE35 glZw== X-Gm-Message-State: AOAM533IxRvBEdJAcM/CRR7ag9UP0QduubehHHTEKQ4UrMNDcPT0oRby RpGUEBBov+qBuN+zY2h0jdnYRVCCq5s6gQTIoS9XFg== X-Received: by 2002:ab0:70c9:: with SMTP id r9mr3658814ual.15.1591814953932; Wed, 10 Jun 2020 11:49:13 -0700 (PDT) MIME-Version: 1.0 References: <20200605213853.14959-1-sean.j.christopherson@intel.com> <20200605213853.14959-12-sean.j.christopherson@intel.com> In-Reply-To: <20200605213853.14959-12-sean.j.christopherson@intel.com> From: Ben Gardon Date: Wed, 10 Jun 2020 11:49:02 -0700 Message-ID: Subject: Re: [PATCH 11/21] KVM: x86/mmu: Zero allocate shadow pages (outside of mmu_lock) To: Sean Christopherson Cc: Marc Zyngier , Paul Mackerras , Christian Borntraeger , Janosch Frank , Paolo Bonzini , James Morse , Julien Thierry , Suzuki K Poulose , David Hildenbrand , Cornelia Huck , Claudio Imbrenda , Vitaly Kuznetsov , Wanpeng Li , Jim Mattson , Joerg Roedel , linux-arm-kernel@lists.infradead.org, kvmarm@lists.cs.columbia.edu, linux-mips@vger.kernel.org, kvm@vger.kernel.org, kvm-ppc@vger.kernel.org, linux-kernel@vger.kernel.org, Peter Feiner , Peter Shier , Junaid Shahid , Christoffer Dall Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Jun 5, 2020 at 2:39 PM Sean Christopherson wrote: > > Set __GFP_ZERO for the shadow page memory cache and drop the explicit > clear_page() from kvm_mmu_get_page(). This moves the cost of zeroing a > page to the allocation time of the physical page, i.e. when topping up > the memory caches, and thus avoids having to zero out an entire page > while holding mmu_lock. > > Cc: Peter Feiner > Cc: Peter Shier > Cc: Junaid Shahid > Cc: Jim Mattson > Suggested-by: Ben Gardon > Signed-off-by: Sean Christopherson Reviewed-by: Ben Gardon > --- > arch/x86/kvm/mmu/mmu.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/arch/x86/kvm/mmu/mmu.c b/arch/x86/kvm/mmu/mmu.c > index 6b0ec9060786..a8f8eebf67df 100644 > --- a/arch/x86/kvm/mmu/mmu.c > +++ b/arch/x86/kvm/mmu/mmu.c > @@ -2545,7 +2545,6 @@ static struct kvm_mmu_page *kvm_mmu_get_page(struct kvm_vcpu *vcpu, > if (level > PG_LEVEL_4K && need_sync) > flush |= kvm_sync_pages(vcpu, gfn, &invalid_list); > } > - clear_page(sp->spt); > trace_kvm_mmu_get_page(sp, true); > > kvm_mmu_flush_or_zap(vcpu, &invalid_list, false, flush); > @@ -5687,6 +5686,8 @@ int kvm_mmu_create(struct kvm_vcpu *vcpu) > vcpu->arch.mmu_page_header_cache.kmem_cache = mmu_page_header_cache; > vcpu->arch.mmu_page_header_cache.gfp_zero = __GFP_ZERO; > > + vcpu->arch.mmu_shadow_page_cache.gfp_zero = __GFP_ZERO; > + > vcpu->arch.mmu = &vcpu->arch.root_mmu; > vcpu->arch.walk_mmu = &vcpu->arch.root_mmu; > > -- > 2.26.0 >