From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sean Christopherson Date: Wed, 29 May 2024 14:51:24 -0700 Subject: [PATCH v4 3/7] KVM: Add lockless memslot walk to KVM In-Reply-To: <20240529180510.2295118-4-jthoughton@google.com> References: <20240529180510.2295118-1-jthoughton@google.com> <20240529180510.2295118-4-jthoughton@google.com> Message-ID: List-Id: To: kvm-riscv@lists.infradead.org MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit On Wed, May 29, 2024, James Houghton wrote: > @@ -686,10 +694,12 @@ static __always_inline int kvm_handle_hva_range(struct mmu_notifier *mn, > return __kvm_handle_hva_range(kvm, &range).ret; > } > > -static __always_inline int kvm_handle_hva_range_no_flush(struct mmu_notifier *mn, > - unsigned long start, > - unsigned long end, > - gfn_handler_t handler) > +static __always_inline int kvm_handle_hva_range_no_flush( > + struct mmu_notifier *mn, > + unsigned long start, > + unsigned long end, > + gfn_handler_t handler, > + bool lockless) Unnecessary and unwanted style change. > { > struct kvm *kvm = mmu_notifier_to_kvm(mn); > const struct kvm_mmu_notifier_range range = { > @@ -699,6 +709,7 @@ static __always_inline int kvm_handle_hva_range_no_flush(struct mmu_notifier *mn > .on_lock = (void *)kvm_null_fn, > .flush_on_ret = false, > .may_block = false, > + .lockless = lockless, Why add @lockess to kvm_handle_hva_range_no_flush()? Both callers immediately pass %false, and conceptually, locking is always optional for a "no flush" variant. > }; > > return __kvm_handle_hva_range(kvm, &range).ret; > @@ -889,7 +900,8 @@ static int kvm_mmu_notifier_clear_young(struct mmu_notifier *mn, > * cadence. If we find this inaccurate, we might come up with a > * more sophisticated heuristic later. > */ > - return kvm_handle_hva_range_no_flush(mn, start, end, kvm_age_gfn); > + return kvm_handle_hva_range_no_flush(mn, start, end, > + kvm_age_gfn, false); > } > > static int kvm_mmu_notifier_test_young(struct mmu_notifier *mn, > @@ -899,7 +911,7 @@ static int kvm_mmu_notifier_test_young(struct mmu_notifier *mn, > trace_kvm_test_age_hva(address); > > return kvm_handle_hva_range_no_flush(mn, address, address + 1, > - kvm_test_age_gfn); > + kvm_test_age_gfn, false); > } > > static void kvm_mmu_notifier_release(struct mmu_notifier *mn, > -- > 2.45.1.288.g0e0cd299f1-goog > From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-yb1-f201.google.com (mail-yb1-f201.google.com [209.85.219.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 513CB184132 for ; Wed, 29 May 2024 21:51:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.219.201 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717019489; cv=none; b=Y1DYrhtZQ6bGO9mShn6KRR3/VJH+cplr3h2FJeYwiwxIM9UfDbRPiq6neEsT6GAMcY+hKeTEKNWZQ/OEy5jAJSj41rrna3NG1RPaTbvJtqP86vrIuRpDOjE9r7BeAanskVOGFfM4nFVbbYWn8H/KJhPaduXpoYxlrwY28w67bhw= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717019489; c=relaxed/simple; bh=lKMYQD65eNFrkDU5H9syEgOM26afIR7DCV4zcHP/8AQ=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=HjXFnGbfMbsxEntkbdZ8FQPbKvNMnVqjLe6tLLlkVHr1+elxCYEbcX5ES6Il/zOnylJjewrNtoPujRecPcDWTqImcRA9ivdhX3VHK7GrkXcOiBVDSTHPUOIkoNbrw4IwO843zuzy0/04A470erFJM4/OZA2mGUUFTX13bWiB76c= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--seanjc.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=cAlZ32mN; arc=none smtp.client-ip=209.85.219.201 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--seanjc.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="cAlZ32mN" Received: by mail-yb1-f201.google.com with SMTP id 3f1490d57ef6-df52a2535d5so332129276.0 for ; Wed, 29 May 2024 14:51:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1717019486; x=1717624286; darn=lists.linux.dev; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=HZEwQSuDxXsJBbCguZar5+VKzM/izfp4n/7bUq7QabM=; b=cAlZ32mNtYsph7YMfn8JJ/1Qv0ec95I43KJ9HndwAPhHDUAHfTHVDi7Y5EZgXfFTdU /Rsjar5ck60R6hxrZ+/qqinhUXFrkDvqMqjCmKOmx+43m/QeciBBiJs9fSbExopCH+A2 xibI+OS7dOqTR/7d4XsjK9k8KvbTzxHIJL/wKV86A38Ojl/A2od2iw1PDxxtqzIeAk1Q K2IkLfy2oq8T6niQKfWKzbxw9FEFDHZANB7uK7HZ/dTe7l6C7Fkr00G3Q/9fch3rU7MW c4Kx1Jp3X8W3hDyNEdaxPDFhE/+Pvg8FGrcYuA5v4LUtz0Xo4xYeW+2Bo7ax01itiACB K4fA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1717019486; x=1717624286; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=HZEwQSuDxXsJBbCguZar5+VKzM/izfp4n/7bUq7QabM=; b=jfqzqEYEgqf8Jtds5WXim/oAbjALNAzhjn0Q1rDT7OzxMDQ9LVuTbNitFop63l6ee0 /uq2PhJ3Tjq4PEL+ECHPsoNYQ1ETo6HGG2fvL8MNhk8Yn5qtwAYNe00dmy0qi2hv+EGk Mb7evwCFnfl6p8n7J3I+T01+10MBDl23aMdSlcw6Kugd0YdJR/x+L6v4XYAEzGjVTHlM 60BLfTNDfEPTw1TRWOqK9E/pfcP0LKcykDpdm1IVwmdgaZG1E/qI4mgqt1ifhvXFQg0h yhxBubegTykEMuyVY6mvbHsbPUhCVoliu4rj/OgrcofYaf4nAOl9voPoXRJ7+PrFCfLx v7hg== X-Forwarded-Encrypted: i=1; AJvYcCXugZymUnbYte/dl3ULQIZ3033NDTool9eQlmoomQ9p0Y+uLADLmhtKELC777Uhjj+DOiFM9HGgqCd4oM1wri7cO12J2oTi X-Gm-Message-State: AOJu0YytnNQ9cF06TtY3dI20WkrD+utxhzCilNXNkfJRdaXooDUc2jFI +QX2wQKHo4OvRAiMh1qFj2MXtuK7gtpshp7hNqR16r7mhZiOe1z8aBh3W0OhCzkxlQG9Ox/AEPH 0Sg== X-Google-Smtp-Source: AGHT+IGqNZ2BbD8cAo2AnWXa3Pi0tfvxVmoPgtWnywK5+NXQgcmpZ6RBn86fT+8nIYtd+ZPLip7+OZUjHdQ= X-Received: from zagreus.c.googlers.com ([fda3:e722:ac3:cc00:7f:e700:c0a8:5c37]) (user=seanjc job=sendgmr) by 2002:a05:6902:188e:b0:df7:8889:4795 with SMTP id 3f1490d57ef6-dfa5a407dc6mr54800276.0.1717019486318; Wed, 29 May 2024 14:51:26 -0700 (PDT) Date: Wed, 29 May 2024 14:51:24 -0700 In-Reply-To: <20240529180510.2295118-4-jthoughton@google.com> Precedence: bulk X-Mailing-List: kvmarm@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20240529180510.2295118-1-jthoughton@google.com> <20240529180510.2295118-4-jthoughton@google.com> Message-ID: Subject: Re: [PATCH v4 3/7] KVM: Add lockless memslot walk to KVM From: Sean Christopherson To: James Houghton Cc: Andrew Morton , Paolo Bonzini , Albert Ou , Ankit Agrawal , Anup Patel , Atish Patra , Axel Rasmussen , Bibo Mao , Catalin Marinas , David Matlack , David Rientjes , Huacai Chen , James Morse , Jonathan Corbet , Marc Zyngier , Michael Ellerman , Nicholas Piggin , Oliver Upton , Palmer Dabbelt , Paul Walmsley , Raghavendra Rao Ananta , Ryan Roberts , Shaoqin Huang , Shuah Khan , Suzuki K Poulose , Tianrui Zhao , Will Deacon , Yu Zhao , Zenghui Yu , kvm-riscv@lists.infradead.org, kvm@vger.kernel.org, kvmarm@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-mips@vger.kernel.org, linux-mm@kvack.org, linux-riscv@lists.infradead.org, linuxppc-dev@lists.ozlabs.org, loongarch@lists.linux.dev Content-Type: text/plain; charset="us-ascii" On Wed, May 29, 2024, James Houghton wrote: > @@ -686,10 +694,12 @@ static __always_inline int kvm_handle_hva_range(struct mmu_notifier *mn, > return __kvm_handle_hva_range(kvm, &range).ret; > } > > -static __always_inline int kvm_handle_hva_range_no_flush(struct mmu_notifier *mn, > - unsigned long start, > - unsigned long end, > - gfn_handler_t handler) > +static __always_inline int kvm_handle_hva_range_no_flush( > + struct mmu_notifier *mn, > + unsigned long start, > + unsigned long end, > + gfn_handler_t handler, > + bool lockless) Unnecessary and unwanted style change. > { > struct kvm *kvm = mmu_notifier_to_kvm(mn); > const struct kvm_mmu_notifier_range range = { > @@ -699,6 +709,7 @@ static __always_inline int kvm_handle_hva_range_no_flush(struct mmu_notifier *mn > .on_lock = (void *)kvm_null_fn, > .flush_on_ret = false, > .may_block = false, > + .lockless = lockless, Why add @lockess to kvm_handle_hva_range_no_flush()? Both callers immediately pass %false, and conceptually, locking is always optional for a "no flush" variant. > }; > > return __kvm_handle_hva_range(kvm, &range).ret; > @@ -889,7 +900,8 @@ static int kvm_mmu_notifier_clear_young(struct mmu_notifier *mn, > * cadence. If we find this inaccurate, we might come up with a > * more sophisticated heuristic later. > */ > - return kvm_handle_hva_range_no_flush(mn, start, end, kvm_age_gfn); > + return kvm_handle_hva_range_no_flush(mn, start, end, > + kvm_age_gfn, false); > } > > static int kvm_mmu_notifier_test_young(struct mmu_notifier *mn, > @@ -899,7 +911,7 @@ static int kvm_mmu_notifier_test_young(struct mmu_notifier *mn, > trace_kvm_test_age_hva(address); > > return kvm_handle_hva_range_no_flush(mn, address, address + 1, > - kvm_test_age_gfn); > + kvm_test_age_gfn, false); > } > > static void kvm_mmu_notifier_release(struct mmu_notifier *mn, > -- > 2.45.1.288.g0e0cd299f1-goog > 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 9F054C25B75 for ; Wed, 29 May 2024 21:51:38 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:Cc:To:From:Subject:Message-ID: References:Mime-Version:In-Reply-To:Date:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Owner; bh=TSd5KoYT2cuNmSOM2ciSE3pv+d/uLHIO5/xz89BLquM=; b=gMwYaHa5CcYj6NJsuG8pq98DJB rPT5ObhYQ0FPx/LH4VYMSHdrd/wMXJY7ZFoEaP5uj1UzcZfOaVHWGyeQZsfseLc+syI33v8H8h2Bd CH4SRIkCojSqFMxGRiF2AiwlC/d94EvzOJJbsQ9jvvzAK9vv8uYtP3WHieX84BF2h2x+gmuXQYE7H Sd6vL52YZQbdyBIQ1xfuN263ZEkpgbrgUUY2XmJu+FdRVWye1zOj9qd0we58izIhGUgQpbFImkQu2 jlGMfKgDLMNzDOQMTMVDXa5Zo3HF5Rqu7307tAY1QR6UKq/zCMDoHqjfch2w2fktWcxp0yhaJx3NL qPD78+Ug==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1sCRCm-00000005dSb-41Kc; Wed, 29 May 2024 21:51:32 +0000 Received: from mail-yw1-x1149.google.com ([2607:f8b0:4864:20::1149]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1sCRCj-00000005dQT-3LJe for linux-riscv@lists.infradead.org; Wed, 29 May 2024 21:51:31 +0000 Received: by mail-yw1-x1149.google.com with SMTP id 00721157ae682-629f8a92145so3463087b3.0 for ; Wed, 29 May 2024 14:51:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1717019486; x=1717624286; darn=lists.infradead.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=HZEwQSuDxXsJBbCguZar5+VKzM/izfp4n/7bUq7QabM=; b=MT+n20QzoWgxDnd+uOHaUFRbQL+MgiWC+HTEhePOXV4RC1mYTmwhRanGjzY4BoQl9N b+f3X3kJerWIaGfd64B1ndhqYswCyvrrxyLNKJTaG9ra2sPRWWLC/6yhYEl/C5kntOpT B/2tB0aJy5NksuILcBR+slnjbNxAI8WFdQ16/gr2N3D6rYnUEGNel3SE44p+zWfkT070 jKB01GXvYmQZ/VcBRJhNtwE7EmydRhx6woOKEqeOvMKZjYCffACCZR4Nz52wJeJEYhBt ODbEKO7nFcw4FnB062Hf7ZJfAVGqWbj5irq658lksrYF0MpcyTfBlP7sMGQbkMLdU2Qj dt0g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1717019486; x=1717624286; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=HZEwQSuDxXsJBbCguZar5+VKzM/izfp4n/7bUq7QabM=; b=Crfi9Pq8o51o+xh5+AXZvSYqjAdMZT2qw7wkMZ6pG56aI1STfjujS8PKEZkxy1/B98 aI1WKPfpP2AJHmYKV2J8yiDCFEObOvfHRiBR0Y4zIb8eIbEP+F2SdNl+PxQrfqBTxRYt vxCJiK4XeS/p4v0wBPdLLUMEsvkj6OXYDJSA0P8mpeYSdLkcOvH0YwamN1DBXUDSWAjy Zd0vszjir+GxndK4Xnhvb4XAUWCaRFV0GgsBC7/2gEw13XWp5OANJTZv7AJDa8KOEuTP Fa1GhftrssKjCYpC2CWx/mwyqqVVkZQjrrwEVJ3n+U89OsiRXsdp12P54yCve3xt7svq imkw== X-Forwarded-Encrypted: i=1; AJvYcCVuyQTdh+npaGVpd3JFAQaxjx6iIGtszpskfiq7Kvk62CeOitiqQAn+mseBm74M9Hg/pD6JSKP90Sq1UpdEiijo/eT9ihLjpzustQzEYdSR X-Gm-Message-State: AOJu0YxRfiVj6lnlbED4/cLML5BQBdSzwhCFjIpU1dePi2otdmtMLe7V TYf0VUchIMQ2j2Ar6zLYxdCLijS+f10hrxVvulM0Rvl5JWb0vYVsnSNwcoWP4/9oKqT4XAvdZm+ LCQ== X-Google-Smtp-Source: AGHT+IGqNZ2BbD8cAo2AnWXa3Pi0tfvxVmoPgtWnywK5+NXQgcmpZ6RBn86fT+8nIYtd+ZPLip7+OZUjHdQ= X-Received: from zagreus.c.googlers.com ([fda3:e722:ac3:cc00:7f:e700:c0a8:5c37]) (user=seanjc job=sendgmr) by 2002:a05:6902:188e:b0:df7:8889:4795 with SMTP id 3f1490d57ef6-dfa5a407dc6mr54800276.0.1717019486318; Wed, 29 May 2024 14:51:26 -0700 (PDT) Date: Wed, 29 May 2024 14:51:24 -0700 In-Reply-To: <20240529180510.2295118-4-jthoughton@google.com> Mime-Version: 1.0 References: <20240529180510.2295118-1-jthoughton@google.com> <20240529180510.2295118-4-jthoughton@google.com> Message-ID: Subject: Re: [PATCH v4 3/7] KVM: Add lockless memslot walk to KVM From: Sean Christopherson To: James Houghton Cc: Andrew Morton , Paolo Bonzini , Albert Ou , Ankit Agrawal , Anup Patel , Atish Patra , Axel Rasmussen , Bibo Mao , Catalin Marinas , David Matlack , David Rientjes , Huacai Chen , James Morse , Jonathan Corbet , Marc Zyngier , Michael Ellerman , Nicholas Piggin , Oliver Upton , Palmer Dabbelt , Paul Walmsley , Raghavendra Rao Ananta , Ryan Roberts , Shaoqin Huang , Shuah Khan , Suzuki K Poulose , Tianrui Zhao , Will Deacon , Yu Zhao , Zenghui Yu , kvm-riscv@lists.infradead.org, kvm@vger.kernel.org, kvmarm@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-mips@vger.kernel.org, linux-mm@kvack.org, linux-riscv@lists.infradead.org, linuxppc-dev@lists.ozlabs.org, loongarch@lists.linux.dev X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240529_145129_966172_D2A9953D X-CRM114-Status: GOOD ( 13.38 ) X-BeenThere: linux-riscv@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-riscv" Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org On Wed, May 29, 2024, James Houghton wrote: > @@ -686,10 +694,12 @@ static __always_inline int kvm_handle_hva_range(struct mmu_notifier *mn, > return __kvm_handle_hva_range(kvm, &range).ret; > } > > -static __always_inline int kvm_handle_hva_range_no_flush(struct mmu_notifier *mn, > - unsigned long start, > - unsigned long end, > - gfn_handler_t handler) > +static __always_inline int kvm_handle_hva_range_no_flush( > + struct mmu_notifier *mn, > + unsigned long start, > + unsigned long end, > + gfn_handler_t handler, > + bool lockless) Unnecessary and unwanted style change. > { > struct kvm *kvm = mmu_notifier_to_kvm(mn); > const struct kvm_mmu_notifier_range range = { > @@ -699,6 +709,7 @@ static __always_inline int kvm_handle_hva_range_no_flush(struct mmu_notifier *mn > .on_lock = (void *)kvm_null_fn, > .flush_on_ret = false, > .may_block = false, > + .lockless = lockless, Why add @lockess to kvm_handle_hva_range_no_flush()? Both callers immediately pass %false, and conceptually, locking is always optional for a "no flush" variant. > }; > > return __kvm_handle_hva_range(kvm, &range).ret; > @@ -889,7 +900,8 @@ static int kvm_mmu_notifier_clear_young(struct mmu_notifier *mn, > * cadence. If we find this inaccurate, we might come up with a > * more sophisticated heuristic later. > */ > - return kvm_handle_hva_range_no_flush(mn, start, end, kvm_age_gfn); > + return kvm_handle_hva_range_no_flush(mn, start, end, > + kvm_age_gfn, false); > } > > static int kvm_mmu_notifier_test_young(struct mmu_notifier *mn, > @@ -899,7 +911,7 @@ static int kvm_mmu_notifier_test_young(struct mmu_notifier *mn, > trace_kvm_test_age_hva(address); > > return kvm_handle_hva_range_no_flush(mn, address, address + 1, > - kvm_test_age_gfn); > + kvm_test_age_gfn, false); > } > > static void kvm_mmu_notifier_release(struct mmu_notifier *mn, > -- > 2.45.1.288.g0e0cd299f1-goog > _______________________________________________ linux-riscv mailing list linux-riscv@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-riscv 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 lists.ozlabs.org (lists.ozlabs.org [112.213.38.117]) by smtp.lore.kernel.org (Postfix) with ESMTP id C72ABC27C43 for ; Wed, 29 May 2024 22:01:57 +0000 (UTC) Authentication-Results: lists.ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=google.com header.i=@google.com header.a=rsa-sha256 header.s=20230601 header.b=iCCYpEut; dkim-atps=neutral Received: from boromir.ozlabs.org (localhost [IPv6:::1]) by lists.ozlabs.org (Postfix) with ESMTP id 4VqNQQ24qLz7BG6 for ; Thu, 30 May 2024 07:52:14 +1000 (AEST) Authentication-Results: lists.ozlabs.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: lists.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=google.com header.i=@google.com header.a=rsa-sha256 header.s=20230601 header.b=iCCYpEut; dkim-atps=neutral Authentication-Results: lists.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=flex--seanjc.bounces.google.com (client-ip=2607:f8b0:4864:20::114a; helo=mail-yw1-x114a.google.com; envelope-from=3xqnxzgykdd0rdzmibfnnfkd.bnlkhmtwoob-cdukhrsr.nykzar.nqf@flex--seanjc.bounces.google.com; receiver=lists.ozlabs.org) Received: from mail-yw1-x114a.google.com (mail-yw1-x114a.google.com [IPv6:2607:f8b0:4864:20::114a]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id 4VqNPZ0LQDz79t3 for ; Thu, 30 May 2024 07:51:28 +1000 (AEST) Received: by mail-yw1-x114a.google.com with SMTP id 00721157ae682-62777fe7b86so2548827b3.1 for ; Wed, 29 May 2024 14:51:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1717019486; x=1717624286; darn=lists.ozlabs.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=HZEwQSuDxXsJBbCguZar5+VKzM/izfp4n/7bUq7QabM=; b=iCCYpEutEMerDO/J1CVjqT3lykTUgmXIFxDzu0UzEwnKXF3soiKoBKU+ORHOV0dg7D haeCRA/abWbxZeZwyZyncIfw6q6dUNY/ggGvS9WC9rzZB+4n+sZnEvux7rN9ol+JVGId JiOMC004TZpqA6bIgeet3t9UdFZr8FjpgljSmrcHE+KNrexwy6NdLMgUgq1JuJGVw9dJ DCS9qrNxxsSrDdKllb3QE+VOg8oqKxjIbDpZhUXmKoBHifGK4W61sMO2Q9dH+/lEIifv VwLuas1Ze+dE0hSFFwlwwmS0OSch8MPio41TmNZ2HbXTR6yW5yhzRTHYo3m8YUchTIyF BxXQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1717019486; x=1717624286; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=HZEwQSuDxXsJBbCguZar5+VKzM/izfp4n/7bUq7QabM=; b=UpqugwmRz/W4iayeVD/FUfd0HCogUkkZLaSHkqkdJKy6OYxobHSuCG7Di1EuQpICbQ oNovNpyIfz7nG56eVJawtYLImA2ZxJtZ0zFKECk+/O0unTaF6DDM24SLFJ5+rEz+lSKh dgZvSetUpTLr10X6Es+fJhlGFm+zcCSSrHHwMTBmWfn7HmfObIQV8yik7pk1kvH4eaF/ RLp+GkwH2LVwDNwRLTmiShrEBc81vixpFB8magtBpJQOxmfDR0keccejdIPQN43lziwq vWUPGdwvAGAoHo83GO9hcnJQFxSeXvjvpmz9suIP5agCy9lNrCjOvyKBQ8SYIb4Li+zM UlRQ== X-Forwarded-Encrypted: i=1; AJvYcCUO2DMD3bCi8etvl48edqf/0b4PQJghbkyXayCCHyChharh41mkh2AL7YiRR26b9E852GgOnTdkYpJZeu32tIGKp6ggIcldjCft2K2YcQ== X-Gm-Message-State: AOJu0YwHkjtfYrg2JgxSF9XHKEcGWtr9J2wpwhOjy1nfylX5aVfv5C7L 11KSCpAz5iFLv9VclEXEx9pihck7G8xrBMT+OshlMdvuJNPdrrGgldN6hA1mfWKxY4HmBRbsIzo Fig== X-Google-Smtp-Source: AGHT+IGqNZ2BbD8cAo2AnWXa3Pi0tfvxVmoPgtWnywK5+NXQgcmpZ6RBn86fT+8nIYtd+ZPLip7+OZUjHdQ= X-Received: from zagreus.c.googlers.com ([fda3:e722:ac3:cc00:7f:e700:c0a8:5c37]) (user=seanjc job=sendgmr) by 2002:a05:6902:188e:b0:df7:8889:4795 with SMTP id 3f1490d57ef6-dfa5a407dc6mr54800276.0.1717019486318; Wed, 29 May 2024 14:51:26 -0700 (PDT) Date: Wed, 29 May 2024 14:51:24 -0700 In-Reply-To: <20240529180510.2295118-4-jthoughton@google.com> Mime-Version: 1.0 References: <20240529180510.2295118-1-jthoughton@google.com> <20240529180510.2295118-4-jthoughton@google.com> Message-ID: Subject: Re: [PATCH v4 3/7] KVM: Add lockless memslot walk to KVM From: Sean Christopherson To: James Houghton Content-Type: text/plain; charset="us-ascii" X-BeenThere: linuxppc-dev@lists.ozlabs.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: kvm@vger.kernel.org, linux-doc@vger.kernel.org, Catalin Marinas , Atish Patra , linux-kernel@vger.kernel.org, kvmarm@lists.linux.dev, linux-kselftest@vger.kernel.org, Raghavendra Rao Ananta , linux-riscv@lists.infradead.org, Shuah Khan , Yu Zhao , Jonathan Corbet , Anup Patel , Huacai Chen , David Rientjes , Zenghui Yu , Axel Rasmussen , linux-mips@vger.kernel.org, Albert Ou , Ryan Roberts , Will Deacon , Suzuki K Poulose , Shaoqin Huang , Nicholas Piggin , Bibo Mao , loongarch@lists.linux.dev, Paul Walmsley , David Matlack , Palmer Dabbelt , linux-arm-kernel@lists.infradead.org, linux-mm@kvack.org, Ankit Agrawal , Oliver Upton , James Morse , kvm-riscv@lists.infradead.org, Marc Zyngier , Paolo Bonzini , Andrew Morton , Tianrui Zhao , linuxppc-dev@lists.ozlabs.org Errors-To: linuxppc-dev-bounces+linuxppc-dev=archiver.kernel.org@lists.ozlabs.org Sender: "Linuxppc-dev" On Wed, May 29, 2024, James Houghton wrote: > @@ -686,10 +694,12 @@ static __always_inline int kvm_handle_hva_range(struct mmu_notifier *mn, > return __kvm_handle_hva_range(kvm, &range).ret; > } > > -static __always_inline int kvm_handle_hva_range_no_flush(struct mmu_notifier *mn, > - unsigned long start, > - unsigned long end, > - gfn_handler_t handler) > +static __always_inline int kvm_handle_hva_range_no_flush( > + struct mmu_notifier *mn, > + unsigned long start, > + unsigned long end, > + gfn_handler_t handler, > + bool lockless) Unnecessary and unwanted style change. > { > struct kvm *kvm = mmu_notifier_to_kvm(mn); > const struct kvm_mmu_notifier_range range = { > @@ -699,6 +709,7 @@ static __always_inline int kvm_handle_hva_range_no_flush(struct mmu_notifier *mn > .on_lock = (void *)kvm_null_fn, > .flush_on_ret = false, > .may_block = false, > + .lockless = lockless, Why add @lockess to kvm_handle_hva_range_no_flush()? Both callers immediately pass %false, and conceptually, locking is always optional for a "no flush" variant. > }; > > return __kvm_handle_hva_range(kvm, &range).ret; > @@ -889,7 +900,8 @@ static int kvm_mmu_notifier_clear_young(struct mmu_notifier *mn, > * cadence. If we find this inaccurate, we might come up with a > * more sophisticated heuristic later. > */ > - return kvm_handle_hva_range_no_flush(mn, start, end, kvm_age_gfn); > + return kvm_handle_hva_range_no_flush(mn, start, end, > + kvm_age_gfn, false); > } > > static int kvm_mmu_notifier_test_young(struct mmu_notifier *mn, > @@ -899,7 +911,7 @@ static int kvm_mmu_notifier_test_young(struct mmu_notifier *mn, > trace_kvm_test_age_hva(address); > > return kvm_handle_hva_range_no_flush(mn, address, address + 1, > - kvm_test_age_gfn); > + kvm_test_age_gfn, false); > } > > static void kvm_mmu_notifier_release(struct mmu_notifier *mn, > -- > 2.45.1.288.g0e0cd299f1-goog > 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 3C18BC27C44 for ; Wed, 29 May 2024 21:51:44 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:Cc:To:From:Subject:Message-ID: References:Mime-Version:In-Reply-To:Date:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Owner; bh=KUrIjM55/yzKX5slJLaA7eM7aaHmSrd4VAlaAhDWDuc=; b=ie8qoTt6F6cmXRQlJXPmQSwZc0 XQZQVOEpodwEuPifNePfnKZT0VopmlS9Vftu2erwRh7/fJ5Efm+XuE/mKg/y8T2+NvqQ/N149GoiL A78UA3Ha61qXostOBwVKFlIW5s74HiSzZXEooYAjMrYzAhwSNU8E/RPbrHpDfsiLAFOnq4sqieAjo QlYRcqhBxYDBVvVaQ1b44+Zh06R/4Zy7z1hOtaocfGZMOBBwUPQHhi/oijnpZS3JN6h4THZKfm2I6 E8q2F60ainP5BPD2zbXMlzF1WdIgaQeWlgMmhqvBBk2rUZqIHZvWiLCwVj4VVh47DyA3kXW240jpK btQ22TDw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1sCRCn-00000005dSm-4AID; Wed, 29 May 2024 21:51:33 +0000 Received: from mail-yb1-xb49.google.com ([2607:f8b0:4864:20::b49]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1sCRCj-00000005dQS-3jAw for linux-arm-kernel@lists.infradead.org; Wed, 29 May 2024 21:51:31 +0000 Received: by mail-yb1-xb49.google.com with SMTP id 3f1490d57ef6-df771bdee6bso294908276.3 for ; Wed, 29 May 2024 14:51:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1717019486; x=1717624286; darn=lists.infradead.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=HZEwQSuDxXsJBbCguZar5+VKzM/izfp4n/7bUq7QabM=; b=MT+n20QzoWgxDnd+uOHaUFRbQL+MgiWC+HTEhePOXV4RC1mYTmwhRanGjzY4BoQl9N b+f3X3kJerWIaGfd64B1ndhqYswCyvrrxyLNKJTaG9ra2sPRWWLC/6yhYEl/C5kntOpT B/2tB0aJy5NksuILcBR+slnjbNxAI8WFdQ16/gr2N3D6rYnUEGNel3SE44p+zWfkT070 jKB01GXvYmQZ/VcBRJhNtwE7EmydRhx6woOKEqeOvMKZjYCffACCZR4Nz52wJeJEYhBt ODbEKO7nFcw4FnB062Hf7ZJfAVGqWbj5irq658lksrYF0MpcyTfBlP7sMGQbkMLdU2Qj dt0g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1717019486; x=1717624286; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=HZEwQSuDxXsJBbCguZar5+VKzM/izfp4n/7bUq7QabM=; b=To58cxzh0YQ8fZI3VYAwjBvrgEaxbXyBXW+J+mTHc1QXLJRoV//62RRlXeYUVePGtC NTxsCeegSXoGmfijd0zYjc/lbn/f/QJtvKjqeuiShODqOJ9fnLXEVRFym1N2l4bP8H7D tg1QbC7J9MKBw1Pmc6kuFwo/by+EBP1pZMzTaX3v5TbybUXdPBZ/MHA1Oz90PQyeC8nW YsDQCFR/JJUAudbpoUhxlxRfQtaHRIB+VEVu4J5++mlXhgPiujPYzl6c2fFxJRxF0OZ3 tiBQjBjzBgnm6T+KqJU9Yn2H/Ri7JpGYhv5wAm/CA6W8p6TlEAE4lcuTrZPPL0D6LY7w 2MrA== X-Forwarded-Encrypted: i=1; AJvYcCXKG2/ceDJvJdOAwKUx68Qx7V/FoVfcK43MO6XnzShXI6Rls8/MsgiJuP6hvS11i2dCDEjYehYu6FcMDfggK6KBHJ79OhwYEJN3aSRPj1RybyeDBpg= X-Gm-Message-State: AOJu0YwZSY6NQpxIXpvxXXalutLhTwDxx4oKBGKw8WFzBEXv75jVit8P bXPkFC4edlltFEnMDuqbDj6SFi2B1WHtHsaPWknKAH1zpClHdGdeF+Y1+eldYwMIz1iCYbtXWHK SVw== X-Google-Smtp-Source: AGHT+IGqNZ2BbD8cAo2AnWXa3Pi0tfvxVmoPgtWnywK5+NXQgcmpZ6RBn86fT+8nIYtd+ZPLip7+OZUjHdQ= X-Received: from zagreus.c.googlers.com ([fda3:e722:ac3:cc00:7f:e700:c0a8:5c37]) (user=seanjc job=sendgmr) by 2002:a05:6902:188e:b0:df7:8889:4795 with SMTP id 3f1490d57ef6-dfa5a407dc6mr54800276.0.1717019486318; Wed, 29 May 2024 14:51:26 -0700 (PDT) Date: Wed, 29 May 2024 14:51:24 -0700 In-Reply-To: <20240529180510.2295118-4-jthoughton@google.com> Mime-Version: 1.0 References: <20240529180510.2295118-1-jthoughton@google.com> <20240529180510.2295118-4-jthoughton@google.com> Message-ID: Subject: Re: [PATCH v4 3/7] KVM: Add lockless memslot walk to KVM From: Sean Christopherson To: James Houghton Cc: Andrew Morton , Paolo Bonzini , Albert Ou , Ankit Agrawal , Anup Patel , Atish Patra , Axel Rasmussen , Bibo Mao , Catalin Marinas , David Matlack , David Rientjes , Huacai Chen , James Morse , Jonathan Corbet , Marc Zyngier , Michael Ellerman , Nicholas Piggin , Oliver Upton , Palmer Dabbelt , Paul Walmsley , Raghavendra Rao Ananta , Ryan Roberts , Shaoqin Huang , Shuah Khan , Suzuki K Poulose , Tianrui Zhao , Will Deacon , Yu Zhao , Zenghui Yu , kvm-riscv@lists.infradead.org, kvm@vger.kernel.org, kvmarm@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-mips@vger.kernel.org, linux-mm@kvack.org, linux-riscv@lists.infradead.org, linuxppc-dev@lists.ozlabs.org, loongarch@lists.linux.dev X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240529_145129_963915_7EBF6733 X-CRM114-Status: GOOD ( 14.78 ) 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: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org On Wed, May 29, 2024, James Houghton wrote: > @@ -686,10 +694,12 @@ static __always_inline int kvm_handle_hva_range(struct mmu_notifier *mn, > return __kvm_handle_hva_range(kvm, &range).ret; > } > > -static __always_inline int kvm_handle_hva_range_no_flush(struct mmu_notifier *mn, > - unsigned long start, > - unsigned long end, > - gfn_handler_t handler) > +static __always_inline int kvm_handle_hva_range_no_flush( > + struct mmu_notifier *mn, > + unsigned long start, > + unsigned long end, > + gfn_handler_t handler, > + bool lockless) Unnecessary and unwanted style change. > { > struct kvm *kvm = mmu_notifier_to_kvm(mn); > const struct kvm_mmu_notifier_range range = { > @@ -699,6 +709,7 @@ static __always_inline int kvm_handle_hva_range_no_flush(struct mmu_notifier *mn > .on_lock = (void *)kvm_null_fn, > .flush_on_ret = false, > .may_block = false, > + .lockless = lockless, Why add @lockess to kvm_handle_hva_range_no_flush()? Both callers immediately pass %false, and conceptually, locking is always optional for a "no flush" variant. > }; > > return __kvm_handle_hva_range(kvm, &range).ret; > @@ -889,7 +900,8 @@ static int kvm_mmu_notifier_clear_young(struct mmu_notifier *mn, > * cadence. If we find this inaccurate, we might come up with a > * more sophisticated heuristic later. > */ > - return kvm_handle_hva_range_no_flush(mn, start, end, kvm_age_gfn); > + return kvm_handle_hva_range_no_flush(mn, start, end, > + kvm_age_gfn, false); > } > > static int kvm_mmu_notifier_test_young(struct mmu_notifier *mn, > @@ -899,7 +911,7 @@ static int kvm_mmu_notifier_test_young(struct mmu_notifier *mn, > trace_kvm_test_age_hva(address); > > return kvm_handle_hva_range_no_flush(mn, address, address + 1, > - kvm_test_age_gfn); > + kvm_test_age_gfn, false); > } > > static void kvm_mmu_notifier_release(struct mmu_notifier *mn, > -- > 2.45.1.288.g0e0cd299f1-goog > _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel