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 3DC79E77188 for ; Wed, 8 Jan 2025 12:23:56 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id A6D7D6B008A; Wed, 8 Jan 2025 07:23:55 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id A1D5B6B008C; Wed, 8 Jan 2025 07:23:55 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 8E4776B0093; Wed, 8 Jan 2025 07:23:55 -0500 (EST) 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 70D136B008A for ; Wed, 8 Jan 2025 07:23:55 -0500 (EST) Received: from smtpin16.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 0F5CF81109 for ; Wed, 8 Jan 2025 12:23:55 +0000 (UTC) X-FDA: 82984201230.16.327537B Received: from mail-wm1-f44.google.com (mail-wm1-f44.google.com [209.85.128.44]) by imf28.hostedemail.com (Postfix) with ESMTP id 1F5E1C0011 for ; Wed, 8 Jan 2025 12:23:52 +0000 (UTC) Authentication-Results: imf28.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=JJpuCQg6; spf=pass (imf28.hostedemail.com: domain of aliceryhl@google.com designates 209.85.128.44 as permitted sender) smtp.mailfrom=aliceryhl@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=1736339033; 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=391Sv7NU5fh3eearmQN4bqLVD5+Y91N5nHLhoILJSRM=; b=Q2eSWyFO1gB0EHHmr8SxPuRqnZXoBjXzCWWyO7jiiajN4AIZAUMURVnWs5OC0mZJK/5peu YwufhdT4dZnY0aYnN2Fc1YS710qMRwxFNOXYjjl9MCWhGTO0IoukwqJjkJV8zK+Wcq1IFc csoq5oe8HRIrAu37px8stqxNT4tw/YY= ARC-Authentication-Results: i=1; imf28.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=JJpuCQg6; spf=pass (imf28.hostedemail.com: domain of aliceryhl@google.com designates 209.85.128.44 as permitted sender) smtp.mailfrom=aliceryhl@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1736339033; a=rsa-sha256; cv=none; b=w9N5fK5UpWyuEu67aL8puJyeGx8s0nBDxXFvHa9diuDYBV0QcwQBqu2NBWKzGn3apKB0rD ntk6mjKOCxa6vPwOpKv37Rw3AwonoITV8JXOrOjcpNV1pgOkjB/bViBMJiJNBwKc8KC86w 4lLgTAlK6dSjISpRM6Y94MsVwBMaa6k= Received: by mail-wm1-f44.google.com with SMTP id 5b1f17b1804b1-4361815b96cso111599825e9.1 for ; Wed, 08 Jan 2025 04:23:52 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1736339032; x=1736943832; 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=391Sv7NU5fh3eearmQN4bqLVD5+Y91N5nHLhoILJSRM=; b=JJpuCQg6BWaIjT3enuU+W9it7NR6a5FUVrkOSazqNCNQNkZ4hnHVEy++n+9pZ9mduG 0XFQV0fjkH8CkFvzcPGwBNlRrfYgCWpMqJCpCRno9ln89D/lY49l1Lo6VdtL6OY4Mmq2 JmfWnksgH/bRpH83OCcj4d8dZoPeBuq2scoaTThBHAc/Jxw1evjimErBR09jnZnG+if4 E0WnymqGv6sDshAhmjRuxuuopKi8t8GpDKAe3HY6wd1dW1V8/OP60PyrZMbi5+EUZpXv a+Y7e5zfYn6AOmmG0bGO/l8x2vUZgB1glOz4CksZrUDxgeKm+sA60O7PAP8L4NsTDfVK B8Ig== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1736339032; x=1736943832; 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=391Sv7NU5fh3eearmQN4bqLVD5+Y91N5nHLhoILJSRM=; b=V2k3mF5J8uhXqbMtBRv38vnioKndGOHtZ+sUbDSCwYWcofN6TgJvnTVIHinbi+R67c CJ2A1vfhO67rMHIl/vK7pRBOhnb1AI3Enf+2gG+pdA90gk6GqD83AHr+rElQX+ty+/6B q5TeDc+6TC88BPUOphN2bRLxpJi+7nuimaSSUvamKi+clHDgJqWa8SQrgF00hzAnyUY2 /tuxNFG0mtsQLDlsLRVIGFibbrUKEcBy8XrsfXsdKL85IC5IWPocpCPKlTrSRG0ZCAZj zmxrknv3MRp68HfRIWl1nKh35wwjoG9LxLI27srzuRK2bEPgsfxF0kJ+jlH2zHoYuiVA Hvww== X-Forwarded-Encrypted: i=1; AJvYcCWqsDdKg6l4dElYEJqxVxzs/82T0mETbbSIvY+cHTwEEk4K56oziBdG6WZ6wypF64p+Ds9SxFduAw==@kvack.org X-Gm-Message-State: AOJu0YzeiXNBW5Z9HIo1DDcb1bnJ3ZMTsTA4V0l+M8PaQ67CeT2ysgei 3PKoykp7SBLCInmmGbaEUAu54NlnV7isyqdNYj+l5WBd1ryQChpuU3mJ/7i7U6ZuyH9qhPVgYKo cCcp1JhYJBSasUfEAYs9mnmIFZwRNRSOICNjf X-Gm-Gg: ASbGncsnQkPqHfhsP/vXZ2tZd1hWHW8hGnWuLwlKiMKbex2evTY/XxrEkcJyBZ4GqFU MFXlxZznlUZmywSgwlSityc9OPB4eExXjHZ0zrUmhxJuJB13uMjHInSvVTUzDCmrPHbm1 X-Google-Smtp-Source: AGHT+IGkXEElDjqDXb7Yk2cSaX6czWL9OyEK2paIcAgYnvOLqGHSufIDf15wb86btJ20CU+W2pjlWna+iCbq1cDXEyQ= X-Received: by 2002:a05:600c:4755:b0:434:ff25:1988 with SMTP id 5b1f17b1804b1-436e27011f1mr18413995e9.32.1736339031650; Wed, 08 Jan 2025 04:23:51 -0800 (PST) MIME-Version: 1.0 References: <20241211-vma-v11-0-466640428fc3@google.com> <20241211-vma-v11-6-466640428fc3@google.com> <87o71bagpf.fsf@kernel.org> In-Reply-To: <87o71bagpf.fsf@kernel.org> From: Alice Ryhl Date: Wed, 8 Jan 2025 13:23:40 +0100 X-Gm-Features: AbW1kvZkAzYdBePaHK2AvZ_ZrK6Ypria93aLgo0EpVBoywEftdJ0OdK8Ra4frQA Message-ID: Subject: Re: [PATCH v11 6/8] mm: rust: add VmAreaNew for f_ops->mmap() To: Andreas Hindborg Cc: Miguel Ojeda , Matthew Wilcox , Lorenzo Stoakes , Vlastimil Babka , John Hubbard , "Liam R. Howlett" , Andrew Morton , Greg Kroah-Hartman , Arnd Bergmann , Christian Brauner , Jann Horn , Suren Baghdasaryan , Alex Gaynor , Boqun Feng , Gary Guo , =?UTF-8?Q?Bj=C3=B6rn_Roy_Baron?= , Benno Lossin , Trevor Gross , linux-kernel@vger.kernel.org, linux-mm@kvack.org, rust-for-linux@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Server: rspam05 X-Stat-Signature: mifoa45ccs6cjuusrdchq8jgmtpo7n4z X-Rspamd-Queue-Id: 1F5E1C0011 X-Rspam-User: X-HE-Tag: 1736339032-800446 X-HE-Meta: U2FsdGVkX18LypH8C4I89PoowIgeH/YcNg9cQeuOgZNoBzHfB45LTaT1QBj5VrtzcGN3vGanqz6ZO1iYOhal7UlyDP94QharSqlFGPBWoaI2kNZ5RJY3lv2loXz9FqTLZXWzC+gYKhJIOWhqWh6DVe+s+pR4rTxU9tnj4x3B1G/ktrmhTqqa44yEZnPeIKj+PpFIJlYKESnKAPHcWCxcQ1BLYjcu016ZC0+xpnUp4W7AFlkD558SnwLTl+Yii2IymH5+owkYb7DdX/HKs2Rxh0oxEKHqlPi1mVkfO5PPzae6ONj8jEl4CMdUiI5gY5VW2vDeLmAOylDLAhWhpqvFeWbY+Gwz+jpRz3iB9J4nztZHJSc+TLlojZfgYGvNtue+v7CKzYwUR5dI/AO/KcfbWM/tV8PwSfZmmW5yRHU1MqKzTZ718c11ksOvpPmqXCM++ZoFKEpC4o0U2ikldDjXDaJGOEH56MHROo2ThWhL7vmoalfukvA0LopxDRXodP71XuM2LmsNumDbSj3pjCD+aNunhkQWBEHIc4pjyitOAwA0T56WMO311RmH11HejLXcmFJ9MD4TYlLNkVrMAPw0Do5RGJPAIK5h3rGvDPovdTDq0Z9mXd6q9pdbHKBp2375mSJqVutRNHnmfFhjag4HerP9hhfOwjBGzahZjnD+SE0Vbil/2LTynS9aIJl7npecCoSLSpmyPUmcCVPJAhqNf0F7gJfG8jLtKi8OuVLzeXcwHmcOktehOzMFSPivuL6xTdkVBD/9C9UTshEtFPIimT024TPSPc6+UeZRRns/YOw+cJvrPhPbmwRasYHwMAzqCy01Xl1TzkWGUNkwvOpDVeNGG/dAEhrejR5g9xhr+64HrtWr+h7PhKPPj9sDltlmwuOc1w0wp2wmGFZz5/kLlDx0zfcpOacS6lj6U/Db1FyMcOan2FN8dKwlhft3wiHEvy/gwPpgz4ZjnG/942g DDch+kzX 9j1E1ii0bIYLtgbFeBQaN8DcZnRJQoKpnDaPYv84S7AZ0I4fU6rxpseJPhc8Bev5ekfCGyuX1rhp+cn3vFS9JBVd52u1qsJLltlevlFtp/xBMlGDetd4DGFG2KEgTaBD+6jYKW5Et0jfx203jIFDPBIInrlaG3ZE5RFT3+RNUakUjt9XNHkyLhjpEaQZmr4mEirYOaWLXB0QHQ9rf/AbdUatfjt38GEnF369qpVKQTWEGCfQOnoePOe1TLGQHszkaYYi4EXAk6r8oqalnYjrvitLjddwQi4/2Fv2b4RxwXizCADdwJ6eisVSk1pNvA1oO4J82Otdsr0TU0VJCyI14YvP5DlOzSIzquCTMrffC7wvOEL3VzgfKPDWqtcJ/qNlDbiY7 X-Bogosity: Unsure, tests=bogofilter, spamicity=0.495496, 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 Mon, Dec 16, 2024 at 3:51=E2=80=AFPM Andreas Hindborg wrote: > > "Alice Ryhl" writes: > > > This type will be used when setting up a new vma in an f_ops->mmap() > > hook. Using a separate type from VmAreaRef allows us to have a separate > > set of operations that you are only able to use during the mmap() hook. > > For example, the VM_MIXEDMAP flag must not be changed after the initial > > setup that happens during the f_ops->mmap() hook. > > > > To avoid setting invalid flag values, the methods for clearing > > VM_MAYWRITE and similar involve a check of VM_WRITE, and return an erro= r > > if VM_WRITE is set. Trying to use `try_clear_maywrite` without checking > > the return value results in a compilation error because the `Result` > > type is marked #[must_use]. > > > > For now, there's only a method for VM_MIXEDMAP and not VM_PFNMAP. When > > we add a VM_PFNMAP method, we will need some way to prevent you from > > setting both VM_MIXEDMAP and VM_PFNMAP on the same vma. > > > > Acked-by: Lorenzo Stoakes (for mm bits) > > Reviewed-by: Jann Horn > > Signed-off-by: Alice Ryhl > > --- > > rust/kernel/mm/virt.rs | 181 +++++++++++++++++++++++++++++++++++++++++= +++++++- > > 1 file changed, 180 insertions(+), 1 deletion(-) > > > > diff --git a/rust/kernel/mm/virt.rs b/rust/kernel/mm/virt.rs > > index 3a23854e14f4..6d9ba56d4f95 100644 > > --- a/rust/kernel/mm/virt.rs > > +++ b/rust/kernel/mm/virt.rs > > @@ -6,7 +6,7 @@ > > > > use crate::{ > > bindings, > > - error::{to_result, Result}, > > + error::{code::EINVAL, to_result, Result}, > > mm::MmWithUser, > > page::Page, > > types::Opaque, > > @@ -171,6 +171,185 @@ pub fn vm_insert_page(&self, address: usize, page= : &Page) -> Result { > > } > > } > > > > +/// A builder for setting up a vma in an `f_ops->mmap()` hook. > > Reading this line, I would expect to be able to chain update methods as > in `Builder::new().prop_a().prop_b().build()`. Could/should this type > accommodate a proper builder pattern? Or is "builder" not the right word > to use here? You cannot create values of this type yourself. Only the C infrastructure can do so. What would you call it if not "builder"? Alice