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 BC7AFC5AE59 for ; Thu, 5 Jun 2025 19:19:43 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 5198E6B00A5; Thu, 5 Jun 2025 15:19:43 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 4CA506B00C2; Thu, 5 Jun 2025 15:19:43 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 3B9596B00C3; Thu, 5 Jun 2025 15:19:43 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 189F76B00A5 for ; Thu, 5 Jun 2025 15:19:43 -0400 (EDT) Received: from smtpin07.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id BF01814148C for ; Thu, 5 Jun 2025 19:19:42 +0000 (UTC) X-FDA: 83522311404.07.3AA38D3 Received: from mail-ed1-f54.google.com (mail-ed1-f54.google.com [209.85.208.54]) by imf14.hostedemail.com (Postfix) with ESMTP id D31CA100005 for ; Thu, 5 Jun 2025 19:19:40 +0000 (UTC) Authentication-Results: imf14.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=lIO8VZ+a; spf=pass (imf14.hostedemail.com: domain of jannh@google.com designates 209.85.208.54 as permitted sender) smtp.mailfrom=jannh@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=1749151180; 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=RbgPHeMZvQzL3m80JGIpPWf4bxoO1tcc6Q2HUvzFDuI=; b=ANobfU4Xyg9ZX/DjuCIJTbPKxGzALH6TUzK9Rb6e6GbV31hZz/mCvlYXF5uBVL7pmiPwlp xe6B5xhNVw4QHOVLvnL2DL+Sr1H22xgJ3Or+Bjbyh53B6M0w3zUU1SINoIr/hjH0pQFSUj Zq59RkE4MrXFjh0eurXDoKomfTyvyXc= ARC-Authentication-Results: i=1; imf14.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=lIO8VZ+a; spf=pass (imf14.hostedemail.com: domain of jannh@google.com designates 209.85.208.54 as permitted sender) smtp.mailfrom=jannh@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1749151180; a=rsa-sha256; cv=none; b=um6DejXqcF0MeXvhRLb7prvIWbG8gNYOPiO9Fa76WZXdL+v/5iCzGZkYqqfJ9UMI03lixL WKxlasSE/othPfl/mmFY8EuBSlB77p+pJtpNOouPbl7Gugm3qxt3EZjZnmeyQEFCsJRn/c cAzjAO2b+EtA9WwulNEFCgiZLVHV6t8= Received: by mail-ed1-f54.google.com with SMTP id 4fb4d7f45d1cf-6024087086dso2665a12.0 for ; Thu, 05 Jun 2025 12:19:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1749151179; x=1749755979; 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=RbgPHeMZvQzL3m80JGIpPWf4bxoO1tcc6Q2HUvzFDuI=; b=lIO8VZ+a2iIbD35EJ9+HUxGCr9I/s/Z8NtObJx6eglX9rBYD8Mj27U0F4ICOGhILnG su4S500f7t/EO8IXv96n+ei2YG88+/JJY8Fbh9yjAwXu2Qmg5DvqxSHFb51jWjQYdaBY NVg2FnQhKddR8hkp+zMOfVx4K+5SPkLihzT3qx40Dl5BV2WIdScXQkr4iwzcacAruuFt kbv0SKXlcnFLZVsi3P6MXLF71cQ5FS7BrS3OZtURUtj3KBUY9uq6RqrvBfodI0Ty/DuC UG2v8pWscekYfb9A8OS2sOZZnkHaLEZ76aA2vZLRupnsEWNvdKXallhBiHPlzXGgHzPq rYIQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1749151179; x=1749755979; 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=RbgPHeMZvQzL3m80JGIpPWf4bxoO1tcc6Q2HUvzFDuI=; b=orBsfgS3m5Qrm+A7UkloSWH90y87QB+gXelaTvC84Q/Qb7sDNPtt+YFuLEnwMhrMZa hT21/c+a78jCAikVDHKVPE+1pcohLeoOwLlBhMqV5cpOsH5LLJPorwBh+/vFTBnqn7jR fWvptPuDrG4rYjHWZTyIiIV0JbLD4hso81Kes7en9XTI38/tSJRQrfNkJhzqzD7hhgE7 SSx4/Br3qk6BmpBXWN9RbosxrgNtV4QaWgLPAvF1jEQdUAFzbK+3OnPLfC9VdeA2VBLD iSe6m65oMvGDyMEMRx6YSduMOehhOHdF9to0mk7Lejz3oryDGfDCtBRr9IPeuxvLKPBh hLgA== X-Forwarded-Encrypted: i=1; AJvYcCXgnR5L4pktFxEE0k/O15qnw41JFm2H/+d62LhQIYZHC8vM9T1K/gt6cM+iclDwYglwE5bRrKaTzQ==@kvack.org X-Gm-Message-State: AOJu0YwA1CenSuzmRnw6E51+FYJR1ij781DZbWRDy3JEfhCxIGNh4gqG vv8E4wCXbGkVEm646ZiWo+Ofc7w/rKt4kKq0KdT+WosYZwH1JrlaZD1gxuUajUBuMXpk00xk0kP KwsOVALWR1MbomTI0/TSCHNjIzwKjrvS0STRRMewN X-Gm-Gg: ASbGncushUBvpdLpJr8wpFtcsbKiZtiG7ZUbIWTIUB8+HT0pUyDxqu3VPrWZxWtcx0z 3Z/G4RqirJthzGAgBVg6ex2fH+0qtHNAMP2G0thysbpm1aUo77IVahjDJ95EZllle3bxTVwSR66 /BozxrRYDe0T3IxSz0q7aqs3UEUC3bN7bE7klUoElaumHQ92lXUedho51qwB0Jype46YDlGWk= X-Google-Smtp-Source: AGHT+IE6xDvvoQteJJ/eDt9iDCFywxEWUs1nTALJvRPrcfNFm/URqn6kru8JdI2hpKXp5O/+usizGPrxFzABOYx39mY= X-Received: by 2002:a50:aa88:0:b0:607:bd2:4757 with SMTP id 4fb4d7f45d1cf-60774f7ea9dmr10567a12.1.1749151178729; Thu, 05 Jun 2025 12:19:38 -0700 (PDT) MIME-Version: 1.0 References: <20250604141958.111300-1-lorenzo.stoakes@oracle.com> In-Reply-To: <20250604141958.111300-1-lorenzo.stoakes@oracle.com> From: Jann Horn Date: Thu, 5 Jun 2025 21:19:02 +0200 X-Gm-Features: AX0GCFsuwLolzPDsrZ1E3v9TrRqv1LcU4kqKEWMPeICbN8OYkLkFBNdY22dpC_A Message-ID: Subject: Re: [PATCH v2] mm/pagewalk: split walk_page_range_novma() into kernel/user parts To: Lorenzo Stoakes Cc: Andrew Morton , Barry Song , David Hildenbrand , "Liam R . Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Michal Hocko , Muchun Song , Oscar Salvador , Huacai Chen , WANG Xuerui , Jonas Bonn , Stefan Kristiansson , Stafford Horne , Paul Walmsley , Palmer Dabbelt , Albert Ou , Alexandre Ghiti , loongarch@lists.linux.dev, linux-kernel@vger.kernel.org, linux-openrisc@vger.kernel.org, linux-riscv@lists.infradead.org, linux-mm@kvack.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: D31CA100005 X-Stat-Signature: e4ntoakq5ajk995fx6woabmoa4ftxrsd X-Rspam-User: X-Rspamd-Server: rspam07 X-HE-Tag: 1749151180-304854 X-HE-Meta: U2FsdGVkX1+2H+YyR7vUg8naf2trIpspDPsqLEyg+mCaL7/KOLoykflNp2gYrvtKGmnko0oDbbzQ1GkNH5P/1hvOTfWHUOiY/p+BnukqmJ/Rv1X0PKtf+GopOHoXJdsQe3vOmlmVdpvoayKCBMpgDLKW2LqYpeFuJZrk2YtqDtDlDRzotRXu7mJWBXaTuuomBB6BehZL4U7BDURtWMEYrWehqzhCviybZWno0n+NV+n1m2q0foHD4fCpda3wykIC9ikZP1/JPobWeTz38Gr4vXmcRQHH/dI89ZmA4Nq/cuVX6sg8BsKex9DMkqJkol4w4Lfmwj50tzb1+sAI5kIr9kMtrZdeOEa325cwY4sL1dIOlfgKDkFxMyHeiVOIFLLXPKFcV+YslBVizUyG2Qv5XD93agKsBZ5CPxWg9D9DrKe7qJpdtBpUtZeyvhoyAgKRhZhBraKjwpHM9pEmZotWHX+9E0NBLG8/GfY4DOmjGOXmvKascITcPJIy6wDw90EpWVsaB1VENTnDd7YDTIjv/cf/0e6lnQzmq7ZDc6Ho+VW9GRfeeKGPEE4FAt7TRevKAhwMTVwl64Eoyu3cunzL1R7KhGyhOfu52o1HvPZcZJX377YWd8eHPyBsLhBFYS2+k64x639ZoyygdR6CNiuEO5sEaS3v7AQIei/tli09FyFt3HPBUBCyQWDOvW7tZ8ft6jI2sLcjDO8NmqYvs7Sc2utVphePbZqDjr3nfZo5x1We/HeRhEpOu85B4d39gw3Hjld+RGHchraPYIWS2OJRk94c0TPDBBrB5Pe74MYKMzaJ44ouN8efq3Pv8x9hD/uzCxUamT8TtbcE3fX1op851NYO1IFxc9g31XgRJAuXuSWjCdplKjvUbNuOaCIb+9I2RPGH8PB5UrfzCbRDy5n+MaPFgpSpg2PZxyOW6wzAfirXaSLvR6ds/0fjGhzOvTYQ5e6KScy8L5e+M43SHSj ATYRQPcT Wxksbj/Dfr1mJnTQ3edzRNc/7Ixd+RU7ccILkiXS6+qORgXjYE4Ks5DNwbhmUq7vDn5vUaKQ/jrdBwaMFXv6PSPbixF137s+jaZRScrTlgQot/9CL5UuRiSSNy+gbroqRAKuB8K6UPX0nO7DsXdVShWFdvxi4ECtaVL0dnNg5bghskOMswEYq6l0JOv6rLKK5tEuegMgSuPwMldZ7CYveKr1BOI5KxboENdB5Z0aV5/3IUf8lkzDKCBX5D+xW6tfNX/+Myb1f8o7FyQg= 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 Wed, Jun 4, 2025 at 4:21=E2=80=AFPM Lorenzo Stoakes wrote: > The walk_page_range_novma() function is rather confusing - it supports tw= o > modes, one used often, the other used only for debugging. > > The first mode is the common case of traversal of kernel page tables, whi= ch > is what nearly all callers use this for. > > Secondly it provides an unusual debugging interface that allows for the > traversal of page tables in a userland range of memory even for that memo= ry > which is not described by a VMA. > > It is far from certain that such page tables should even exist, but perha= ps > this is precisely why it is useful as a debugging mechanism. > > As a result, this is utilised by ptdump only. Historically, things were > reversed - ptdump was the only user, and other parts of the kernel evolve= d > to use the kernel page table walking here. Just for the record, copy-pasting my comment on v1 that was accidentally sent off-list: ``` Sort of a tangential comment: I wonder if it would make sense to give ptdump a different page table walker that uses roughly the same safety contract as gup_fast() - turn off IRQs and then walk the page tables locklessly. We'd need basically no locking and no special cases (regarding userspace mappings at least), at the cost of having to write the walker code such that we periodically restart the walk from scratch and not being able to inspect referenced pages. (That might also be nicer for debugging, since it wouldn't block on locks...) ```