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 BE930EB64D9 for ; Thu, 15 Jun 2023 14:58:18 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 2C0498E0002; Thu, 15 Jun 2023 10:58:18 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 2700D6B0078; Thu, 15 Jun 2023 10:58:18 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 1122A8E0002; Thu, 15 Jun 2023 10:58:18 -0400 (EDT) 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 F1F026B0074 for ; Thu, 15 Jun 2023 10:58:17 -0400 (EDT) Received: from smtpin05.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id C36C3120965 for ; Thu, 15 Jun 2023 14:58:17 +0000 (UTC) X-FDA: 80905287834.05.E05E659 Received: from mail-ed1-f49.google.com (mail-ed1-f49.google.com [209.85.208.49]) by imf09.hostedemail.com (Postfix) with ESMTP id A523B14001E for ; Thu, 15 Jun 2023 14:58:15 +0000 (UTC) Authentication-Results: imf09.hostedemail.com; dkim=pass header.d=google.com header.s=20221208 header.b="q94/N+S0"; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf09.hostedemail.com: domain of emmir@google.com designates 209.85.208.49 as permitted sender) smtp.mailfrom=emmir@google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1686841095; 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=fFEMMsnaVMMTN+MNrLJhPSERf9Iz01XRTKYXqWbDbKw=; b=XHK9VJZnsLWQBLQp50YAog71Cvc/+5W+LmCyAZzNfFZnUIhcunYzruVkV8wlRSEcmh3y5U HjiQh5Uxq4dnUDHYJ4f5K2v0wM3Kl47gDgLEpwHCB164X27zVUcKIBcURlqB5YV6SeU0MX CE0j0RfMMHX2rrP/F4jQ7mQ9ct2nhCE= ARC-Authentication-Results: i=1; imf09.hostedemail.com; dkim=pass header.d=google.com header.s=20221208 header.b="q94/N+S0"; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf09.hostedemail.com: domain of emmir@google.com designates 209.85.208.49 as permitted sender) smtp.mailfrom=emmir@google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1686841095; a=rsa-sha256; cv=none; b=CcnXnALhXiYop+7pZ7dlitBCOVpLnrTJo4GLvMPooa+Je5O7QVDdkhETdQYbRaEc0HaE3c ds0Umw19gRYKUZGtL67EzcQIPzD+LkSWQ6hLSU9hFae1bzghCujTLe08BmES62KADRUJLR z3+oslQA5MzYFUpH66fZwxsJFT97ktc= Received: by mail-ed1-f49.google.com with SMTP id 4fb4d7f45d1cf-51400fa347dso10691a12.0 for ; Thu, 15 Jun 2023 07:58:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20221208; t=1686841094; x=1689433094; 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=fFEMMsnaVMMTN+MNrLJhPSERf9Iz01XRTKYXqWbDbKw=; b=q94/N+S0ANP0qfo3iED0X3GUvb12lTH4j3QOzDNGtZE/B+3GOiOiLpIeZ54MPTMd4f lwLiM6RyD3FqWgDXOqXvCeLoOQaVfjgXUPDwGWebKkwKb+YuJPikfarnPzMI4LtrmcBp y847xtkBebIRxzn8FikqQYnBHrlWutgujnpGaE4VZgsOJWgOTV689TI6qVQ1qvBNqLgG 4jfDLEuUCHIPmbOpUc2Dhetj7azg6cB+6vZsd/ovfnkOyGmWoR6xsqduCMHyySUhvtDp zjwhO1KKBFysS18i7RB4CCsDxAjV2kRP6wynwyVEZExck+itLa+oePesLzVuvAxDNsOi g2Pw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1686841094; x=1689433094; 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=fFEMMsnaVMMTN+MNrLJhPSERf9Iz01XRTKYXqWbDbKw=; b=RYIDtluDunbLsJEhVgtQv2+FnOKRfoBzmlrBGxCaXJwO9FB3FlW7/xjlDHEFORzPUK JST6MhcUO7+P6LuNpk8QIgaIXvECZKwVFM3zP03QDHyqhsuY5S7P2WsSXVutaEDZ6ZGe CiHFQp1VhFUO6yq/zgvT/MKOJMTWH8brZ4IED8sLAhDuJtqehMmCh6/rhT1WFjqG7Vrx eDRl87ZrVkUEW4hfw12yQufXcLLg5NvWhsqrqm2glXIpvu7+E6hmmjKukUWc8pin8LFG Qe2XpY7gR4Kb5n/FQ37kAKHmBobCJ/FURfqPWueG0t+rkzdLGGpEtOLVa4EJACeKFUZy DKDA== X-Gm-Message-State: AC+VfDzemNh2VR+90o+Ncj1wj2nZ/HF0LEk0n3antE2pHG52d8icQV6I Wz6Qq0GLv+TQErINSGr5AT918m8XeoshBRsUJTsUSw== X-Google-Smtp-Source: ACHHUZ4WXsDVRmMbD5nLQbERxBnWATUeJeVD98IO3VjjPOWmZCV24bKxbxwmLV9CtMkgeyPYIeCORQhTu7shXQ2gF+w= X-Received: by 2002:a50:9faf:0:b0:514:92e4:ab9f with SMTP id c44-20020a509faf000000b0051492e4ab9fmr69956edf.7.1686841093992; Thu, 15 Jun 2023 07:58:13 -0700 (PDT) MIME-Version: 1.0 References: <20230613102905.2808371-1-usama.anjum@collabora.com> <20230613102905.2808371-3-usama.anjum@collabora.com> <0db01d90-09d6-08a4-bbb8-70670d3baa94@collabora.com> <34203acf-7270-7ade-a60e-ae0f729dcf70@collabora.com> <96b7cc00-d213-ad7d-1b48-b27f75b04d22@collabora.com> In-Reply-To: From: =?UTF-8?B?TWljaGHFgiBNaXJvc8WCYXc=?= Date: Thu, 15 Jun 2023 16:58:02 +0200 Message-ID: Subject: Re: [PATCH v18 2/5] fs/proc/task_mmu: Implement IOCTL to get and optionally clear info about PTEs To: Muhammad Usama Anjum Cc: Peter Xu , David Hildenbrand , Andrew Morton , Andrei Vagin , Danylo Mocherniuk , Paul Gofman , Cyrill Gorcunov , Mike Rapoport , Nadav Amit , Alexander Viro , Shuah Khan , Christian Brauner , Yang Shi , Vlastimil Babka , "Liam R . Howlett" , Yun Zhou , Suren Baghdasaryan , Alex Sierra , Matthew Wilcox , Pasha Tatashin , Axel Rasmussen , "Gustavo A . R . Silva" , Dan Williams , linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, linux-kselftest@vger.kernel.org, Greg KH , kernel@collabora.com Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspam-User: X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: A523B14001E X-Stat-Signature: o5jf6nuqxm6strzurugnwjss4j4x6r61 X-HE-Tag: 1686841095-80717 X-HE-Meta: U2FsdGVkX1/PxBc+C74V1WTQqNkV4arjSCUHf7jHg2dS/mmL84OHYEIdVjBeCJb7EQxiXYkJT3m5iLvV7ZyJokQVBdzSv7xbpd/70lgNdlZTyxh1c/pPN6t5SROexLjOF47WASzowUIlwfDMjMvLiELyK3Kq1p0QWXKpR3q0IFhpQVU9H4fHyonuI0KRh62thxsaXPMFIA988Ohm6nkiNCTrwZtRU/MQ6VAKXl4ZvhjwtUqViwzSCnNIkO5FTHL29cIJsulVomAxU+nmvZvqm5x8B5UR6EMFhtjmtzlqDRssKz56P2/T3PpTz7hxqJsiU+p/bHi/ok9lmcEyKRgGFhAY53KafzXHUddXf2pe1tedFEUfkbpePZ241mZZ4aGeja62UVwmkD3OD6RK3ykV0XqzOdRTC4aEYddCXbNg3ke7J4KUphTfkTtuyb0c5nDR3dSqRnfyk/ozw9JVq4V18nJAPtrZxBPSy5alHOEKQKRhyisarBueCD90IcrXsb+WATj+V/LfgD/Pbkg3KdllWvfhVm3VhctnqdbrNWA6JFmbUvG8hdyF1YRCHu0jiJPiMuY6zodR68v93ANy2UC3EvLU00uwIRCecT26MgngCrjw2IYlzCRsZ0XQRP0MJi/4Hw5m/blIw3sOYqssxH3C7ppi8GnjX6ZPyuBv/6/wQ7jC8be6s3y/DiizaAykkdRxxf3FPe3nDYisQzziIVm2q4zC1O87lrKZFMk0oVrVoW3lxlvkTAeSh0opXihOaz3igRjKv1hmlmHkm3mN0oFFqAQrni1Kds/6kud2XeuJM4cG/yNjFp1C3gc+blLXwdi5vmPNYkWk5gX2dB94DmP8/mYnb4FUF09awBHYv1+UzJJSGf0Ev6ypkXr7rtq63hnpW1Ccza/J/CFm4kRtAssOcz6rqVQdgQf58biDKKaGnjZjoX6rrFALJlBFPqzE+nEjpfuMoVe3vy62oD8d+tr CrVP+EOc V5N/q/5LFIpena7ThAOWr4YzAoZI6MZbi1OTxnV29gbn1vFVRTo0DVLJuPXtZMR/57FZ/7lHlFRp/nnFCQXVur2RBV96Nu77rUwxEsellchCdAJoVN97L20wOwyKmuttW43om4ndvh6TwMSlmI8a83JqikAqJxfrTeGpSKlTiAo6PqqMUsxEG7TXcCtNJ8y1H4KDoEPuyCAYcdGWZ05cCrzDwxH4326i+oEX3n3EtJmdGJPtlMLvEKLSr6i2wsY8D09lvWH+NDSzZJhCQVQlj9BJzA4CvkKy1RGyZg6uH6aUiU1pG9ydgtd3o+KcjPg/Ski/n2algt2BHMOKGIqlQdKWKqR7we+t2wBjs/SsVid1aZMGBCqsYGdqiCAKB7viPGhJr 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, 15 Jun 2023 at 16:52, Micha=C5=82 Miros=C5=82aw = wrote: > On Thu, 15 Jun 2023 at 15:58, Muhammad Usama Anjum > wrote: > > I'll send next revision now. > > On 6/14/23 11:00=E2=80=AFPM, Micha=C5=82 Miros=C5=82aw wrote: > > > (A quick reply to answer open questions in case they help the next ve= rsion.) > > > > > > On Wed, 14 Jun 2023 at 19:10, Muhammad Usama Anjum > > > wrote: > > >> On 6/14/23 8:14=E2=80=AFPM, Micha=C5=82 Miros=C5=82aw wrote: > > >>> On Wed, 14 Jun 2023 at 15:46, Muhammad Usama Anjum > > >>> wrote: > > >>>> > > >>>> On 6/14/23 3:36=E2=80=AFAM, Micha=C5=82 Miros=C5=82aw wrote: > > >>>>> On Tue, 13 Jun 2023 at 12:29, Muhammad Usama Anjum > > >>>>> wrote: > > >>>>> For flags name: PM_REQUIRE_WRITE_ACCESS? > > >>>>> Or Is it intended to be checked only if doing WP (as the current = name > > >>>>> suggests) and so it would be redundant as WP currently requires > > >>>>> `p->required_mask =3D PAGE_IS_WRITTEN`? > > >>>> This is intended to indicate that if userfaultfd is needed. If > > >>>> PAGE_IS_WRITTEN is mentioned in any of mask, we need to check if > > >>>> userfaultfd has been initialized for this memory. I'll rename to > > >>>> PM_SCAN_REQUIRE_UFFD. > > >>> > > >>> Why do we need that check? Wouldn't `is_written =3D false` work for= vmas > > >>> not registered via uffd? > > >> UFFD_FEATURE_WP_ASYNC and UNPOPULATED needs to be set on the memory = region > > >> for it to report correct written values on the memory region. Withou= t UFFD > > >> WP ASYNC and UNPOUPULATED defined on the memory, we consider UFFD_WP= state > > >> undefined. If user hasn't initialized memory with UFFD, he has no ri= ght to > > >> set is_written =3D false. > > > > > > How about calculating `is_written =3D is_uffd_registered() && > > > is_uffd_wp()`? This would enable a user to apply GET+WP for the whole > > > address space of a process regardless of whether all of it is > > > registered. > > I wouldn't want to check if uffd is registered again and again. This is= why > > we are doing it only once every walk in pagemap_scan_test_walk(). > > There is no need to do the checks repeatedly. If I understand the code > correctly, uffd registration is per-vma, so it can be communicated > from test_walk to entry/hole callbacks via a field in > pagemap_scan_private. Actually... this could be exposed as a page category for the filter (e.g. PAGE_USES_UFFD_WP) and then you could just make the ioctl() to work for your usecase without tracking the ranges at the userspace side. Best Regards Micha=C5=82 Miros=C5=82aw