Received: by 2002:a05:6358:c692:b0:131:369:b2a3 with SMTP id fe18csp2269378rwb; Thu, 27 Jul 2023 05:01:33 -0700 (PDT) X-Google-Smtp-Source: APBJJlHxZ348deeCf62dAxQNkcDXYee8qTYmLN58lYsI8jmR/9Rx2LAHGeVgphsJeOE6qr5hCkJZ X-Received: by 2002:a05:6a20:7d89:b0:133:712e:f700 with SMTP id v9-20020a056a207d8900b00133712ef700mr5059706pzj.51.1690459293256; Thu, 27 Jul 2023 05:01:33 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1690459293; cv=none; d=google.com; s=arc-20160816; b=WJLzUa7QhFKNQHnPyj1eO8yL8b+CbMd93m63N3N5amwFOeB3qu6Br8FX5fp6bMs4rQ 9shYo2k3cEN4NBrgV04IyhTOzpeaSg8q43alws7zNC6ShLAd0ZCLMWCEQWuc/Sfi4poB i2bwv8jIxSQankujHaqw98CQwuO0uLIsMYkTyJ35OuXOA9eg5NdxW484Pv+5919G4ICF 45gwYSStR4f3T8kQG6uZDmCq0sIRYJwVWycrkPltaDFqCYiGXeW5JnXLDfg3nomKbUhm 1Gc45+Ax759MJiZofItV7JkFPq09t6bx1EayCkJmyiDDjBEKTUQAur1LNZHiZuOUCWy/ BmhQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:cc:to:subject :message-id:date:from:in-reply-to:references:mime-version :dkim-signature; bh=ciA0d0f17XmFG0XwIFCtvuCfkBXh3LlkTiYPN1dYe+Y=; fh=xJBPVEo8pKozIwNgX6RqAfq+LFi+65+8EY7Rz0aCm9o=; b=hnNHDn4lN532eEI50kr5YLk21dFbngeGNB4co/Ty2HNFDF5OWa15tKdty00m8cCqmo Ea6Fu/M6RZKZGkr69AASUB9URBFsttmIp3bNWBd4aADwrJXt+k8bidAEBx3jh3zq4AuA eJ2doX1Vhk5TNZB21RjhXwGCQjGM62mFgz7RJrm9vwB2a+XR1Xc6M2AxYo3Qb6aCEd7F Z2hjCdxH79nn0k5uTJm4FkYWj7ZUUaOlFVRkpULNIo7T9L/qq0qsIpSnmhUJXATiZZ+3 +CHvU6c+IpIc3zU29UFGL8U7weLwxAW+5qpQHr6EU9zPynKO5MLXUv839KP2Mft2P0i+ A/UQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20221208 header.b=tJlzpoXY; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id d8-20020a637348000000b0055bedcc9b47si1134188pgn.285.2023.07.27.05.01.20; Thu, 27 Jul 2023 05:01:33 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20221208 header.b=tJlzpoXY; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233189AbjG0L0j (ORCPT + 99 others); Thu, 27 Jul 2023 07:26:39 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53458 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232360AbjG0L0e (ORCPT ); Thu, 27 Jul 2023 07:26:34 -0400 Received: from mail-ed1-x533.google.com (mail-ed1-x533.google.com [IPv6:2a00:1450:4864:20::533]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id BA31F2D4B for ; Thu, 27 Jul 2023 04:26:23 -0700 (PDT) Received: by mail-ed1-x533.google.com with SMTP id 4fb4d7f45d1cf-516500163b2so8128a12.1 for ; Thu, 27 Jul 2023 04:26:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20221208; t=1690457182; x=1691061982; 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=ciA0d0f17XmFG0XwIFCtvuCfkBXh3LlkTiYPN1dYe+Y=; b=tJlzpoXYcQoY9q62eGnq5YPAAwvPwnh8kmDb+8GMOL71T2p30m+4EJ9WaU/qDbDF/5 sXI93AZ4Al84/MWSGv6HKfhQKshHJOIBukPUWYTTpjz3TjOI3TxvfWhW6JOmLIp0wro3 x86BFhwkDQmJP4X/gFd9VfuM3/J2u0xELsuzbtDo7FSTIas6gGEk6UKI0kxCdqomvzGJ aHoY4dr0LR1xJ8T5sQRRheWk6M4pmLkKmaHlZIgunfkL7kkIXY4MnwJ3pfzHma0zwrek udVIrB7yvGwKOB5oIYJLqM/jIfe5PQVFjYlXh3ZeQr2LXKzxlDL7o7TP+89IkfgRdSXH Xl0g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1690457182; x=1691061982; 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=ciA0d0f17XmFG0XwIFCtvuCfkBXh3LlkTiYPN1dYe+Y=; b=Ho/6hdCz+T4GVm0bHZWa+mquMCfUwoW4CnZrzfSTK4xeyjJT03LBvQKpuGO3QfgzEj zVDdv3uDfGF83hNNkemE98cuk6wBEkhPZqzu6jKdNXzUgt9inViFpqbVtf+GiSSq/QIc 6wNH14f44NgQ/iyY6ikkBbAqhK+Uy1J+26xPyzm+SyG32eR/VvqSRlb2VRIvCBRCfWIc +DhTAmd84b5PjchvTKAKI5hU1YX1PHO/ptD600O5V3kiFknQD1Qk4ZdNw6O34cMM0uwh R2aJqsyU/cpncXc044pvo0cyhHXIL/UPKEpW4sXG0c4KDyYoISLuYYsGmhfW47VFZ9N8 Xn3Q== X-Gm-Message-State: ABy/qLa7GDmgYNoJvP8dDor5ELWL4RI0XDDX9dqb3pwvYL0xxhAIfH9Q uRlRkeaM19Md+G9DZ6BQ+VLwX2OGtiIwAzWXXxF2Jw== X-Received: by 2002:a50:d0cc:0:b0:521:f642:7183 with SMTP id g12-20020a50d0cc000000b00521f6427183mr78381edf.1.1690457182010; Thu, 27 Jul 2023 04:26:22 -0700 (PDT) MIME-Version: 1.0 References: <20230713101415.108875-6-usama.anjum@collabora.com> <7eedf953-7cf6-c342-8fa8-b7626d69ab63@collabora.com> <382f4435-2088-08ce-20e9-bc1a15050861@collabora.com> <44eddc7d-fd68-1595-7e4f-e196abe37311@collabora.com> <1afedab8-5929-61e5-b0da-9c70dc01c254@collabora.com> <89c09085-19ab-462b-e3be-b4e492a85899@collabora.com> In-Reply-To: <89c09085-19ab-462b-e3be-b4e492a85899@collabora.com> From: =?UTF-8?B?TWljaGHFgiBNaXJvc8WCYXc=?= Date: Thu, 27 Jul 2023 13:26:10 +0200 Message-ID: Subject: Re: [v3] fs/proc/task_mmu: Implement IOCTL for efficient page table scanning To: Muhammad Usama Anjum Cc: "Kirill A. Shutemov" , =?UTF-8?B?TWljaGHFgiBNaXJvc8WCYXc=?= , Andrei Vagin , Danylo Mocherniuk , Alex Sierra , Alexander Viro , Andrew Morton , Axel Rasmussen , Christian Brauner , Cyrill Gorcunov , Dan Williams , David Hildenbrand , Greg KH , "Gustavo A . R . Silva" , "Liam R . Howlett" , Matthew Wilcox , Mike Rapoport , Nadav Amit , Pasha Tatashin , Paul Gofman , Peter Xu , Shuah Khan , Suren Baghdasaryan , Vlastimil Babka , Yang Shi , Yun Zhou , linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, linux-kselftest@vger.kernel.org, kernel@collabora.com Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Status: No, score=-17.6 required=5.0 tests=BAYES_00,DKIMWL_WL_MED, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF, ENV_AND_HDR_SPF_MATCH,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE,USER_IN_DEF_DKIM_WL,USER_IN_DEF_SPF_WL autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, 27 Jul 2023 at 10:03, Muhammad Usama Anjum wrote: > On 7/27/23 2:10=E2=80=AFAM, Micha=C5=82 Miros=C5=82aw wrote: > > On Wed, 26 Jul 2023 at 10:34, Muhammad Usama Anjum > > wrote: > >> On 7/25/23 11:05=E2=80=AFPM, Micha=C5=82 Miros=C5=82aw wrote: > >>> On Tue, 25 Jul 2023 at 11:11, Muhammad Usama Anjum > >>> wrote: [...] > >>> 2. For the address tagging part I'd prefer someone who knows how this > >>> is used take a look. We're ignoring the tag (but clear it on return i= n > >>> ->start) - so it doesn't matter for the ioctl() itself. > >> I've added Kirill if he can give his thoughts about tagged memory. > >> > >> Right now we are removing the tags from all 3 pointers (start, end, ve= c) > >> before using the pointers on kernel side. But we are overwriting and > >> writing the walk ending address in start which user can read/use. > >> > >> I think we shouldn't over-write the start (and its tag) and instead re= turn > >> the ending walk address in new variable, walk_end. > > > > The overwrite of `start` is making the ioctl restart (continuation) > > easier to handle. I prefer the current way, but it's not a strong > > opinion. > We shouldn't overwrite the start if we aren't gonna put the correct tag. = So > I've resorted to adding another variable `walk_end` to return the walk > ending address. Yes. We have two options: 1. add new field and have the userspace check it and update start itself to continue the scan, or: 2. reconstruct the tag from either orignal `start` or `end` and have the userspace re-set `start` if it wants to restart the scan instead of continuing. (the second one, using `end`'s tag, might be the easiest for userspace, as it can check `start` =3D=3D `end` when deciding to continue or restart). Best Regards Micha=C5=82 Miros=C5=82aw