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 67685D6ACC6 for ; Wed, 27 Nov 2024 12:38:51 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E51DF6B0092; Wed, 27 Nov 2024 07:38:50 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id DDA126B0093; Wed, 27 Nov 2024 07:38:50 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C7AF16B0095; Wed, 27 Nov 2024 07:38:50 -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 A577F6B0092 for ; Wed, 27 Nov 2024 07:38:50 -0500 (EST) Received: from smtpin04.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 520591211F9 for ; Wed, 27 Nov 2024 12:38:50 +0000 (UTC) X-FDA: 82831829094.04.A15C3BA Received: from mail-wm1-f41.google.com (mail-wm1-f41.google.com [209.85.128.41]) by imf12.hostedemail.com (Postfix) with ESMTP id F0B8940013 for ; Wed, 27 Nov 2024 12:38:45 +0000 (UTC) Authentication-Results: imf12.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=k8siPVi7; spf=pass (imf12.hostedemail.com: domain of aliceryhl@google.com designates 209.85.128.41 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=1732711125; 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=DHjB0FS8XpctltbckXhibhTVw5p/t9yVHsmxkraO6NE=; b=EnRN2w5Xc04Ly9PLgRdk84NH4q72Of40HrryxHn7R9CrUzqDhr9RWmVoy/R9lBuhTP5RHA 6ORMmeU1WWIVNo50E/+HuvybNNeky3xwW4tSUGnnh3scGpw4jIpWntjbjcQBCfUx8Fvw4D c9kbd/RYOkXyJV2lIcyhapaMgLjJRaY= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1732711125; a=rsa-sha256; cv=none; b=i+vTjFBt//DKqjUIuF1TLIdb3y++dgSvigxFqSf3NDJ7lMAOGLV4O50ybXO6trsp5M9xEg qiXkeuhbAqO4HzDAGI/v1/bQLRhUBkuZ0KirIK8Ch+I8PrOanUnLVJHARtKH4N2slhwSDO qBH0W889rusavRRpXLvBawLrpY0Yv9o= ARC-Authentication-Results: i=1; imf12.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=k8siPVi7; spf=pass (imf12.hostedemail.com: domain of aliceryhl@google.com designates 209.85.128.41 as permitted sender) smtp.mailfrom=aliceryhl@google.com; dmarc=pass (policy=reject) header.from=google.com Received: by mail-wm1-f41.google.com with SMTP id 5b1f17b1804b1-434a2033562so22806425e9.1 for ; Wed, 27 Nov 2024 04:38:48 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1732711127; x=1733315927; 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=DHjB0FS8XpctltbckXhibhTVw5p/t9yVHsmxkraO6NE=; b=k8siPVi71ioZ816ot63qvoeB4ZIfqTbUYnSzIcsNBAI6Zh3usxrfED7La+mG9NnQqh VRk/gF7crVkmoUMlH8t+IziEBK4Xqr5O3MAmgiUGv+5siX1QgCtn8N0n55iZHU0D/eE6 oq8Of9wOeT0/OzH0v4uuzSHloK3WHNeWugkj06jBzd3uxe6Oss11AViSRjnakGiZdU9a 45yxhSEdkjqs/nLX8R7EPy5hI5xxiRAZTgf6dDgxoxz33jD9F1w0UdTC4aJrNwpDuZx9 usM/+Vax2OJNpr8gANScvj6xgBI/AIVZ6o8lHkPxWKaeE4FjMmrvaPLOqs09s+wFpSF/ K4eA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1732711127; x=1733315927; 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=DHjB0FS8XpctltbckXhibhTVw5p/t9yVHsmxkraO6NE=; b=K6KkBhy7dTYo/CvrZc9kxwOXYQJA1bCUFCmygWkbfjoUXDJHWArl3KDemf/Oe0R1br Y0oHyqc4XazQ4K7U8Y2g/q/EA5OGI1aQeAvv832SHqIz1oR8wrIT6F7rNOf+ikABN7WW TjbCj14jZsPLHA0QLx48QSwWIY9ymsTOvxzdxwGd44jx5S6sXzRNkzaGcXoMZ60r8nyH yqoZKvA0vOcYaUt+tqGc2XXtNNh1zyBhJN5ivaASnY5m7Jetq282OR021SJiqhMZBT82 zCe9vvl3q+rRokYi09C/3EargkZ+jXlg2aeG3aXbsnW5HYuaCnXLqJ3to5Efug3+dJTw kZMw== X-Forwarded-Encrypted: i=1; AJvYcCW7y0Rb89f/84Y0vFGwOjquK0dQQolCdkmiJgtySlFZQGNfoubt51mohLUjwoQPJ2XiUKtz+zJf8A==@kvack.org X-Gm-Message-State: AOJu0YwUrgewxTKy5TFovkBzhZIKqSma2XsXXV2LYUvZwI6F36oHACbc 8Kn5ispd4EigsSydhs06tCdX63vuvaXW4jpFZiv/ppBXkE/On2/5iFrBAJre7knjjR5qV5dRaG3 Pmpg88CBIIZF0sDt8YWJSQqIe5O44pFf7rz+Y X-Gm-Gg: ASbGncuWpDh7qM+CNXTNdmYYNfwNRkG7Dv4+wGlaPaqyx7GW4dd2rHpc80RD/ZuuEiW xVmYn9v26el7WB4k12AtbmEvbrNCLfB0bPqz0cCZ2cHcxoD4W6oDm2DDOKxcT+g== X-Google-Smtp-Source: AGHT+IGn2m8yJDcE/Dzz/61f9ciHRrx99d8i4GRYNDch74O8JfcQB+p+RQG8+bfMn1ARySVuPp8Pgo3KGaUZC/Ej4uk= X-Received: by 2002:a05:6000:1aca:b0:382:397f:3df5 with SMTP id ffacd0b85a97d-385c6edd4fcmr2071742f8f.38.1732711126964; Wed, 27 Nov 2024 04:38:46 -0800 (PST) MIME-Version: 1.0 References: <20241122-vma-v9-0-7127bfcdd54e@google.com> <20241122-vma-v9-6-7127bfcdd54e@google.com> In-Reply-To: From: Alice Ryhl Date: Wed, 27 Nov 2024 13:38:35 +0100 Message-ID: Subject: Re: [PATCH v9 6/8] mm: rust: add VmAreaNew for f_ops->mmap() To: Jann Horn Cc: Miguel Ojeda , Matthew Wilcox , Lorenzo Stoakes , Vlastimil Babka , John Hubbard , "Liam R. Howlett" , Andrew Morton , Greg Kroah-Hartman , Arnd Bergmann , Christian Brauner , Suren Baghdasaryan , Alex Gaynor , Boqun Feng , Gary Guo , =?UTF-8?Q?Bj=C3=B6rn_Roy_Baron?= , Benno Lossin , linux-kernel@vger.kernel.org, linux-mm@kvack.org, rust-for-linux@vger.kernel.org, Andreas Hindborg Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: F0B8940013 X-Stat-Signature: o7khgo3jq83mg5h9cybey73kntt3hxcd X-Rspam-User: X-HE-Tag: 1732711125-994183 X-HE-Meta: U2FsdGVkX19Bhf+XNpwY2qOWblZwfcFLmkT2rPCNpCS36UOrF/paPedxCANinAyC+z7W7HSyHMwg9s1dkbTzSMIiWBZcSOxliruKrUMb4+paSJxPHdsYtGz7CYUDMexWEDDSiCQX0gIJxDhaN1n2KY5fBYqDz6bLYJb5ZKFXURZHlhIuOiIwQ827NlGYTCSx6qAiTUd7c7u1BEgSvrq0ie/5Rz3dZJeTJYNW7AKD8Gn55iYYcefkpjkAuFuqcv8Ai/tb9plMO+3VeommP2zt+QDAxbs/0zMFHfgSrWEg9jAoFsFnx2+nKqvxxFCVeXlH3OWJ+zX1BGjJbYoTewwlh2FEOIh29aLXFOPWEA6+M/KlYOlQF8BQ8OiepV69zM2WHBncrFcXRsmtxBjGxf0SRoKMkA2UQb+jdn0t4t+5DUGkFqS3iPYVGmSwgExjPviiJH0mcJN/azydomzqMRrUka7MHCCmfJCnrXZ7+v9Jy1KqPdEF0S2Mr/X7f/IEYkVOH+r4S0259/u+HeCKDDk+IJxoprPz55QXDX1+sT57O/HKnY/aSmb2PRrYVwCNEXNraHYrQXPBrs+5mxxUL02rQFhUALNYDMK00msJJTDx35CWS74nPU4MBae3I6ZvY+P63lsSIrbxS7MsJyLq6+0fwdakrTDvogbf/TBuwIGn+h9GRnhrJinTnlnaR0OeKELF/Ojj0nxo14hUJGvvfdUygwdmTCNxSxPsFBub0v7GbesY8vaSSac5yjzfZ5bwZmnQErAN5RAeig6pBAUQ3nPIDfq5V3mktE9PSIXhQq3EgHOTumk9zCbS66a64P8UUJMBoITUkVzz8uL7gIrgLm5npxwNUsqIGojn9UP9aKxfA73ovnEBSje6a0mbE8EzcjS0ssnEma9M8JocxjbA51SZPZ9g5xiMJA39veSwFiVa8zG9SaTVGHo715NHcxp0PwNGW5ZtiAG/K/ZV2iedAeM 0cpb6khR zq6yWcaxi5nl15q+rh6NgHUaomNb56/BLqrxRfc2iyillYSu46NhA0sSkBHCeYEctoxNhKtQ7tcDTFfcQEVyTt6XF/uPOIVzqTZ9+wACKVJ6igxZNeNLxNo0qlZsqqN8UAY2JzI/A2DTIL2NR+gl4UPR/XCJyFxE4JNzXK6DS6upFbqVo8+rvnnLBchjdcR0N+S0uMaLBgoSDhFUBo9xObWFoAMBFrwpiCrcYn9mTexm/wMjHYqmPJlSgHvk05oKqP5c3jgdB559wpGcuxip01PW1tSbalrRNkiOI3S0u3UdOcsX0c94/iILo01Uc2HNq5oZA48KwuDJ7+6B5ugjRfCHomVOk8d2aY8l3bFiD5TCuieeTK+FNYlrwtA== 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 Tue, Nov 26, 2024 at 10:30=E2=80=AFPM Jann Horn wrote= : > > On Fri, Nov 22, 2024 at 4:41=E2=80=AFPM Alice Ryhl = wrote: > > 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. > > > > Signed-off-by: Alice Ryhl > > Thanks, this looks really neat! > > Reviewed-by: Jann Horn > > > + /// Set the `VM_IO` flag on this vma. > > + /// > > + /// This marks the vma as being a memory-mapped I/O region. > > nit: VM_IO isn't really exclusively used for MMIO; the header comment > says "Memory mapped I/O or similar", while the comment in > remap_pfn_range_internal() says "VM_IO tells people not to look at > these pages (accesses can have side effects)". But I don't really have > a good definition of what VM_IO actually means; so I don't really have > a concrete suggestion for what do do here. So my comment isn't very > actionable, I guess it's fine to leave this as-is unless someone > actually has a good definition... I can use this comment? This is used for memory mapped IO and similar. The flag tells other parts of the kernel to not look at the pages. For memory mapped IO this is useful as accesses to the pages could have side effects. Alice