Received: by 2002:a25:1985:0:0:0:0:0 with SMTP id 127csp4186719ybz; Tue, 28 Apr 2020 07:10:58 -0700 (PDT) X-Google-Smtp-Source: APiQypJfcce+8qzZZ5wQgW3bkcTrJo4stVnER7Au2cvVRZhb3/ILEUIUL03EQb9uKMkPspFDhT66 X-Received: by 2002:a17:906:af6f:: with SMTP id os15mr25268283ejb.78.1588083057923; Tue, 28 Apr 2020 07:10:57 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1588083057; cv=none; d=google.com; s=arc-20160816; b=rmfgyIulRGcJ4sW7Uu77cPqHxd8cjvGHVmon3Of6MLYW9QM9T3P/II7nwuPq5oS3FI Yo4uvilJSccliKQYLJ6j46FLCkj5iS4ALWrKqjMrWVix7vdxG/Kh1aIKb3nYzBJsA5VX Z4qmsiSXC45Au+UadTshcIeXYWbjUsMTV9z83yWE2ZKCptGZt9/a3mlKplU5a3wvBW8u 3lgXW4pyfpNj6RhTR0Rddf+dY/cgpiyCMG56wTL/EVwyQhuvRYfkqxNU2JC3g5cRok+A zMevycO7FsrAdVBwBKQdwe+6Y53XTBZV5eUkLsZmxtiMnN6/wPUBql0w9fVkJu4zKfr5 vwgg== 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 :content-language:in-reply-to:mime-version:user-agent:date :message-id:from:references:cc:to:subject:dkim-signature; bh=Fy9ivS8QPPwiuCK+doJtcNxxWhUNoFRKbiicEk8ESXs=; b=Y5GNuCfZpk95XlLOHprlTRCaUnql8Ucn8uDxRfM7bY6uXYyvV/v4WXF/7/0eTZhaU6 kBh4yVP7M4Fu+jGzToauhnjShYqQFU71rUyBoahgoSHAYpVE0BYZkss4EnfsaMQNuBwb oeSNGG2hw1+eHIB8dYXa75vKHIAetxgcrJgF5Lf6ffHRwtQ7xqO5eOtr2Z3EKpTxE2PH I8iyv/PCpX/PYru/IhES/bNUWQQUV9Z+5jWdgPc8kkV+rIc2bLK3IRhahTzJ+PxKK1RN OIXpvdGnvDVb2NtQGiCYpaPmX4qcGBBKu8MixNIJLRhnPvJ0fi+I76bBUS3NLQmhtU6r PjjA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=m03V7Bqn; 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 w18si1608160edr.474.2020.04.28.07.10.34; Tue, 28 Apr 2020 07:10:57 -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=m03V7Bqn; 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 S1728088AbgD1OHd (ORCPT + 99 others); Tue, 28 Apr 2020 10:07:33 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58902 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726939AbgD1OHd (ORCPT ); Tue, 28 Apr 2020 10:07:33 -0400 Received: from mail-qt1-x842.google.com (mail-qt1-x842.google.com [IPv6:2607:f8b0:4864:20::842]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id EFF47C03C1A9 for ; Tue, 28 Apr 2020 07:07:32 -0700 (PDT) Received: by mail-qt1-x842.google.com with SMTP id k12so17352043qtm.4 for ; Tue, 28 Apr 2020 07:07:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=Fy9ivS8QPPwiuCK+doJtcNxxWhUNoFRKbiicEk8ESXs=; b=m03V7Bqnrzc7u1hOHNegLX/D6uRA6iSn20RxNU8QvJ1QFKsSaD70QJ6n/s/UyarsFJ rS4XcjYTl/K8wPVQmsqZcwGaYD4DEF96z+keAqbELkFqDS54ADd792WseZXN6fmhZjdK D2hC44IoUKWdnBAHvC5M60WEYESwUu1VZofGFOKhASI+hQkhe9zsHZWNSdgUyJHHj9IU jBU0JJsSzE8KiMpymNT5HJRvRE8knYzVWS+0PdOCFmaciO0iQSVK5de5Rbf3CztawIBI CdsaCr46/lqDnOLgGy9KBM4Sz16Nusr1wxAiubc5Qq7sqPrR7bFG3qVDFZzxPdIE6WuI tBmw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=Fy9ivS8QPPwiuCK+doJtcNxxWhUNoFRKbiicEk8ESXs=; b=pA8BFrTpV30uPcxDd4QAlF31FUBTei5kVZacjAAUcFQ9CgE+0Jh57c1oKsTfKxKHBH deyKxeIgB2ZrHJxpzM8JLrVM8pDhvG7GNj6xslZYbLpkiLVr0HqTnFBk2DKR12rBfKa2 4+YaQDPCSkCghNvRyyQgCxrbM/sAbNFw7obBG4ApFOC39OflM/mKKSeb9oCCuQmI5/CS qWK2z7SaTuetp9hIp0n0UqHp7LxSDk67gL4GMVjP/V5fmr2nhuEzE8gNLZ6LEIVAS4HH WFLxc1Yrq0tRUY3sF521oW1h8rWUmY9ivSCU6ESgA2EihH3oHt6yL9+aXqGdjtJsVjoA m6PQ== X-Gm-Message-State: AGi0PuYcZPGAq3qDBVGwobToRjZsJxWnFf/Yz6zPqwvEpBkuYHIqDnbS BO7IJUqxvkbzgxNRLIckXohJ39j3s+c= X-Received: by 2002:ac8:65cc:: with SMTP id t12mr28186660qto.310.1588082850656; Tue, 28 Apr 2020 07:07:30 -0700 (PDT) Received: from [192.168.1.10] (c-66-30-119-151.hsd1.ma.comcast.net. [66.30.119.151]) by smtp.gmail.com with ESMTPSA id 29sm13492497qkr.109.2020.04.28.07.07.29 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 28 Apr 2020 07:07:29 -0700 (PDT) Subject: Re: [PATCH 1/3] KVM: x86/mmu: Tweak PSE hugepage handling to avoid 2M vs 4M conundrum To: Sean Christopherson , Paolo Bonzini Cc: Vitaly Kuznetsov , Wanpeng Li , Jim Mattson , Joerg Roedel , kvm@vger.kernel.org, linux-kernel@vger.kernel.org References: <20200428005422.4235-1-sean.j.christopherson@intel.com> <20200428005422.4235-2-sean.j.christopherson@intel.com> From: Barret Rhoden Message-ID: <3e60b34b-e160-2052-3066-c29867ccef64@google.com> Date: Tue, 28 Apr 2020 10:07:27 -0400 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.5.0 MIME-Version: 1.0 In-Reply-To: <20200428005422.4235-2-sean.j.christopherson@intel.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 4/27/20 8:54 PM, Sean Christopherson wrote: > Change the PSE hugepage handling in walk_addr_generic() to fire on any > page level greater than PT_PAGE_TABLE_LEVEL, a.k.a. PG_LEVEL_4K. PSE > paging only has two levels, so "== 2" and "> 1" are functionally the > seam, i.e. this is a nop. ^ s/seam/same/ Barret > > A future patch will drop KVM's PT_*_LEVEL enums in favor of the kernel's > PG_LEVEL_* enums, at which point "walker->level == PG_LEVEL_2M" is > semantically incorrect (though still functionally ok). > > No functional change intended. > > Suggested-by: Paolo Bonzini > Signed-off-by: Sean Christopherson > --- > arch/x86/kvm/mmu/paging_tmpl.h | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/arch/x86/kvm/mmu/paging_tmpl.h b/arch/x86/kvm/mmu/paging_tmpl.h > index efec7d27b8c5..ca39bd315f70 100644 > --- a/arch/x86/kvm/mmu/paging_tmpl.h > +++ b/arch/x86/kvm/mmu/paging_tmpl.h > @@ -436,7 +436,7 @@ static int FNAME(walk_addr_generic)(struct guest_walker *walker, > gfn = gpte_to_gfn_lvl(pte, walker->level); > gfn += (addr & PT_LVL_OFFSET_MASK(walker->level)) >> PAGE_SHIFT; > > - if (PTTYPE == 32 && walker->level == PT_DIRECTORY_LEVEL && is_cpuid_PSE36()) > + if (PTTYPE == 32 && walker->level > PT_PAGE_TABLE_LEVEL && is_cpuid_PSE36()) > gfn += pse36_gfn_delta(pte); > > real_gpa = mmu->translate_gpa(vcpu, gfn_to_gpa(gfn), access, &walker->fault); >