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 CE5CDC61DA4 for ; Thu, 23 Feb 2023 21:12:29 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 368BC6B0071; Thu, 23 Feb 2023 16:12:29 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 315D36B0072; Thu, 23 Feb 2023 16:12:29 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 2052B6B0073; Thu, 23 Feb 2023 16:12:29 -0500 (EST) 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 1138B6B0071 for ; Thu, 23 Feb 2023 16:12:29 -0500 (EST) Received: from smtpin06.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id E8926C05FE for ; Thu, 23 Feb 2023 21:12:28 +0000 (UTC) X-FDA: 80499805176.06.8B3B721 Received: from mail-pl1-f201.google.com (mail-pl1-f201.google.com [209.85.214.201]) by imf30.hostedemail.com (Postfix) with ESMTP id 27D8880011 for ; Thu, 23 Feb 2023 21:12:26 +0000 (UTC) Authentication-Results: imf30.hostedemail.com; dkim=pass header.d=google.com header.s=20210112 header.b=cstTUl3c; spf=pass (imf30.hostedemail.com: domain of 3udb3YwYKCGwcOKXTMQYYQVO.MYWVSXeh-WWUfKMU.YbQ@flex--seanjc.bounces.google.com designates 209.85.214.201 as permitted sender) smtp.mailfrom=3udb3YwYKCGwcOKXTMQYYQVO.MYWVSXeh-WWUfKMU.YbQ@flex--seanjc.bounces.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=1677186747; 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=jZqpqHNnDrkVf5YnH4C4p2Du+MWFI+rsSboHjRikfo0=; b=oAOcbpHEhfYzEf2L112jCLy/tE3YMv3vhXrGGZ0zQd/YZiTXnSZLzWo4FfR9VpFggloEGt lPsGR3tZINfISie6t7uRx04QLyIm9VLP3sQq1Nz38kI00b56hVBuy/Qd86vX8b3cwiep6r NCHZF4x104dqRYr0WttRDp9pZi2QKBQ= ARC-Authentication-Results: i=1; imf30.hostedemail.com; dkim=pass header.d=google.com header.s=20210112 header.b=cstTUl3c; spf=pass (imf30.hostedemail.com: domain of 3udb3YwYKCGwcOKXTMQYYQVO.MYWVSXeh-WWUfKMU.YbQ@flex--seanjc.bounces.google.com designates 209.85.214.201 as permitted sender) smtp.mailfrom=3udb3YwYKCGwcOKXTMQYYQVO.MYWVSXeh-WWUfKMU.YbQ@flex--seanjc.bounces.google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1677186747; a=rsa-sha256; cv=none; b=T8PQCMJ8HLq+oCd7Vhc7caE7iIEeWg1rEqGXMeghMJWJWpqD5cSgs+OMAQYdRjMxA2lwgb D1AdgpZBovmSHWciNIvSFQZDqicOJaUsWu3U05kmaaxuBF2OYadShLmxDVf6o8vmnOzYlJ jR/Q/z5Ax7jT3nAwrTaJHAMOr6I0Epc= Received: by mail-pl1-f201.google.com with SMTP id j10-20020a170902da8a00b00188cd4769bcso5485936plx.0 for ; Thu, 23 Feb 2023 13:12:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=content-transfer-encoding:cc:to:from:subject:message-id:references :mime-version:in-reply-to:date:from:to:cc:subject:date:message-id :reply-to; bh=jZqpqHNnDrkVf5YnH4C4p2Du+MWFI+rsSboHjRikfo0=; b=cstTUl3cDjETi7Uy5k8lUK4jDXVH5n84ULJ8Qdzf8KUig6GFtpHB7w0eoI8Plhg2NM 6FWa3l7sXNc+M6YDtvaFjXzlpRtWBMe5SojZXE91tPmgJMlFF/CW1ZZv81jiCr0fXexK lScdHryZlveE1J+z0J2TIi81MbXXQWHYdNInuM44+8VugSDN/fGG/tYGrW4Jcvq/Dl9n Ek7HnOVQiTB+e4FM6RTzQyIV1EEstxc2pOWecp5NaX9GOemJJxxrazzswOceIxFVcfln /s7eha+SalTSQycIbbCTH+sAFv5dgkYSrn8AD1goiYFHWVwKHCsyUeb7nev3pGjb/y5j CUrw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding: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=jZqpqHNnDrkVf5YnH4C4p2Du+MWFI+rsSboHjRikfo0=; b=qbA2kf6+ltiqBF/4FrmguIf362f+t/K8cDGOQtZ/vcO9YvWuEBURjzi1WfCpatUHiu YuQUgeZeUsSNqnhpq31pzvnFpXWlJBp2TjVxdQQOt7M9zp/+d/i+xQ2/8Kn0gbCQ4RLG 9yB4ZGurVwESi7LpUYa+OokK4GqSaYotzY0RE4iw8ytvskBFWU36arE8V1gPH2zWxUNM 0IA5FxVjekNLSujOxnXv8YIaD9wFhxjDOHUt9Y5JsZMmhKXC0OC5sERcUlq3yyudxVk2 QLrYFIPbvuGGlxyvciMHFqF6vqvjWURax/sj56jACFKB89Jp38aW4SeDeHUMDdqK01ho lXxQ== X-Gm-Message-State: AO0yUKXxV3WZVfcpkGnZu6Z+mVT9UXfhGUkS1sBjYdX8xrT5oQbikBub wv7ax9mvm9uBszBplFRvIRDhoIlqdIM= X-Google-Smtp-Source: AK7set8UOj7NygywK+cGr/Rmvj7I4XEunDNhPQJfW5dsIVprbIkkXYFIqYFcViXFQ9A3GP588Pa1F52horE= X-Received: from zagreus.c.googlers.com ([fda3:e722:ac3:cc00:7f:e700:c0a8:5c37]) (user=seanjc job=sendgmr) by 2002:a17:90a:fa4b:b0:237:2106:a861 with SMTP id dt11-20020a17090afa4b00b002372106a861mr826705pjb.0.1677186745595; Thu, 23 Feb 2023 13:12:25 -0800 (PST) Date: Thu, 23 Feb 2023 13:12:24 -0800 In-Reply-To: Mime-Version: 1.0 References: <20230217041230.2417228-1-yuzhao@google.com> <20230217041230.2417228-2-yuzhao@google.com> Message-ID: Subject: Re: [PATCH mm-unstable v1 1/5] mm/kvm: add mmu_notifier_test_clear_young() From: Sean Christopherson To: Yu Zhao Cc: Andrew Morton , Paolo Bonzini , Jonathan Corbet , Michael Larabel , kvmarm@lists.linux.dev, kvm@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, linuxppc-dev@lists.ozlabs.org, x86@kernel.org, linux-mm@google.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: 27D8880011 X-Rspam-User: X-Stat-Signature: w83qbqiir1w4foi1tc3o1dsz8dzm9jsg X-HE-Tag: 1677186746-230433 X-HE-Meta: U2FsdGVkX1/iu/xvRUgJIte4XtLjfZ9RSgy/Ie6KG1VU5HE2nFlZLiWwoHQhFW26yKMJpp/Oxp5+gVC+ppLE5bvKw8bCY8K4KLIF/Ivk26+3zm2GVItjhRA8LCnB844015/omVrTe6X2SzqjjLK/nHO+nbQd2juEZjPZcDAAw7bPYrYxlDTYr89AvqaGftQGZ8Mje0iTadMDmj2VdCOOZOiqykCchv6vm3jJdjBpFZxTYoHQ4HWNhfTtl9s1kLDFmbtWDLrCM42CtkQZm7Tl2kz37oJruTKG7tzHXDX3cDg+ewv3136ZjfFzIy+djlbWZKwpaVofBM58B3ZGvf08bG5Oc1lVbNP9na0m1VAxDWVs/VtBfPegc04TW/VESscavSZq1Uo7fb2BQNazt1HywmM1m8Oh3A+8AeMcnslYov6xRxIDaFPyoGTBXgvpuk+MYpHcTExiD3Lkw4UD2LaFD+PsjqeeDh5oFNJcBUe9XO8lBkPeERb89pFEbm/kqD+ELDRSRfhCsEqQImvBkCfXJXAoSvXb5n/a4x9zFQGOgqv4q/YidqYxEi4RcaGnQLPz+P0q8DNjnnriEYkgcaDxad7c8dUPaY2f8Wo1c5Np2fph/ZQWNwg2CwGwCWiMfr/BNQsCWnrCBq3gHoa8O+0hEp5NzdXYoFc+U/jw3ftU/gHsC5WUviOTSBUXV3Um2MaYJ+NW5HxdDhP3iMkXpSlRsyDlU1pctR51B+S6u59vDcqQ5KYzottNxNocZwssTXiv6d3RLtkIvd1l0MKpmbLRO0H1wOYwkrhI9IG9yC5aDT3QUwcdRL1oGK/5m+SeI36jcE9zXDntoTw2iPAhulb+d38sN1N7NCq8fXrFgfDoTexbLcNfTJR7K/ZyksNsgKpvrMCrmUcwBJ9OarCEGplMS4a6XzemF4w+nZLp+BiuUlIoFar++2HIcUPDanEbyaM0tGpl/QqZxiLoHPAT/5A BYNNae0N Pefw9vGq5nHiTpsS8jlxIzVoZ4D+CKZ2mksuwBjEESvdOfY4F/7n8WgAEHYT2ESuUeKelB8WsKXQe7JWqwaZEBy2H/7J0V6JeIzGYzOMbD+WejnWdrxIz6YYBHUW0hSvWxQef2Z3lA5dWpC2T6dL48tXZk8ndA9RKGPbP/BPu7+z1c/lvvdbzTOtXIh2WTOhLTrY8i+ebL0CA38IklfW+YBuor0WpIHNB3nWJTydznMZIPxeB8k610CLHfza//uSEujFT7IWN/WSRS7CZH3e5airIwMlkmDFmLsbDbMvJv3SPs0u/MJKzyIX7QAXMvnBpSxdi1xYVuIi+1nIsu2A7W4ys2KyXm8c4tDOno9Fs1N0YcuhGl2lPCx3YmwqwyQdgbfkyPJH6Y7Mp4bVx+Lln8XIWO5kEMh2hK/a6wk898cU2d2y8n+CCjjWJR1oPqbzVeHXuEczXHpakgf2q4KTpjVp1R9WJCB3zwnyll8KLumjz4Hjwjlv9X0vVc+f1vLIMT0S4Rudbjw/NV5LsyFyoVNwJbKjqwOcvMyIc5jas/SMBkUIIZdNGI1Rsa2FhUCu5g9Xzjfx98J5eygG1MCQ5ouBIGZ4yiPHqygrOY6kzkawe1Myx5Sz0mzt4u+iQ4DXGHf5fcWyM+iUIJaoKtfSzm6BSyVSMWlYdHXCkp6CVtwuAuXE= 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: On Thu, Feb 23, 2023, Yu Zhao wrote: > On Thu, Feb 23, 2023 at 10:14=E2=80=AFAM Sean Christopherson wrote: > > > > On Thu, Feb 16, 2023, Yu Zhao wrote: > > > diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c > > > index 9c60384b5ae0..1b465df4a93d 100644 > > > --- a/virt/kvm/kvm_main.c > > > +++ b/virt/kvm/kvm_main.c > > > @@ -875,6 +875,63 @@ static int kvm_mmu_notifier_clear_young(struct m= mu_notifier *mn, > > > return kvm_handle_hva_range_no_flush(mn, start, end, kvm_age_gf= n); > > > } > > > > > > +static bool kvm_test_clear_young(struct kvm *kvm, unsigned long star= t, > > > + unsigned long end, unsigned long *bitm= ap) > > > +{ > > > + int i; > > > + int key; > > > + bool success =3D true; > > > + > > > + trace_kvm_age_hva(start, end); > > > + > > > + key =3D srcu_read_lock(&kvm->srcu); > > > + > > > + for (i =3D 0; i < KVM_ADDRESS_SPACE_NUM; i++) { > > > + struct interval_tree_node *node; > > > + struct kvm_memslots *slots =3D __kvm_memslots(kvm, i); > > > + > > > + kvm_for_each_memslot_in_hva_range(node, slots, start, e= nd - 1) { > > > + gfn_t lsb_gfn; > > > + unsigned long hva_start, hva_end; > > > + struct kvm_gfn_range range =3D { > > > + .slot =3D container_of(node, struct kvm= _memory_slot, > > > + hva_node[slots->no= de_idx]), > > > + }; > > > + > > > + hva_start =3D max(start, range.slot->userspace_= addr); > > > + hva_end =3D min(end - 1, range.slot->userspace_= addr + > > > + range.slot->npages * PAG= E_SIZE - 1); > > > + > > > + range.start =3D hva_to_gfn_memslot(hva_start, r= ange.slot); > > > + range.end =3D hva_to_gfn_memslot(hva_end, range= .slot) + 1; > > > + > > > + if (WARN_ON_ONCE(range.end <=3D range.start)) > > > + continue; > > > > Extend __kvm_handle_hva_range() instead of copy-pasting. At a very qui= ck glance, > > I believe all that is needed is (minus sanity checks): >=20 > Yes, will do. >=20 > I do need to add one more parameter to kvm_gfn_range, because that's > what the current kvm_arch_test_clear_young() needs, assuming that > function is acceptable. >=20 > Also, just a side note, from MM's POV, the following in > __kvm_handle_hva_range() seems to forget to handle end =3D=3D 0, if that'= s > possible? It's handled by the WARN_ON_ONCE() at the very top: static __always_inline int __kvm_handle_hva_range(struct kvm *kvm, const struct kvm_hva_range *range) { if (WARN_ON_ONCE(range->end <=3D range->start)) return 0; >=20 > hva_end =3D min(range->end, slot->userspace_addr + (slot->npages << > PAGE_SHIFT));