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 A0152CD11C2 for ; Thu, 11 Apr 2024 00:35:52 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id DF9306B007B; Wed, 10 Apr 2024 20:35:51 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id D82506B0085; Wed, 10 Apr 2024 20:35:51 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C22956B0087; Wed, 10 Apr 2024 20:35:51 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id A1E7E6B007B for ; Wed, 10 Apr 2024 20:35:51 -0400 (EDT) Received: from smtpin30.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 57EDEA1454 for ; Thu, 11 Apr 2024 00:35:51 +0000 (UTC) X-FDA: 81995383302.30.105E980 Received: from mail-qt1-f181.google.com (mail-qt1-f181.google.com [209.85.160.181]) by imf13.hostedemail.com (Postfix) with ESMTP id 90F0F2000C for ; Thu, 11 Apr 2024 00:35:49 +0000 (UTC) Authentication-Results: imf13.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=ERyL2Iot; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf13.hostedemail.com: domain of jthoughton@google.com designates 209.85.160.181 as permitted sender) smtp.mailfrom=jthoughton@google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1712795749; 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=Hll648Cvihh5+gbtq6L/4af+GOyNrj81dtl5gh6CLtU=; b=XyemZUQmKINzIy1vNbt8doBPPrddq9Y2QEzWXZXuoG/QwAcdIKAUmtT/FbXleZkFlT4qR/ qQ8YkEfxzFocgKUYne8IHlvfxbJpagIyOwi4m4FmNtxCu7lmvBDmBtGQLFNyBv2giW7ki2 odiUmKOS8/mah5CxzQKV4n6wBzyNpXE= ARC-Authentication-Results: i=1; imf13.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=ERyL2Iot; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf13.hostedemail.com: domain of jthoughton@google.com designates 209.85.160.181 as permitted sender) smtp.mailfrom=jthoughton@google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1712795749; a=rsa-sha256; cv=none; b=BpiC7HNKLVd2NmDN+alovzgZQNIXQxtv7MTeBAOq3vWvzOGuXPlB6oDFrXL/1it0NcqtT8 QMJmXgbg+NQhVUIBLHyOD/nRSDev0XwmkkyUju6c1oVHAFS6Wq8V4VDkAD8HU7UJNRYzGb TrvF+qXM/3v/Xr0vYbMMMmAruRh8vok= Received: by mail-qt1-f181.google.com with SMTP id d75a77b69052e-4348110e888so93451cf.1 for ; Wed, 10 Apr 2024 17:35:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1712795749; x=1713400549; 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=Hll648Cvihh5+gbtq6L/4af+GOyNrj81dtl5gh6CLtU=; b=ERyL2Iotofm4j5OyUyX9Q44HdkUkMoBWIMIBfkmrzJcp5Q17hRlIoeMS4YrPycezAr aBud1vlTvozPDOCGnHWU5Su0ctBY3K01JoEzB4boxKpMxTo5uFJc+6Ije0RaELXzgOMi 0Ne/fOSjgYsAZlRV451/B6XwiBgiDeEh3nFEMOdt18S8oqhyokeLBCfFGRD/pbWwmSEZ xU3DbsEKkfi5g4yQ5rgx1rqMPw6dWZ3ugelyzTkYvVIGzb1XAcwGT2+nA4oa8jVCz0UD sogkLOYHHjRRVJkp1sr6IO21tALq1+8Clk6wr0XVnakfmJJGsKKpUfyFrhtlurpntKND u6pw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712795749; x=1713400549; 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=Hll648Cvihh5+gbtq6L/4af+GOyNrj81dtl5gh6CLtU=; b=Wz810SAp91TEZiEvraN3kt9CsOoXFbwWd++46LyvnUE3Z4pzR3AmEVQ5UROfpx6m6Z aNk5NiunvhtheqSxvxyZX1DdGMeu09NlrqPNuFLAAVEDho7gcrwf184wUj8sgV60yBKS YyVhcut+80A3Xnv7pTBzjFLBFQMLP2MUyME5Ch6oZME/ownnEFcJnYHBrrQRmcXH/I+U TqR0eR7MqOGL2YVGcsRvRAm77W/57ihLkmk9CkxHcDVPjd1aYL7bpZzAtEKV1jHS4SvY 8ordCDdT7CkpcAXn4v7Xht0eInNuCRzGu86MUj+PogUbk3Bna4eDXMxsGGIyVdr59eys g9ow== X-Forwarded-Encrypted: i=1; AJvYcCWH0mTUzV8oI/s+WLY0XZKMtMSxsd+aIkjUOLNgmQ60B58Gc4euIzbZAUviazxkruTaIi+xqoCtpegLCJQ2HFnXtk0= X-Gm-Message-State: AOJu0YwoU9/LFv5bYEalJvjjTn/LFpWfnEkQYYHmyj11buZ3VZpjGReU ePKWKEPHMCGuNRSGbDAvOycipMb4sd7PyKPETG4hBh2wUlmDc/voTn5H0Xm1Gn/g7SFw05f6rbE GXhQPKNi9DNTjoFrTB+hA3MWnQEWhgZGDuNdO X-Google-Smtp-Source: AGHT+IFGLj1tAhjk5RpppfKTaL73oV3xSrwK17M0Lat/eXuLIVwkuvO1YH97f0uDQLYoqbM8Or5GftZ8IdKEWzGYOsE= X-Received: by 2002:a05:622a:4d4a:b0:434:dcc1:cddb with SMTP id fe10-20020a05622a4d4a00b00434dcc1cddbmr88725qtb.26.1712795748610; Wed, 10 Apr 2024 17:35:48 -0700 (PDT) MIME-Version: 1.0 References: <20240401232946.1837665-1-jthoughton@google.com> <20240401232946.1837665-2-jthoughton@google.com> <226a222d-4273-4304-ab73-39b2f8f060b5@redhat.com> In-Reply-To: <226a222d-4273-4304-ab73-39b2f8f060b5@redhat.com> From: James Houghton Date: Wed, 10 Apr 2024 17:35:11 -0700 Message-ID: Subject: Re: [PATCH v3 1/7] mm: Add a bitmap into mmu_notifier_{clear,test}_young To: David Hildenbrand Cc: Andrew Morton , Paolo Bonzini , Yu Zhao , David Matlack , Marc Zyngier , Oliver Upton , Sean Christopherson , Jonathan Corbet , James Morse , Suzuki K Poulose , Zenghui Yu , Catalin Marinas , Will Deacon , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , "H. Peter Anvin" , Steven Rostedt , Masami Hiramatsu , Mathieu Desnoyers , Shaoqin Huang , Gavin Shan , Ricardo Koller , Raghavendra Rao Ananta , Ryan Roberts , David Rientjes , Axel Rasmussen , linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, kvmarm@lists.linux.dev, kvm@vger.kernel.org, linux-mm@kvack.org, linux-trace-kernel@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspam-User: X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: 90F0F2000C X-Stat-Signature: qzkfm6dppg6akdtyg7pyd45x999ibhyy X-HE-Tag: 1712795749-214824 X-HE-Meta: U2FsdGVkX19sfIVfJHo46Toynh6I7Ff/HwZAGeEGUcySEOK4VwOMKE/gbUtjtKNC2ldVLscewJJUfBT/eBVJyDr58JmeSxfIz9nXGiZ9rPK4T3bA4dpSUsj6Vxr5KiT6WljSNbLkDDSruKOf/F7EHKccduLxVrQtAqzzQ+Gl1BH9liYA48pU3k4DEZfuNj5UN4IreqJFcaNn4lfXncxDhqikzPYdo1rGpZlmq3Lp4AAj+IoqzAYrWvIkEewJr7F0z7CethNkJOTqJDtsPG+2ZaQLO8GP12GAmpZHdzGw4/7GpHGQYifCgTbmwiFheRqPxMHBQfOBpGgZssiEuJiiJ5W4gGs13n9IDsMWnQjZGDZs2Sal+idwGFrznd5/y2sBDUmFtTIAP+HU+upm0qGbWOfMXt//ybrBvoqndwFJ5azp4AcwgPtSe6wccHZN48Yo2hPEv1u08/a5ZM1aSslGHP1ObKi0G6tKUNEjhWMAmj4nj8Qhf2Qex1I7iWZEBrYHqTM+pj8FyyPQ6VMTCc0Upz7ENvrvKmDF7/fSGXmVbnxG6j7cKFb971U9G9YeLDp+p+Tz3swynsROHw2Q/R5pJ67xuusU/AsNK6ZAAwoNWr7biEjEu6YeansvpwwDAaV294fKRt2OgQXfdBwQG7giDaJAV3Aofl+9tVxtaYlpXz0QrFCoVnj7aJPqWTKZoYIq7uNUZXrlkrtj+sdnznrxabxbTS3+ScEyrDhjCDcPDY43MjOCRiOttdWnnZ54TSKpNSDeJ9o01IiaYU5mD6lPoMFpcrSzVVX/kpVjWV8hiSk3haTBNqNvrK30/eQ5RpVWzkxT1eFRMu3Umy1B4KyjlQbpf5wGpMZt2rYFOI7IEEgtET8eS0kil70KyuHcJK1h7uqlfHxq6DEiqKpdurzDrHYnVioX497KODp24HBD/1e7zUMZeHLN8P36eR/1akpIz1vFuvIQzfPiDohRKki e0paPG2C mBWeZxHZJAShsBxK9x0r6aO3kmj2dkGOmLu1CeWHdIzwCnazAzz7sknMtuwJu3L+HSxfZeRAgBeklNI6DQEFQ1ulMc0ZKYQ3dGw/61TeEbQXc9qlnALjEDhGb2eRbTJjdJabz/NJvN2EYtLKhdg436q+MQdfON/CsqFUOwVSCJNZTpngWXglbAtS3vejgduTNkELpKQuD6klTCM64QUJkFTId4b9Rsrw+X3sw7Y3krJKbDgVFblhg2/+/YzW+0mw/X9KDuUW/iLwRtG7GpECSPc/Pe8UMaUeAnSb5ajsIqHaiyMCttWryc05YZwd6/eIZ7x2UURt3Ghcro05eQ01jQirCaLXNPN96Dq18tzS2lMp7OvcQgsahAjq6XCilGZeAEMQR 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 Tue, Apr 9, 2024 at 12:35=E2=80=AFPM David Hildenbrand wrote: > > On 09.04.24 20:31, James Houghton wrote: > > Ah, I didn't see this in my inbox, sorry David! > > No worries :) > > > > > On Thu, Apr 4, 2024 at 11:52=E2=80=AFAM David Hildenbrand wrote: > >> > >> On 02.04.24 01:29, James Houghton wrote: > >>> diff --git a/include/linux/mmu_notifier.h b/include/linux/mmu_notifie= r.h > >>> index f349e08a9dfe..daaa9db625d3 100644 > >>> --- a/include/linux/mmu_notifier.h > >>> +++ b/include/linux/mmu_notifier.h > >>> @@ -61,6 +61,10 @@ enum mmu_notifier_event { > >>> > >>> #define MMU_NOTIFIER_RANGE_BLOCKABLE (1 << 0) > >>> > >>> +#define MMU_NOTIFIER_YOUNG (1 << 0) > >>> +#define MMU_NOTIFIER_YOUNG_BITMAP_UNRELIABLE (1 << 1) > >> > >> Especially this one really deserves some documentation :) > > > > Yes, will do. Something like > > > > MMU_NOTIFIER_YOUNG_BITMAP_UNRELIABLE indicates that the passed-in > > bitmap either (1) does not accurately represent the age of the pages > > (in the case of test_young), or (2) was not able to be used to > > completely clear the age/access bit (in the case of clear_young). > > Make sense. I do wonder what the expected reaction from the caller is :) In this series the caller doesn't actually care (matching what Yu had in his v2[1]). test_spte_young() probably ought to return false if it finds MMU_NOTIFIER_YOUNG_BITMAP_UNRELIABLE (and I'll do this in v4 if no one objects), but it doesn't have to. The bitmap will never say that a page is young when it was actually not, only the other way around. > > > > >> > >>> +#define MMU_NOTIFIER_YOUNG_FAST (1 << 2) > >> > >> And that one as well. > > > > Something like > > > > Indicates that (1) passing a bitmap ({test,clear}_young_bitmap) > > would have been supported for this address range. > > > > The name MMU_NOTIFIER_YOUNG_FAST really comes from the fact that KVM > > is able to harvest the access bit "fast" (so for x86, locklessly, and > > for arm64, with the KVM MMU read lock), "fast" enough that using a > > bitmap to do look-around is probably a good idea. > > Is that really the right way to communicate that ("would have been > supported") -- wouldn't we want to sense support differently? What I have now seems fine to me. It would be a little nicer to have a way to query for bitmap support and make sure that the answer will not be stale by the time we call the bitmap notifiers, but the complexity to make that work seems unnecessary for dealing with such an uncommon scenario. Maybe the right thing to do is just to have KVM always return the same answer. So instead of checking if the shadow root is allocated, we could check something else (I'm not sure what exactly yet though...). [1]: https://lore.kernel.org/kvmarm/20230526234435.662652-11-yuzhao@google.= com/