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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 785F3C25B78 for ; Tue, 4 Jun 2024 22:21:00 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 0715A6B0096; Tue, 4 Jun 2024 18:21:00 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 021C36B0098; Tue, 4 Jun 2024 18:20:59 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id E04586B0099; Tue, 4 Jun 2024 18:20:59 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id C24296B0096 for ; Tue, 4 Jun 2024 18:20:59 -0400 (EDT) Received: from smtpin17.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 4F35B12032D for ; Tue, 4 Jun 2024 22:20:59 +0000 (UTC) X-FDA: 82194627438.17.175B220 Received: from mail-qt1-f170.google.com (mail-qt1-f170.google.com [209.85.160.170]) by imf28.hostedemail.com (Postfix) with ESMTP id 8DB76C0013 for ; Tue, 4 Jun 2024 22:20:57 +0000 (UTC) Authentication-Results: imf28.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=kS2XoF+M; spf=pass (imf28.hostedemail.com: domain of jthoughton@google.com designates 209.85.160.170 as permitted sender) smtp.mailfrom=jthoughton@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1717539657; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=AIBmj4SOCWbNZTcEJ36wTOG253WABX8+/zZKq57PG38=; b=1yop/wzTdcHRbhQQ0PIce83OA4RWFbJesBCvEDKPrpxhYd0Byp/XpumpPAZJE3LHGpGeFo +5pNv2B9k4ys/oDc1v4GSSuXXpKxezMYHO5mESPpo3EKdY/nUXdcwnt7NG598ZQBohRjXN kc1fxqAW7949XjEw7RL1G7z3qJLdjHs= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1717539657; a=rsa-sha256; cv=none; b=FDfbZ9hnYxxLb6TyUkcPHkQRBovEyhIM035CRGzGQ6R55wl5hSKh4ZeSvrI3927a7OLKVF jr1PrciDsJKfdHELvThKDKRoKgOopV6SNpfBCiY1RxHkWNJjsW1yMpUuNi5HSn0pRfjacy um4XYjybB8sxUnE8Mrhn4COfrNXPNSg= ARC-Authentication-Results: i=1; imf28.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=kS2XoF+M; spf=pass (imf28.hostedemail.com: domain of jthoughton@google.com designates 209.85.160.170 as permitted sender) smtp.mailfrom=jthoughton@google.com; dmarc=pass (policy=reject) header.from=google.com Received: by mail-qt1-f170.google.com with SMTP id d75a77b69052e-44024f5271dso49731cf.1 for ; Tue, 04 Jun 2024 15:20:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1717539656; x=1718144456; darn=kvack.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=AIBmj4SOCWbNZTcEJ36wTOG253WABX8+/zZKq57PG38=; b=kS2XoF+MoWR0ZwoxPZwbd6K8CGNtg5v6NX9ftto9bSO+Z/DMcD8/8uIssr8FQth4xR 4+6RriaGBTy21dySLGYKBrTAIyO5iicfqz+ZBLI5izt3tqneGrsWIpzn4e6h2BgEyFQo 2vNLUXLhhGJdTmt7vZEQkH4eZYdguTEJZomwx4qG7cHbOme1324YOucfwZj2889KUcla rCiQtVAFlx2rQ2QhQSUwJ85DOIR4d2N0g2zQM+fq5Ff1oihywTo8+YB79o2jNSA6CCB8 smsiJlz6soZGQEV0mBsZWcTCg3OQkZSjtv8L6sa3+4YH41DIk/3ibKteWjYorLkyEJ/D t7Ng== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1717539656; x=1718144456; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=AIBmj4SOCWbNZTcEJ36wTOG253WABX8+/zZKq57PG38=; b=s50Esg0zGiDGArbYhTmke78fyK/pRjd2GxKkZv6TwKTP1ubS9q2vP6pkGORV6ZlJV/ Z7wSh0KT6guBxVBogjkPRR0m4PCVZYfnmrCAezK0DgDoh+geDe/qDPX1o55M9H9CX+2R LcmK/eh0RnzmyZy/xm88AP15IwwCkPQ+nz5vM5a6zgNGP2CF/hXQB7Qx+SmouE8XwB1Z NYBMRzzlAOYHmrng61lVVJWHP9hJILScAL7mNaHkmFlvanQ3c3PCeaNcq1QUcjWGwCrG YmZrL3Fmw2UubQ/+3G8T/JYT/6ULFkAszx7V1jKGhieOoS0g+NuYs9M8b0153e5V9h9V ojrg== X-Forwarded-Encrypted: i=1; AJvYcCXTcI9jJuqkJRX/+82kyuQaa/lA5uD8t5YTKmQ87w5KH027Qsz0jNsVrriR/DD3Z0iuRLXSWroY+Ikn4ByW2OgRGPs= X-Gm-Message-State: AOJu0YxIVQdR5FrPVovHVzAr/HnECmEtKmD/W+GU5E9ERTPwPGipMjqo Z1cJOEjglk7A0u8ad4dmchA4Bmcquf0FZQmCikIgokxEydBQZmXi0JnSRllSmk/LPFuU52ph9p6 4UgYh/zldg481D0M9BUy9jYpA2XvRq1vvZPS7 X-Google-Smtp-Source: AGHT+IFqQR6wV0ldEWSB61hJVaO5R3FbfhfGJ/jL2Y1RO1QFt4uPcpp04yR87XJA3WIv/pXl4si2o71lLJw9aUuCxfc= X-Received: by 2002:a05:622a:5a98:b0:43d:dc3b:518c with SMTP id d75a77b69052e-4402ce13c55mr332451cf.11.1717539656344; Tue, 04 Jun 2024 15:20:56 -0700 (PDT) MIME-Version: 1.0 References: <20240529180510.2295118-1-jthoughton@google.com> <20240529180510.2295118-7-jthoughton@google.com> In-Reply-To: From: James Houghton Date: Tue, 4 Jun 2024 15:20:20 -0700 Message-ID: Subject: Re: [PATCH v4 6/7] KVM: arm64: Relax locking for kvm_test_age_gfn and kvm_age_gfn To: Oliver Upton 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 , Palmer Dabbelt , Paul Walmsley , Raghavendra Rao Ananta , Ryan Roberts , Sean Christopherson , 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="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Server: rspam03 X-Rspamd-Queue-Id: 8DB76C0013 X-Rspam-User: X-Stat-Signature: dm3mi41akky3tjopysobak8ed51z869e X-HE-Tag: 1717539657-146267 X-HE-Meta: U2FsdGVkX1/sCs4Q9L9du+dw91mGSkfBqs+DBBF3klurACQAbg7FOmM+vB+vx+ysCc8W5BwX0RjUxHJI/9sdvua1nghD0/bFMfguiKj4K7hAycZtkp3xOS41W9Ip8zn4JniyB5eO+eyALp1odclmSCuXMQLy/FGCAEJwzLE7/4lG+SMb1Gy5/+oe9VyjnmOjdehZqwTAOU3asz5lzPISadj0aIQbbEEmUOt0+Y+Sjkq19bH4Rg3ddD5o1TU5TVa2XoBL93NnZwEcvyXxwYRUK4RyARaY3/sqHzEuxPpqkznoK5i7v4U/fVm78SpsZL7IedDCEF3nh72QX0SXBWX/I8lIAOqQtt5QRFwxYYC4dhJB+nKA5DDZ7rezbE2ZuUSE9IaGXOyDUmpZbtqW/HtVAfghhaJRppPGlJX4KSR+2XcTsbIRyphD35SSJB+qmagQwzrY5eICQg/6RwbqV8KNC3fY3UMS4KOx5l86+Q65pYw/BTav0zMwQgCYVCUDvMtE3FLghJrS4SlO6Riru/b9u5Bb1Or5CEBz6kY/OHPFJ1h8Pq3+PRCyWYhOH7oLQiUUocnHBZzzyKwRft9tuEbucVUtaRInIx9ssKCMZoP839SYYsFdWn2onfsTGILkvxk5ALuvJDyp+LPdKajvmAzWsL4pJd9nR4S2h31WwIX/wIPeFpSsSntB5x1HYFBCXZCiammtzQrzgKcbSoPyISGJB3Hd6jIUoqghm4jh/++oBaNO9S57xEHyd2u6s1XHcLYPHR4EzT0xyElcZP6IChR1IKyjHmYXBBLOFKQdJ+K6Cw1gZVkPCQ3inBuXgMdY69xlLY99Cg8Xxh05oN3SVdn/L/GQ3MbekbpvqAP4r45Kpf2IF8oqB67zxcRkdK5nH3GEZIIiBjNDKV2Z/EoDwbaUZNr7OoYELfdF0napC9RYW4zLVvQqdm2bVXjIp3KIbbnoA9MpmihfVlY1ld5ggxE Z+Dnsx2J +5WWYJpOQHIXgiNzVuKstZWhe8JQ2qEFAX2WmAuDZTOtWWgnjRDVV/vM1Cnoe4NVCP1ZpzdRUmUGQIBoReeXgbtzmQPUIliFI6MCNqKtC8aCjwcqThsV8KVoPKhQkCHzXvNaWMJOcwODzbeIZ1qB4JA7tfyJcgVZhMCTiF9oHaqL5bEmjsWwAeYnb4vq8uY/69wk7W46NmU0rH9H0HGhWLI4uC4zOGfeMGY/q0Ay7emmkTyvv1AbhethdXesMPp42TKHto7DqSMtbIVRorUlDWymg/S7Xy0Ss0xvVK7wBAMhyZNXaIHFbH7FJL7L9Oxiz2c8NUdNejdqSYbARqklAwKGN2U1QtVWzyIWAOURBLbUsIE4= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: On Fri, May 31, 2024 at 12:18=E2=80=AFPM Oliver Upton wrote: > > On Fri, May 31, 2024 at 12:11:33PM -0700, Oliver Upton wrote: > > On Wed, May 29, 2024 at 06:05:09PM +0000, James Houghton wrote: > > > > [...] > > > > > diff --git a/arch/arm64/kvm/hyp/pgtable.c b/arch/arm64/kvm/hyp/pgtabl= e.c > > > index 9e2bbee77491..eabb07c66a07 100644 > > > --- a/arch/arm64/kvm/hyp/pgtable.c > > > +++ b/arch/arm64/kvm/hyp/pgtable.c > > > @@ -1319,10 +1319,8 @@ static int stage2_age_walker(const struct kvm_= pgtable_visit_ctx *ctx, > > > data->young =3D true; > > > > > > /* > > > - * stage2_age_walker() is always called while holding the MMU loc= k for > > > - * write, so this will always succeed. Nonetheless, this delibera= tely > > > - * follows the race detection pattern of the other stage-2 walker= s in > > > - * case the locking mechanics of the MMU notifiers is ever change= d. > > > + * This walk may not be exclusive; the PTE is permitted to change > > > + * from under us. > > > */ > > > if (data->mkold && !stage2_try_set_pte(ctx, new)) > > > return -EAGAIN; > > > > It is probably worth mentioning that if there was a race to update the > > PTE then the GFN is most likely young, so failing to clear AF probably > > isn't even consequential. Thanks Oliver. > > Oh, and the WARN_ON() in kvm_pgtable_stage2_test_clear_young() is bogus > now. Maybe demote it to: > > r =3D kvm_pgtable_walk(...); > WARN_ON_ONCE(r && r !=3D -EAGAIN); Oh, indeed, thank you. Just to make sure -- does it make sense to retry the cmpxchg if it fails? For example, the way I have it now for x86[1], we retry the cmpxchg if the spte is still a leaf, otherwise we move on to the next one having done nothing. Does something like that make sense for arm64? [1]: https://lore.kernel.org/linux-mm/20240529180510.2295118-6-jthoughton@g= oogle.com/