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 084EEC61DA4 for ; Thu, 23 Feb 2023 17:34:58 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 965EF6B0072; Thu, 23 Feb 2023 12:34:57 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 915D46B0073; Thu, 23 Feb 2023 12:34:57 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 7DDE06B0074; Thu, 23 Feb 2023 12:34:57 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 69D8A6B0072 for ; Thu, 23 Feb 2023 12:34:57 -0500 (EST) Received: from smtpin28.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 45C101406D4 for ; Thu, 23 Feb 2023 17:34:57 +0000 (UTC) X-FDA: 80499257034.28.A93BC86 Received: from mail-yw1-f202.google.com (mail-yw1-f202.google.com [209.85.128.202]) by imf17.hostedemail.com (Postfix) with ESMTP id 8CF4440002 for ; Thu, 23 Feb 2023 17:34:55 +0000 (UTC) Authentication-Results: imf17.hostedemail.com; dkim=pass header.d=google.com header.s=20210112 header.b=fvEBJKNT; spf=pass (imf17.hostedemail.com: domain of 3vqP3YwYKCAs3plyunrzzrwp.nzxwty58-xxv6lnv.z2r@flex--seanjc.bounces.google.com designates 209.85.128.202 as permitted sender) smtp.mailfrom=3vqP3YwYKCAs3plyunrzzrwp.nzxwty58-xxv6lnv.z2r@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=1677173695; 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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=4HvtD+IMg3vyDXGpZcS0GeFnM8gx7HgAcp0Q62lmtW4=; b=mZ+FR/6LKS3lYOxXoTzj6YydUfpMj6MW30FOHx6gY/2ghj3Dthk0W5na3pVusYJ/o6s80d sgW+BmpfDUm4BhW/aGN4jgvvMSSIyEKicRa+G4gLTaN62QOHCeSooFU0xgFNbjEyCwyNe/ T2znSJWuneEkAUSQuO3O84eR2wOZi/c= ARC-Authentication-Results: i=1; imf17.hostedemail.com; dkim=pass header.d=google.com header.s=20210112 header.b=fvEBJKNT; spf=pass (imf17.hostedemail.com: domain of 3vqP3YwYKCAs3plyunrzzrwp.nzxwty58-xxv6lnv.z2r@flex--seanjc.bounces.google.com designates 209.85.128.202 as permitted sender) smtp.mailfrom=3vqP3YwYKCAs3plyunrzzrwp.nzxwty58-xxv6lnv.z2r@flex--seanjc.bounces.google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1677173695; a=rsa-sha256; cv=none; b=Dw7AYs76qgDvUtD1o6jz0wRGU8gVebI382KwC2Ar+tq2OMrW04bI5aozP5DRjNM1xksxt7 1dVwoCzFwrhPe+Ug7qCBu0NYsZ7pz2QRBXnNfyULoT8Q6IeNuQUFuFN09YDY6rTT028ehU blTRbMmfDasOZxZ0YmFQF4gyvKpJ75w= Received: by mail-yw1-f202.google.com with SMTP id 00721157ae682-536bbaa701aso138377907b3.3 for ; Thu, 23 Feb 2023 09:34:55 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=4HvtD+IMg3vyDXGpZcS0GeFnM8gx7HgAcp0Q62lmtW4=; b=fvEBJKNTVgASaDjc9Q0VXXTAIHEeqbLAf/33eHK5qtIch5pppRvvtww/N2ViF2gpdq VCAiByWM0l/uNFtxN6iV9hK9EY1uZL/NFtqzu8+sHL4tj8XGIV3zT+VWHXk8cqOcs76m 313IP1Iu0V/gvoPT+akxf2tRfrtOogk7Aohae/b/Aowp4hWjO+AiMIwooblfNsZUhyiu U4MrCMNErtTs5EP+Mg3bg1pBjkaTPY96RUHhEDGrAVECxaGcvdLPa0vW0CY9T5AOps78 5vvq/sVqQVqjMo9ETUdGV8sO5IdO/RVjAtFU/I637xYFOPP6pd7vWPL3FWBwSWirJEqB rtFg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; 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=4HvtD+IMg3vyDXGpZcS0GeFnM8gx7HgAcp0Q62lmtW4=; b=G20Q6bcvsl8nbwxS3xJy5gpE9k8/7U/KCK0i8f2QyT8Zu791sf3jUxlfpvq1czbqwx Fh49DYj5QuauS9f2iI8U0D+W2tmXjbucH0nAlQNBAPRYdkLMnoiUQcOasWNI85ShzYat 4M+3g3sAj5oS2645N7QHIV+NMrJ8q9wHnZOJX61unE84MY2/tN7RZu2eJlbfwP78rani cEvAxCS9UCE/GCDpE/zm5brCpmpBwnRsHDxck0C6cBzNSdByXDC0zpqjsFVpITcjwJsS LRk9Jxs1MtlngPg8DweJhLEHKH7Si3JDFRt41a5EljzAIun9WeJ08gSXzhScFeyx/P1f JpKw== X-Gm-Message-State: AO0yUKW/3iByNvSVJXe3JsWZNgQmzPGHGQCGgTI9nU7mS4GpzyW8lUte PeKUm63F0EyhKsD9eF29wVUnk6ysQFk= X-Google-Smtp-Source: AK7set9qM18OCmCtNF4MtwIz5dX/Eaw8z+NF94C05s0wfxF7vpTFz86wUpljUQl+IzVT57C5nxDYcFR2baU= X-Received: from zagreus.c.googlers.com ([fda3:e722:ac3:cc00:7f:e700:c0a8:5c37]) (user=seanjc job=sendgmr) by 2002:a81:524e:0:b0:534:7482:b73 with SMTP id g75-20020a81524e000000b0053474820b73mr788300ywb.153.1677173694654; Thu, 23 Feb 2023 09:34:54 -0800 (PST) Date: Thu, 23 Feb 2023 09:34:52 -0800 In-Reply-To: <20230217041230.2417228-2-yuzhao@google.com> 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="us-ascii" X-Rspamd-Queue-Id: 8CF4440002 X-Stat-Signature: nhx7grrzbb6fhczfyf1cdpnk3w7qx8hg X-Rspam-User: X-Rspamd-Server: rspam08 X-HE-Tag: 1677173695-82512 X-HE-Meta: U2FsdGVkX1+UazLUQqK/7LGc8VyPqHHwKqOKoIYQ/qxLxb+m7gyOiGKo8OSwTJpFs5o5UItgxVKnYda23MByWzrqbJUZELgnrgDY3/kkAlKH1MMTN7wFteO1YnRoT1prBmCvAoAArMRsA0QjSF3zGRNAQLyJUcpMrH2znTJcgalhIMPFbJ9kDHYqkr1IybZr0UccvKYrS2UR31r67VniDVO/Io4ewdoFlMuF06mIHidumMjCx2pYCoUeG16GX9NKG11RO2APOcVdsor18bSYYt6quiRAM7ktzPBgZhNaU82pu/t1F5HrEB2S/L4aJROKWVV3WASjbbHwGRW51kiPeWyAahe+NSaNJDPikffBTOelhqI3lV3xffClhLNnVT1FfvNKiPV1UxZF1hPPQWcWvYIi5cH2CjtWjqa4mzdXAcYOFIUm/A0djvbsCLGr0k7gLPHaxMA4hj3hBhMUux+ljsF3DKXYILi/X/GnXadBhr9b9HR6K8ZF+tDb8cGGcwbvYxccadUdUgNx6wzw/VJwpXDlppoE5eDWZ9MkjVBzMKBn5tW8/McYkM7jc4iC7seKON4giTBpoQ2l2w9xxC+p0WVvt8In9IH1Uar4qOqW/LfKMh2OVOTSpnFQfgek+QZp5XwDQoAuOhvGeTKajFUy1VtsaMsxjMRbhh7/ijhP0LdGn5+/1wZVdLbGX+ENfopIPGe5aB/r3hcPRk8H2CyVm/H1mLIHGTN6HkJwkWjoMFMkUMKNnnanfSmMT1wVuaPcVQ7OFRkP7tTXV2FBNBLwW/93C5EH5gAUPisS75zXz77FDzdEuc2p1OLcU5y4qTLlOMYlVfUoUidERcbmjU7MNqzD9tAigi5Zcg9caTCaMwEBCqeb0dmjk9l7IeRKXcRGDUTp7FTE6eR1K3RiY4MSIiJmHHPU41Jx7w9ndWCPYNVeimNOG3XJnHuEF56YHzi9dcG2KjoPxKa5C9CrSV4 PcM4b1ex gdlSQfWAC3E84xExdN/HMGB9kEPJwkHrfmQOFuS/wnt3shks2GmE/zud0JC+U0vLLnTGteOUg19cXtcA4FT/Rk2goW2AptQj23kOblWBqsaUAQyCfDBj3oeNIbvmj6XDi70qSnsqwu2EnlNlDGB/PjqomTjzHtsuBFhB14zl/UnxGEcDBwbtZR6xKEUO7WS/6qlXG9xnfYIANG8vV2lrypVyXcRhISTpuGJeF/ZpRJMNHZgzkK4BFqCly1mx7vaPkEwgXJtjm7hdpvg/iFZ+JLN+5eEqRrObnAlRsnfEgaJ9/X8jX1m5Hx2AoluEF9KEoiBU9Qc2Z+o8sQx7+/R6ACXcDi7HJPkXP6QdCJdSJ1EOx0/oUkKlQicX1j1S30z0q9gzwuS9mo+nSTVU2PhQ6mBlPtkOuEnr2eR5691bClyDohBUPL4Jstr3VbJNLcJteX40X5IXsNdrjKIbzCJWs9aYWJOf9gKRO9Ile44rAQLqTfNhN32KMUxoxxXPKoQ3I1I1hUcIbTV4nHTmLTmM3V4NP+hcs46/srClX1jJmRBydnVHUaldWjrfbfIDMyD4S2Ue2ECrpxlZnHOLtGqwADw2aG592km/W0ViQEtWpVSaYdyaT9OAUI89UDMimRRe8bL8/fJ/+l07s+5B7lCE3QMAjWQ== 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 16, 2023, Yu Zhao wrote: > +static bool kvm_mmu_notifier_test_clear_young(struct mmu_notifier *mn, struct mm_struct *mm, > + unsigned long start, unsigned long end, > + unsigned long *bitmap) > +{ > + if (kvm_arch_has_test_clear_young()) > + return kvm_test_clear_young(mmu_notifier_to_kvm(mn), start, end, bitmap); > + > + return false; > +} > + > static int kvm_mmu_notifier_test_young(struct mmu_notifier *mn, > struct mm_struct *mm, > unsigned long address) > @@ -903,6 +960,7 @@ static const struct mmu_notifier_ops kvm_mmu_notifier_ops = { > .clear_flush_young = kvm_mmu_notifier_clear_flush_young, > .clear_young = kvm_mmu_notifier_clear_young, > .test_young = kvm_mmu_notifier_test_young, > + .test_clear_young = kvm_mmu_notifier_test_clear_young, I am strongly opposed to adding yet another "young" mmu_notifier hook for this. I would much rather we extend (and rename) mmu_notifier_clear_young() to take the bitmap as an optional parameter, and then have KVM hide the details of whether or not it supports lockless processing of the range/bitmap. I also think for KVM x86 in particular, this series should first convert to a lockless walk for aging ranges, and then add the batching. It might also make sense to land x86 first and then follow-up with ARM and PPC. I haven't looked at the ARM or PPC patches in too much depth, but on the x86 side of things KVM already has the pieces in place to support a fully lockless walk, i.e. the x86 specific changes aren't all that contentious, the only thing we need to figure out is what to do about nested VMs.