From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 16C38C3DA5D for ; Thu, 25 Jul 2024 18:25:23 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:In-Reply-To:Content-Type: MIME-Version:References:Message-ID:Subject:Cc:To:From:Date:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=Se8gRYY5LIzNKXtdqfpnU7+bApyeWuI8Q5DVjozYskA=; b=RgrRUf+dPuBDpcwteBFlfutorP 8kDsB0iAjhmG37F2yf4bB9Zh96j4Pbhf3RGBySfKHUH7nAcSKJVvRKu2mqhdw5Bc4fIeK+icVREUz YDaPMD2Te9XSgmU9iGGbq6TWTUhYry7FBOjr8DF4OTGIRLXXGWL6K/wTOz3cfc+DsIbNgMu+TI/p/ IozFZWtqUY2dXMbob6Up4J99MeQ928Vferb3YXPfsxp/6cUodSgHDNwRdhMCgV90oneSfj+QVGLV9 6dr7fKmHW1rW1c34k7u7qhJd1lOvLPUOUTruDNAWfW4++O02tgQzThTDXJ2szpCvuiMf+KM3zoV/z DbBPc5Hw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1sX39J-00000001m7f-0DTQ; Thu, 25 Jul 2024 18:25:09 +0000 Received: from mail-pl1-x633.google.com ([2607:f8b0:4864:20::633]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1sX38t-00000001m0T-3EEP for linux-arm-kernel@lists.infradead.org; Thu, 25 Jul 2024 18:24:45 +0000 Received: by mail-pl1-x633.google.com with SMTP id d9443c01a7336-1fd66cddd4dso11553525ad.2 for ; Thu, 25 Jul 2024 11:24:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1721931883; x=1722536683; darn=lists.infradead.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=Se8gRYY5LIzNKXtdqfpnU7+bApyeWuI8Q5DVjozYskA=; b=r6TOtr9+h1PAs/lEF1HIXHRBbbHC/ionUW131HDVdS2p4crNqPouuv1M3LKrVQfGpI YwdTtIHq8uZYGcKUAU9+epA6NgKQThI8TNiRcio/Bp8BEKXsvSVgVvquA8a5lkFrQRlJ 9+wN2tUmDnIu2w+BczCIKY47b2ks/BIfJ3OW5TE4jUgOWMYSF6Uru+wwA7JNB9kChJTV +gnl7rvAma6+3RfP+IssxVYrTpDgWO1j/BEE8WdLlmZ6SUaiKrTfT/oFh5BO1ivWmq36 IgSTdBHBrTEGx/jBS2K12yP6SHyB8nxaUr1L5SaEdjppOyxB2CDVf3XrG2HYP40yFu0m 7pyQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1721931883; x=1722536683; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=Se8gRYY5LIzNKXtdqfpnU7+bApyeWuI8Q5DVjozYskA=; b=T8wo1kB6MFBtOUynP3LBwpZ7feeSCqURvtTzbQhQuCvzbVs+lyYssxZU0G/chCNoyO Y4zuQvtOoMSiSJMOyfBR7Z8nuMPBhEC7xJp2GE8DiYn3bhtyXHAW71lFi+2MAtTVsbzF bNpeI0RFmr7w09Mp/fz8KGF3mQkE91uBTp/KP/KkZBGMo5WBK4LlijXBQ5hv5SFtS80R rWnBaFehF5Y/nKsqvTIyH2CiJDqm3eeL+lnIMpYX4f2FnyiZkYshR1JxPatZ3cGHRC6/ egnbsU9CtEA43q3W4nBE3zT+aPY1aIhIhlZ+vWVnC9QxCEwq8qF/OslY6CUSsfZFY01x /XFw== X-Forwarded-Encrypted: i=1; AJvYcCWTw243IamJWiI0Gblh9rUAmYR3Pe2lrMcNtytbVm4sO5o5Uy5p68hq10AfdwY2mJZfVyHL029OGYSqmlQZNrxuEDYTCi0EN6KDMXfp464/q/dL56A= X-Gm-Message-State: AOJu0YyET02vXZIY3aESnge9VtBzxpjZnlveHMyrhIAUNh8ASZ2Hr4Jp 8dJoxPff5oK+xSjbOUEiYVSAymgv37AGpRwCTORLCXkhqK/y4sNfIB+6I36mpg== X-Google-Smtp-Source: AGHT+IGk5VWe3MPnS2h4842sbCO2M3IxnHPFyqsvxia4EgfDcheEN/25uzJzuwNsHLA2SFZv0xA2tg== X-Received: by 2002:a17:902:da91:b0:1fc:5b68:ffb8 with SMTP id d9443c01a7336-1fed38ba92fmr44676985ad.30.1721931882617; Thu, 25 Jul 2024 11:24:42 -0700 (PDT) Received: from google.com (61.139.125.34.bc.googleusercontent.com. [34.125.139.61]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-1fed7fa4045sm17298215ad.258.2024.07.25.11.24.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 Jul 2024 11:24:42 -0700 (PDT) Date: Thu, 25 Jul 2024 11:24:37 -0700 From: David Matlack To: James Houghton Cc: Andrew Morton , Paolo Bonzini , Ankit Agrawal , Axel Rasmussen , Catalin Marinas , David Rientjes , James Morse , Jason Gunthorpe , Jonathan Corbet , Marc Zyngier , Oliver Upton , Raghavendra Rao Ananta , Ryan Roberts , Sean Christopherson , Shaoqin Huang , Suzuki K Poulose , Wei Xu , Will Deacon , Yu Zhao , Zenghui Yu , kvmarm@lists.linux.dev, kvm@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org Subject: Re: [PATCH v6 09/11] KVM: x86: Implement fast_only versions of kvm_{test_,}age_gfn Message-ID: References: <20240724011037.3671523-1-jthoughton@google.com> <20240724011037.3671523-10-jthoughton@google.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20240724011037.3671523-10-jthoughton@google.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240725_112443_832507_716D7C39 X-CRM114-Status: GOOD ( 22.98 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org On 2024-07-24 01:10 AM, James Houghton wrote: > These fast-only versions simply ignore the shadow MMU. We can locklessly > handle the shadow MMU later. > > Set HAVE_KVM_MMU_NOTIFIER_YOUNG_FAST_ONLY for X86_64 only, as that is > the only case where the TDP MMU might be used. Without the TDP MMU, the > fast-only notifiers will always be no-ops. It would be ideal not to > report has_fast_only if !tdp_mmu_enabled, but tdp_mmu_enabled can be > changed at any time. tdp_mmu_enabled is a read-only KVM parameter. And even when it was writable, it was still fixed for a given VM at VM creation time. Would it make more sense to have kvm_arch_post_init_vm() set has_fast_aging if the architecture supports it. And for x86 that means iff tdp_mmu_enabled. > > Signed-off-by: James Houghton > --- > arch/x86/kvm/Kconfig | 1 + > arch/x86/kvm/mmu/mmu.c | 4 ++-- > 2 files changed, 3 insertions(+), 2 deletions(-) > > diff --git a/arch/x86/kvm/Kconfig b/arch/x86/kvm/Kconfig > index 6ac43074c5e9..ed9049cf1255 100644 > --- a/arch/x86/kvm/Kconfig > +++ b/arch/x86/kvm/Kconfig > @@ -24,6 +24,7 @@ config KVM > select KVM_COMMON > select KVM_GENERIC_MMU_NOTIFIER > select KVM_MMU_NOTIFIER_YOUNG_LOCKLESS > + select HAVE_KVM_MMU_NOTIFIER_YOUNG_FAST_ONLY if X86_64 > select HAVE_KVM_IRQCHIP > select HAVE_KVM_PFNCACHE > select HAVE_KVM_DIRTY_RING_TSO > diff --git a/arch/x86/kvm/mmu/mmu.c b/arch/x86/kvm/mmu/mmu.c > index 919d59385f89..3c6c9442434a 100644 > --- a/arch/x86/kvm/mmu/mmu.c > +++ b/arch/x86/kvm/mmu/mmu.c > @@ -1641,7 +1641,7 @@ bool kvm_age_gfn(struct kvm *kvm, struct kvm_gfn_range *range) > if (tdp_mmu_enabled) > young |= kvm_tdp_mmu_age_gfn_range(kvm, range); > > - if (kvm_has_shadow_mmu_sptes(kvm)) { > + if (!range->arg.fast_only && kvm_has_shadow_mmu_sptes(kvm)) { > write_lock(&kvm->mmu_lock); > young = kvm_handle_gfn_range(kvm, range, kvm_age_rmap); > write_unlock(&kvm->mmu_lock); > @@ -1657,7 +1657,7 @@ bool kvm_test_age_gfn(struct kvm *kvm, struct kvm_gfn_range *range) > if (tdp_mmu_enabled) > young |= kvm_tdp_mmu_test_age_gfn(kvm, range); > > - if (!young && kvm_has_shadow_mmu_sptes(kvm)) { > + if (!young && !range->arg.fast_only && kvm_has_shadow_mmu_sptes(kvm)) { > write_lock(&kvm->mmu_lock); > young = kvm_handle_gfn_range(kvm, range, kvm_test_age_rmap); > write_unlock(&kvm->mmu_lock); > -- > 2.46.0.rc1.232.g9752f9e123-goog >