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 7A2CCC3ABBF for ; Wed, 7 May 2025 16:46:30 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id BA1D06B0099; Wed, 7 May 2025 12:46:27 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id B28796B009B; Wed, 7 May 2025 12:46:27 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 97D666B009C; Wed, 7 May 2025 12:46:27 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 77B5F6B0099 for ; Wed, 7 May 2025 12:46:27 -0400 (EDT) Received: from smtpin25.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 50273BB727 for ; Wed, 7 May 2025 16:46:29 +0000 (UTC) X-FDA: 83416690098.25.C5DDD1F Received: from mail-qt1-f179.google.com (mail-qt1-f179.google.com [209.85.160.179]) by imf10.hostedemail.com (Postfix) with ESMTP id 1148BC000C for ; Wed, 7 May 2025 16:46:26 +0000 (UTC) Authentication-Results: imf10.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=Ykf13VfD; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf10.hostedemail.com: domain of boqun.feng@gmail.com designates 209.85.160.179 as permitted sender) smtp.mailfrom=boqun.feng@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1746636387; a=rsa-sha256; cv=none; b=lvps5W34fYqsy5Gdhm21j4wWmXnGmKfmjOLePfVyeReP0u/mfQ03yVDrcM/vdHykDHtzDI rFkXJjtOO5qYJtU9NhqdRGG4bvVZ3CIkr62NzzbZeSo7HMMFxJwq7XtlzW2NiGKlQEmMhF aRDahdTZHC0uyOXorJN1MqZFhms8xio= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1746636387; 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=hd89TAWi8ved6H/OVhAA1FFV+fScCquo0kkiKhx9eys=; b=WCL3H/Aru8X9H4m6JIIEDJPIwnl8iiRD/7qEmignpeY2xd7JOLJrW6YQt2bUh6ZlmKlUnR at0R+W+ZYYuvlyxOwHon2wZ4TAcPaxcu5V5+ujSbebbjMeN2/74AY32cBittBu/XtaPVs4 2HIg9r2I/aq638dZu8YEIOwKiwIOOGY= ARC-Authentication-Results: i=1; imf10.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=Ykf13VfD; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf10.hostedemail.com: domain of boqun.feng@gmail.com designates 209.85.160.179 as permitted sender) smtp.mailfrom=boqun.feng@gmail.com Received: by mail-qt1-f179.google.com with SMTP id d75a77b69052e-47663aeff1bso330701cf.0 for ; Wed, 07 May 2025 09:46:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1746636386; x=1747241186; darn=kvack.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:feedback-id:from:to:cc:subject:date :message-id:reply-to; bh=hd89TAWi8ved6H/OVhAA1FFV+fScCquo0kkiKhx9eys=; b=Ykf13VfDJ8oMIUS2TTE3Nd0Y6U27egldSBARubI0xuti8HVFTb3ow0bTkJflBCsb1S 37Tx/twt5NW3Rh2C49VGZ91zn34ZoyXvpOUkoOfIsRsu7uNwWIXzCmAeeqGR6W5rtpPI 45BFGsDYeOfv9sIMBz2gZgc1kmCdqyCXF6HmHGz6kGRpwdyz03XcoC/m7vN1XU426e6Z uO5Mm+2Qrf7oEI2rAvcl/Exdr9Femqa/SxU4oLGvh04ji/NySBbsxBurRjn/DWtRC4eG 0bDKzyF1fxdsLrIOlLdlo9r5skQw+TeliJaEJZqZymEfVWbWg/RRQWAgU6kaj2RDsbqw 77Hg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1746636386; x=1747241186; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:feedback-id:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=hd89TAWi8ved6H/OVhAA1FFV+fScCquo0kkiKhx9eys=; b=gwCz4XJPsA3om4XSO4XQsq2vIi/WGNlJKxO5KTxI4ZMygV1DNtCFGy77OL3sFkp3BI kXZa8joGuUgDXn15FnH/vwQ3mwy1iPZxJgY9yLMa7RrWqtJqMq0pRtc+Z8TG2Jk7UU/a cs6orTL+0Fpzb814g51W3kQ+5ZhlJOrUfTGq13jW9HDuwaAbhMG21C0vbityaJJV5Pxv +sjFhOsjvKObgIBdFe9ZfMn1JG9pzbiI3jzNmpMNWLm+kq/zL+hs8hSR9cYkcUgyCnt9 ygvkpLgukJtRuX01Q+Jf/xl8A/zeyPlxxmXjnPc9XQq7463Z9TykWAUVztn6EccaAkv0 Sn2g== X-Forwarded-Encrypted: i=1; AJvYcCVWOqEagkfM8KxL2LfbsE/2nfu+zofGEJTmLdGDNp7+rTgNy41N3cm4WdHZePAIbJEsvRXmPdvn9g==@kvack.org X-Gm-Message-State: AOJu0YxcrOfcriMUdka9PTE93zqEnleQZcHbKeO8/dT1BPl12+rKT69M ZwJZi7PcGkMVQdMgw1Wr5DdPQJ0QL/1JMmmN/2GMYMSaUeTREOvO X-Gm-Gg: ASbGncv0CMn3aUzgvdtWgCwoEZ74Hl0cW8LnFnkvKeKNWL03LSfsrBYoBrNRooBKOhy WUyAFrrkbcK4WfeaojOyD7tK3EsuIkJwy69Wj7yihFvNqSS40hfNUIDbPBy9kn6VUUYMzTppMIM LqA/Q40t76bhfTi2RpjChQU+muweNKk6CoPoPdz5MAw1pflage+jvXDSKAQ1b1BRoAy/vXxSxRF 0hDeM60oy80p03hgf79xWSPRpP+YLH2+KAOqtXvy7nAELoKM5yRQkUpyFdt2tq3IhNpwcBwNDvo zJCqRR17Iy2Ur2VLdE9xoObAk1Ixvwaa1EUIBeZxA3s8Dc8l8+acpPJGSKrfRbL3FVHkY2xMrab 4+o67peAJumtR7Wdofy0IaJeuuPuAqZY= X-Google-Smtp-Source: AGHT+IEJua7Vk67mFpz3sMb3PsfxmT1rQAGXeBokkWC0rZEtVZN3iUEH1uX39R05zImyGTFCOjwIPg== X-Received: by 2002:ac8:5f49:0:b0:47a:e6d1:4126 with SMTP id d75a77b69052e-4922719d749mr53061761cf.39.1746636385896; Wed, 07 May 2025 09:46:25 -0700 (PDT) Received: from fauth-a1-smtp.messagingengine.com (fauth-a1-smtp.messagingengine.com. [103.168.172.200]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-492218431casm16787891cf.45.2025.05.07.09.46.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 07 May 2025 09:46:25 -0700 (PDT) Received: from phl-compute-02.internal (phl-compute-02.phl.internal [10.202.2.42]) by mailfauth.phl.internal (Postfix) with ESMTP id E19BF1200043; Wed, 7 May 2025 12:46:24 -0400 (EDT) Received: from phl-mailfrontend-01 ([10.202.2.162]) by phl-compute-02.internal (MEProxy); Wed, 07 May 2025 12:46:24 -0400 X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddvkeejfeejucetufdoteggodetrf dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggv pdfurfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpih gvnhhtshculddquddttddmnecujfgurhepfffhvfevuffkfhggtggujgesthdtredttddt vdenucfhrhhomhepuehoqhhunhcuhfgvnhhguceosghoqhhunhdrfhgvnhhgsehgmhgrih hlrdgtohhmqeenucggtffrrghtthgvrhhnpeeltefftdetgefhffejvdekgeekjeejudet heekfedtieevteehleffgedvhedufeenucffohhmrghinhepmhhmihhfmhhmrdhishdpkh gvrhhnvghlrdhorhhgnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghi lhhfrhhomhepsghoqhhunhdomhgvshhmthhprghuthhhphgvrhhsohhnrghlihhthidqie elvdeghedtieegqddujeejkeehheehvddqsghoqhhunhdrfhgvnhhgpeepghhmrghilhdr tghomhesfhhigihmvgdrnhgrmhgvpdhnsggprhgtphhtthhopedvvddpmhhouggvpehsmh htphhouhhtpdhrtghpthhtoheprghlihgtvghrhihhlhesghhoohhglhgvrdgtohhmpdhr tghpthhtohepohhjvggurgeskhgvrhhnvghlrdhorhhgpdhrtghpthhtohepfihilhhlhi esihhnfhhrrgguvggrugdrohhrghdprhgtphhtthhopehlohhrvghniihordhsthhorghk vghssehorhgrtghlvgdrtghomhdprhgtphhtthhopehvsggrsghkrgesshhushgvrdgtii dprhgtphhtthhopehjhhhusggsrghrugesnhhvihguihgrrdgtohhmpdhrtghpthhtohep lhhirghmrdhhohiflhgvthhtsehorhgrtghlvgdrtghomhdprhgtphhtthhopegrkhhpmh eslhhinhhugidqfhhouhhnuggrthhiohhnrdhorhhgpdhrtghpthhtohepghhrvghgkhhh sehlihhnuhigfhhouhhnuggrthhiohhnrdhorhhg X-ME-Proxy: Feedback-ID: iad51458e:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed, 7 May 2025 12:46:24 -0400 (EDT) Date: Wed, 7 May 2025 09:46:23 -0700 From: Boqun Feng To: Alice Ryhl Cc: Miguel Ojeda , Matthew Wilcox , Lorenzo Stoakes , Vlastimil Babka , John Hubbard , "Liam R. Howlett" , Andrew Morton , Greg Kroah-Hartman , Arnd Bergmann , Jann Horn , Suren Baghdasaryan , Alex Gaynor , Gary Guo , =?iso-8859-1?Q?Bj=F6rn?= Roy Baron , Benno Lossin , Andreas Hindborg , Trevor Gross , linux-kernel@vger.kernel.org, linux-mm@kvack.org, rust-for-linux@vger.kernel.org Subject: Re: [PATCH v16 8/9] task: rust: rework how current is accessed Message-ID: References: <20250408-vma-v16-0-d8b446e885d9@google.com> <20250408-vma-v16-8-d8b446e885d9@google.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: 1148BC000C X-Stat-Signature: sazcou5afwyby9ai4knhbjxwh3rdc5k4 X-Rspam-User: X-HE-Tag: 1746636386-169785 X-HE-Meta: U2FsdGVkX183vqoV+LOKV6EBk7KV3LPGHP295dIzqFIhaybWZhGln2iwAdYFTdu5o9G9JoOOuAHDdn3sLnv5sfG5j/ThFsv40SOuABgwWhhKW3QAd9Jf5DdoUQ3eOvaLBkxZ99WvMUNsWa+vjafKJ+UogAgpm6/4c1I2mk+CR5yEcYKrmpb4Fiv5O6ad36V9a8KkdNxXxHjlnLnWESBVozCx8t6+pGbFdx+TaoGT7eP+ncsIDdhURcnMaLO7oInmhcfAyJCJ5j9TrX1HADCjvv84WCGQwJPvyJWPCt2srsD0rJAJQS5V5YiJLBwJAQPI5cMrB8mZX9rZqSFAZzPKhkUwVubAMPYCcByVhbpMQRARNSv3aSnlt2sveUC4BatMcpXz0GCq/9/l9E7yVkA7F355f3tboncdkRfUqE6/c6VDKo6EwVPgyplVMX/0n+udW9wsIYBfCaK1ONuLrW5pITRBn4iLXFciQ6UcM2o4AHmbn9Zb5SHnDnfDLhThPa8PYUGINuwJsJb+PPCAl/FV4DAS0s/4uBh3WJuQBOERi2HN7SXSnx7EVoEIKcSIpxbP/Q/lnbfvogfjwuHsMrol7OTWl55xxMkCJDLQL/fD9PCzV/JbjiKbTcT5PsNGiycM2lQGpRcepEWwARuxuScpPI5BmPDoUusbGDKLhMNiPPi0h40IW0YVN/5OFQxykMY1W27qchdh+NCv+b4TRYADc05q8Yb5AED59vJBt8CkqoAvVBey+A22OmGdPxj+kbmzL8ZJ1DYfKXKdC1mWiMNbDRB8ZgACImYGfTtokdvsbcQ8QseO+95IljDACjztF1rdkaeBdIzJ7gVJPzymZdnVxHKw8D1aRiiK3ZyNNmiaMm1Gf4knlCBGMTh5fsw6fz6LhGqU0L5C+wSULHWA5Tm40j/QE+RyO1U5ySiPDG8IMT7oPS5spKoxpgdJa3DGH7Ke9T1bDSYTU9OL3JaQFLH yrMlwzVy syvd204Xcw9k+SP8cTD+QzsVdluQOVzxqIBgHen01snlRIzEFqjzHJ47B+XGwgMcLDNzssF22qk4uTVMUPrXdv3WuieaauEDah8exdn82dbbA8wxUGKmUTzMrdfuMISi/W1sn+cMBaHSoLuSTNxx+pXg5H/QNagEqqkm/O6M0Hhm7YXuFNu4ThhmF9eYD4VoxU4hLq3h/OHVRhOKl1XRE9Y4h7eY3vflC1hM0j16osmNl+y9/TUwTi2F5hycF8ox7w/vJdCHOTMW/ylT6qA7FF+A6u08kJrfyqzpkpMKhyqIjJrgRciOd7qWizdvAOrRGyw+p4YEZ92gDyidbupDXb2pp+FcDTaQ8EmL9LPpFxhGGsC8J2ddc/akoV+dKS0kh2lxP1E2yrovMTSichLoBf5EMI2Az5LyvITBr3NilYeBTCTgxsTmk5/8WIErFM+wYFf+QcF+zCRWxIvvrdAW4BUKyAVHv3/0mYtfeWzZHW/JFIzO3ARPTgQ61aG3jHGVpVS7aQq/innwT7Bq5dXUDs6Bv9Q== 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, May 07, 2025 at 09:06:01AM -0700, Boqun Feng wrote: [...] > > +impl CurrentTask { > > + /// Access the address space of the current task. > > + /// > > + /// This function does not touch the refcount of the mm. > > + #[inline] > > + pub fn mm(&self) -> Option<&MmWithUser> { > > + // SAFETY: The `mm` field of `current` is not modified from other threads, so reading it is > > + // not a data race. > > + let mm = unsafe { (*self.as_ptr()).mm }; > > + > > + if mm.is_null() { > > + return None; > > + } > > + > > + // SAFETY: If `current->mm` is non-null, then it references a valid mm with a non-zero > > + // value of `mm_users`. Furthermore, the returned `&MmWithUser` borrows from this > > + // `CurrentTask`, so it cannot escape the scope in which the current pointer was obtained. > > + // > > + // This is safe even if `kthread_use_mm()`/`kthread_unuse_mm()` are used. There are two > > + // relevant cases: > > + // * If the `&CurrentTask` was created before `kthread_use_mm()`, then it cannot be > > + // accessed during the `kthread_use_mm()`/`kthread_unuse_mm()` scope due to the > > + // `NotThreadSafe` field of `CurrentTask`. > > + // * If the `&CurrentTask` was created within a `kthread_use_mm()`/`kthread_unuse_mm()` > > + // scope, then the `&CurrentTask` cannot escape that scope, so the returned `&MmWithUser` > > + // also cannot escape that scope. > > + // In either case, it's not possible to read `current->mm` and keep using it after the > > + // scope is ended with `kthread_unuse_mm()`. > > + Some(unsafe { MmWithUser::from_raw(mm) }) > > + } > > + > > Due to this: > > https://lore.kernel.org/oe-kbuild-all/202505072116.eSYC8igT-lkp@intel.com/ > > , I think we should move this impl block into rust/kernel/mm.rs for now, > i.e. (in rust/kernel/mm.rs) > > impl crate::task::CurrentTask { > pub fn mm(&self) -> Option<&MmWithUser> { ... } > } > > Thoughts? > Hmm.. this alone won't be enough, because miscdevice also uses mm. Maybe you could most of mm defined even when CONFIG_MMU=n but keep MmWithUserAsync only available when CONFIG_MMU=y? Regards, Boqun > Regards, > Boqun > [...]