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 481B7D6ACEF for ; Wed, 27 Nov 2024 16:19:49 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id D23E76B0093; Wed, 27 Nov 2024 11:19:48 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id CAB6C6B0095; Wed, 27 Nov 2024 11:19:48 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id B4CF76B0096; Wed, 27 Nov 2024 11:19:48 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 934566B0093 for ; Wed, 27 Nov 2024 11:19:48 -0500 (EST) Received: from smtpin22.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 431DE141775 for ; Wed, 27 Nov 2024 16:19:48 +0000 (UTC) X-FDA: 82832385888.22.5C5075D Received: from mail-ed1-f44.google.com (mail-ed1-f44.google.com [209.85.208.44]) by imf15.hostedemail.com (Postfix) with ESMTP id 4B442A000C for ; Wed, 27 Nov 2024 16:19:40 +0000 (UTC) Authentication-Results: imf15.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=iB8A0liN; spf=pass (imf15.hostedemail.com: domain of jannh@google.com designates 209.85.208.44 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=1732724383; 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=RAjY4cUXfzBi8WYwGYeSH20OavkqXnIHitIyVQzxrLw=; b=Wbfrhv6DHy8qtNNaWJM0RR01JBgq107hT47zyleUWe9xF3QFdyUc3wL4nYi6U2i9sr0GtF Wsrqef+WLRb15/2vZv0DhPvuLZpbOW/KrhxH5UjYw4eGskVBKLPWv9fVPE8P+pM26sJuwR kRHG6BjuyUl/OeEsL2QDadx0OKLzxkk= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1732724383; a=rsa-sha256; cv=none; b=2XNYjIEHRoXWHSPmiCa1VlhZhWGrllNM3vekuitgoBvS4709V0LHDyf5Cik5BkOQt4NZlG bmeEmGFPXiXrK0X6Lv1vfTNlUrBk2UMjA9sMRbpj60ycA4wXokF3jOkGwuY+Zz6+lY0jh6 6XnuZkERLY5szY3TjbDQxTFPPcy5R2o= ARC-Authentication-Results: i=1; imf15.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=iB8A0liN; spf=pass (imf15.hostedemail.com: domain of jannh@google.com designates 209.85.208.44 as permitted sender) smtp.mailfrom=jannh@google.com; dmarc=pass (policy=reject) header.from=google.com Received: by mail-ed1-f44.google.com with SMTP id 4fb4d7f45d1cf-5cfc18d5259so10606a12.1 for ; Wed, 27 Nov 2024 08:19:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1732724385; x=1733329185; 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=RAjY4cUXfzBi8WYwGYeSH20OavkqXnIHitIyVQzxrLw=; b=iB8A0liNLh3wqjclaVjoqPFk9TjjUmpBlla/mChOcKPJRloDIDnKnmRzbAlOsFejWF GNnc6ZiDD+ZCROG7r+smw2bzp1UBYpD4NRvDGtkc5vXJHLqViP1QeCtiK9ubDHzHrYWu S5ImS9beH+AMrGNLfRsvHKsBj2Xu1kskEXT5UMsmkGUVBujtID2xFTHwo/VTmAazekx+ XJzTgCzauL/6j2HrOQJqAyLDLij8FLSqJe8Hm+tpOpYLs+dbhVnm5j2ALEjqvK0xRe1M o0DR6SbCxD9CZQbxaGCfSj9DvhC6yrD/Ytb//J106eicR7WXu8h/oAWoXZUIMNoICMa/ xqkQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1732724385; x=1733329185; 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=RAjY4cUXfzBi8WYwGYeSH20OavkqXnIHitIyVQzxrLw=; b=XnWQcugZvt7T9Ru5RniQLRiEZIhB7AkjDvIJ7bjJ8qxXM6JVAB1WGxpuru7d0tAe2V mMzN6yc7t4ICtgmMKS1InJlRUEcPj1a3Gs1bptpHHbiHkkjgbzI1dBCkK12TVPEybR+K acqzf7b6BZNYyC1c+hHrOznGBqge2bkSoYaa+KvS2DER+oipPccQEIor0iSJHfQf9Rn7 f1AJSiBmYLJlaD3HZxEm4EhjkvRRysyRcjzFNiXx0jGEsL/ZxtJwOyE0spfSwC+Xxdn9 +Pu2pVJBJTRkV6BCHqlan1uPu71MCfqhrvSn7jTG2x0AHkjGJOM8qVVBnqOkFt6RFf5D HfvA== X-Forwarded-Encrypted: i=1; AJvYcCVlOuDvHz+C6oKuXfcGoz5iJdda7yU4JJUOOicPZaey2q1Nr/QZOl3aWt0xqiHObn3bofgvnsVIkQ==@kvack.org X-Gm-Message-State: AOJu0YxqXRG+nT8issoHQlTJlmarYXm10jBdjZrxbaBDzAUt0bNxYQdy eUm2MnZ07746WXar3je89Pt8JHIz7E0sISU9wdBs9uTDpgDmipkVTz/tWiiEhc3goEvaU3jjAx+ p/IvXpSltDHvYCSPXShqdA+4G+s9zCBOoW3nV X-Gm-Gg: ASbGnctSSpe1XXxgpkg6KWRdc1ygXqECck43fUMO0+QZ5K71nuuCbn6g+Evf+nHsp9A CeTRHP+GcMSAtvaTKKtIDx79Yjz9bHGRRjKBTqd1QTi/84vPhHymjRersaf8= X-Google-Smtp-Source: AGHT+IHOfimbq5UVJFbeLGrkhx7uhD/EG8rIKTd4IIfYXZcO8eb5dxm860fiWHAJKL8K0w2iOIAFqyZVTagJNyJjsfE= X-Received: by 2002:aa7:cd50:0:b0:5d0:f39:9c7 with SMTP id 4fb4d7f45d1cf-5d083570c07mr71295a12.7.1732724384503; Wed, 27 Nov 2024 08:19:44 -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: Jann Horn Date: Wed, 27 Nov 2024 17:19:08 +0100 Message-ID: Subject: Re: [PATCH v9 6/8] mm: rust: add VmAreaNew for f_ops->mmap() To: Alice Ryhl 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: 4B442A000C X-Stat-Signature: wmsdxj371trcu4cmxooicuzehid44ru4 X-Rspam-User: X-HE-Tag: 1732724380-442731 X-HE-Meta: U2FsdGVkX1+Kfs+5Q7ZpeAMqiZ4GwKaD0kKILctjbHRF9KNP49evXTbe9jqKgL/rpwtu3fy+NutAxodV24ZALuQjC3t2qI39F/E9cpDkl2JyQzY+jrWxIjYtxyD3wXTYJdPvZu+BFJzsMgFmclreLb2Dm5INs9MFDuygDlFRcez1k+cYKBw8vSkNQ3PnCdPKxeT5E31fPpAcL7APUgEOr+HsTdVw39tge1CczGWTT+Rquedu0VQX3k1uqCWEWDkbiA/7lTyvyy6C/qMV4WQje+mWhqlqzKH8g+WWK3KYcM+R6Vw5k2/dGyUNrYYbdYvwmk/Ok2HbyiMAgEdbtzHTXZBroPGiFazh35VgV//Ch7iP7nCedq48TuP69HpY4YLknNLPUiaWt9BALNWhScltc7kHN8bjMox06fTa41UT7YzemcsO7dk8SuiAZBxC0JHrJ0LePgQ5vKhrLibXeSrADCJsB7OmPwYeNI0MBaH7osjHMyMvbeZRUGohu0brTC3vfuM1NATxDnvIEnxZnXccxd41lshnBprU1CfcvYydLsAYkQ6n5ntR3NVrpq7Pg26++20KZrOPsZrxzxWV95RrQAwvvnFZYJmDNZyfd42PHb0h54aDndn10H0UdKmM7/DrANxCvmuHlkhttWLk75feJ5WO/f2aS/zhX0zcdV3cepOEleoIassGmJNamS9knRErVfPUNDyeZzr+6AfFAPkp/KtAgiEXc5PWl8FQ9xDCSLHAhs/NAW/DiAK1hcBU5TYr5yxDlkqzLL7rIDxHZtgVwHSE0ju/VMv6PYJYfRgmlnIphluUmZbJNTbIWTdquz3kTKyY1wjPU+ksIH9bt0fs6Va7qMVW/kLCB4NhlVK1nDq0NqxB9WebR/cXK5ij8v0dvhL/KNDIvW0fcFSB3NnXPSXASwVy1ZX36I4WcH5LzXGfP/T5g5yznNUYYMhf7moIq4ogWGv5UpfP419nrvc QHLlzMkB voQIVSi4FcKFrVPUmc3//pUudW2Qz0XygynxAWrvE5rJZ3JzmzXv35mryn3WnPP9PH4XKwA3/WYA1Q3Xn9jJ+qri1fncNaEnAt2DraeQoDPo40u3ZfMPXh12My7rjHFlgH6d6a3AhWWCkmEmL+FaYL/g+Jfu6eAmrDfHujPVCfhxEUUY9s6tw+B3hMLOzSMHqsCw/zcAPCsTEHpgoK0QhygDiGpJ6LwhKRa59jH5rlEkydisaMg7fA6CHlzr+SwJjasQFuuyXOp/Jhd5Xaxyzu1nVtcRthjZ4k/QX+jV11ZB3G+GD/bv0S7ZZvg6hhmnPv7JgQLTX19VYxPmdRFgEotoLB5qOSBEsxXF/yTWGMt6YIXRgBAIkBqoE5A== 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, Nov 27, 2024 at 1:38=E2=80=AFPM Alice Ryhl w= rote: > On Tue, Nov 26, 2024 at 10:30=E2=80=AFPM Jann Horn wro= te: > > 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 separa= te > > > set of operations that you are only able to use during the mmap() hoo= k. > > > For example, the VM_MIXEDMAP flag must not be changed after the initi= al > > > 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 er= ror > > > if VM_WRITE is set. Trying to use `try_clear_maywrite` without checki= ng > > > 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. Whe= n > > > 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. Yeah, sounds reasonable.