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 74324C48260 for ; Thu, 8 Feb 2024 14:13:03 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 062BD6B007D; Thu, 8 Feb 2024 09:13:03 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 012426B007E; Thu, 8 Feb 2024 09:13:02 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id E1C796B0080; Thu, 8 Feb 2024 09:13:02 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id D19486B007D for ; Thu, 8 Feb 2024 09:13:02 -0500 (EST) Received: from smtpin15.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 79361A09C2 for ; Thu, 8 Feb 2024 14:13:02 +0000 (UTC) X-FDA: 81768828204.15.A7AB556 Received: from mail-vk1-f173.google.com (mail-vk1-f173.google.com [209.85.221.173]) by imf11.hostedemail.com (Postfix) with ESMTP id 9BCE340018 for ; Thu, 8 Feb 2024 14:13:00 +0000 (UTC) Authentication-Results: imf11.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=o7x+Tyr8; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf11.hostedemail.com: domain of aliceryhl@google.com designates 209.85.221.173 as permitted sender) smtp.mailfrom=aliceryhl@google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1707401580; 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=63xtu4Y51K1k0XIMtdvcGVsuDCjTkj9dOeWaIMHJ3Ac=; b=2xN9GYzktbZnrfwthzdwunHQnT/QTbHEs6HNViA+rr65C2M6aNwPTLaLtqZVYFvHpIi08P KkwcDKJURFoiJJXMPjQdz4N0JB2894yIG8wRl3ssYQsPheh74lhDf3r+NqlWdSehii2Abe xlI0mq7BhhnN321RtSzJfmNjlWspzO4= ARC-Authentication-Results: i=1; imf11.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=o7x+Tyr8; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf11.hostedemail.com: domain of aliceryhl@google.com designates 209.85.221.173 as permitted sender) smtp.mailfrom=aliceryhl@google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1707401580; a=rsa-sha256; cv=none; b=F93ShzNBeXeIfb2kySa1xNsucgoI4D1UsYDNEIzNMkeqmm/oWelbc436YKQW1yLzEjNMcd XsqKC7DrSiTrdjyltdkO16JLEPdzSNaeBIv7YLTx8hoEKIZFQGdR8tpLVXAjmYSTfnflsl dvOfPR/gbAzwScqHTQLuDX+iAhdLg14= Received: by mail-vk1-f173.google.com with SMTP id 71dfb90a1353d-4c00ec6f1a7so833069e0c.2 for ; Thu, 08 Feb 2024 06:13:00 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1707401579; x=1708006379; 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=63xtu4Y51K1k0XIMtdvcGVsuDCjTkj9dOeWaIMHJ3Ac=; b=o7x+Tyr85XqSUHUtXXZ7Qf3GZU1TiMZyjD6MwiLJ7M2UOqkpRlwDHVxe+pzU3f95+I z34o3ydVTVG1vpducXXJ6Weir91IH+NVqR+/gf9WOVz7Pi1NNdBmuFbdOOl9FwghWFvH a30Ta8JsIshZQu3wQ3tQBD65OHTV9K5g0XPTZacI/Swop3yQuAaW/7K3n9qdNAN2rYPT t7B/leeDvwPtRYny7EX3qrbVxWjOI3xJpVn5Ochf1ox5Uu5fnKkUZxzLL8lF3REJhynF iiH1mzVZtsYYWikQJjjCnS+yQ/7pOS0qdm9awSJkuU1PmrOlbyXpIPoPJYJg9HY3uJrO L69w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1707401579; x=1708006379; 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=63xtu4Y51K1k0XIMtdvcGVsuDCjTkj9dOeWaIMHJ3Ac=; b=bv51aFmDv+v4uysEsC18tMZjeUJDVew4iVRQ6hAznbLITLLbKvdxIGlM4ZY3XNDPuJ aT0OD9r8Uw/UuYOBGR5+Nf09cCd4grnnoxy/zzTPBf+B6z/pR2Q9W/FlJPGsCGGcZpr9 B/cbsMZk++f94TmrLj2fLNizAKWfLqzWit+iiZaesEmJi+Mic/yoewLlDFv+vv5fhoHJ 5hkjw2G26SrybLRSbkI5xE0VFq8LU9jdZx4rATjcLvJts/S1mUC9fQEcWnMSNNalTdQ4 4oEbeSOFlBRhoDLFRAHrDg2HghK79/CxJiTH+hdB/fGZ6GBACEgRdZMbLPezHRym703/ dPjA== X-Forwarded-Encrypted: i=1; AJvYcCUCY+wwZPRBvgOH4Mtkne4Gci95df+2Fy64HLpTi/OgCXSytdS2E3LNrxHTvDcycBCnX6FKMqEC6W49k1zc8ce9f5Y= X-Gm-Message-State: AOJu0Yw5PF+K2KvuLHMVBn6b2y41UVw0KinGFgFHABnIgeNVGzVwJq2z v1xSiQOY4DfUf6fmuM9bgH/o7KCiZFxxG3CnSGZveh/86jKxUx76RRCZe5uqJzhIolW9tykoosM 6oRltPWom3hThTMPXDgDUQYR7NiNYKA5jBZhU X-Google-Smtp-Source: AGHT+IHRIxDWiY+hO499KIfcBiMXI8uEupmgp58zOyTpKkSFIk9pRhRbYoq93ffdSlLJEAko4To9vrwuCPD358UY1FA= X-Received: by 2002:a05:6122:268d:b0:4bf:d147:63c1 with SMTP id eh13-20020a056122268d00b004bfd14763c1mr5938308vkb.6.1707401579571; Thu, 08 Feb 2024 06:12:59 -0800 (PST) MIME-Version: 1.0 References: <20240124-alice-mm-v1-0-d1abcec83c44@google.com> <20240124-alice-mm-v1-3-d1abcec83c44@google.com> <87v86zrr45.fsf@samsung.com> In-Reply-To: <87v86zrr45.fsf@samsung.com> From: Alice Ryhl Date: Thu, 8 Feb 2024 15:12:48 +0100 Message-ID: Subject: Re: [PATCH 3/3] rust: add abstraction for `struct page` To: Andreas Hindborg Cc: Trevor Gross , Miguel Ojeda , Alex Gaynor , Wedson Almeida Filho , Boqun Feng , Gary Guo , =?UTF-8?Q?Bj=C3=B6rn_Roy_Baron?= , Benno Lossin , Kees Cook , Al Viro , Andrew Morton , Greg Kroah-Hartman , =?UTF-8?B?QXJ2ZSBIasO4bm5ldsOlZw==?= , Todd Kjos , Martijn Coenen , Joel Fernandes , Carlos Llamas , Suren Baghdasaryan , Arnd Bergmann , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , "rust-for-linux@vger.kernel.org" , Christian Brauner Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: 9BCE340018 X-Rspam-User: X-Rspamd-Server: rspam04 X-Stat-Signature: xipm5xbxaxh97oaskhmugcs9d7hbqjq4 X-HE-Tag: 1707401580-281256 X-HE-Meta: U2FsdGVkX19GUU6BCzkNs/k/BaLHKv3kh1ppBXjnH7yOO9XoVs73KAj6gJrP8NnAF8vyri0ndSPZGt8eHV/YiF9hKsXfSeAi1AXDlRtdVRFVlngXXujmPTrRJ1I5c68eo2shJVFdtv0lExbEaxEVCAX4N5QerT2GxvtI5zZnSuqlzvsBPwUkhTCdVyH54f+0oW6NRFZ8WA6DmSRiLqi2lZcpiGWX7E6kQV4G+7zEOt2Q6Eip44Gun+QOMSHZJ9jze0wi8LR64QlM/O3WXDqGnTuNHqYC1caV019xjT0dkV/2XYG8g2oO0T0acNYjPVtbbVsisp0ARNcOtTSUylBhjHD/NRB8DbPb5yhENa5AK1ThVrarcwbpisFU6lJa1Hbb+2/Fs8Xes4/aDvEzepdp8GA4x8gxddAUPT5+pnTqHnwB65g6Gjjs2ssRf/d13ZLSSO+ejjgOu8X6tT+iI7L5L8fSYJUKwRTi0nGSRNUqhSyu6aSwA0nDnPoIvUx2mnuOw7yVQ2nenfIcmwPj4kNnIkMsY32ehyRotRQAcjYS/C5mcUVhYLkgKOxaH3N+BdBwYg4j80K/CauYCHiY5twOxlGFjoKKppjrAKM3qYxA7ykzKsTrCqwUmlE1AHdSnUomrHzXQKx6WOApl2a4H11KwwNYkwbyXKByWvu6Hq3f3DBgFLpeEwIo9XC4WsxsKPilvVYwVHxyAodH61C3CDqBVhI+FW8dJi4phag8bSKYp2l1oxllFtfKs/W/bNY0iLj4vMYVlmPQYGwncFR6PfHQ82Qc6xem4xQtM3tT5Kwa29sFQeZ+Zi+sVCzuFvN03tcNyLE3fPyl980O6tLgabGid3OOOrK1hDgUtm+2egyV7XftHKMKFtnC9Xs9CWKpTvANMCb7LC34gvEW48G88lTD0IFyjQX5GgaQ/NAaaTKzgTFCUgNSkpIlhHMuiLYUzd8ZVPVUiUUALhCMpBI15tL dfqPIpqC s+34xCpBtP9jUvlMGdEFjcd9DGn8rcFm5MEEsBwdVG42AcVcJQd/JrYi3GK27E0rI1/VxYaYgjLacO9t3Jhm1p/HTnrdspHdDNMEhBlfv0RSOt/dZj8AnXbN/vaGGFC6p6hC3I2wNzHmMJsF4VtSYMkPEDc3jzYXjO/oMEuz7RXRZHlKuvFTjOh5BeNabnetbvQI2GrcP/tmUeXQsyeF3jXAko5SsPVU+JuNYqdU/hY+f6/r0vBud6L+fyF+mGyL13pDa/+juF+1++tw6KlrLqtGT+5ftjXx1OlQTZBahIj7UuPtafJEK4+UVSSr79dfWRet6+vz1+xijlqRizG/TMMaeCiIlXvJ/BFMODcVHm3Cm8zmFuiJua+GqRlHhHsl1aEV/ 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 Thu, Feb 8, 2024 at 3:02=E2=80=AFPM Andreas Hindborg wrote: > > > Alice Ryhl writes: > > > On Thu, Feb 1, 2024 at 7:02=E2=80=AFAM Trevor Gross = wrote: > >> > >> On Wed, Jan 24, 2024 at 6:22=E2=80=AFAM Alice Ryhl wrote: > >> > +/// A pointer to a page that owns the page allocation. > >> > +/// > >> > +/// # Invariants > >> > +/// > >> > +/// The pointer points at a page, and has ownership over the page. > >> > +pub struct Page { > >> > + page: NonNull, > >> > +} > >> > >> Shouldn't this be UnsafeCell / Opaque? Since `struct page` contains lo= cks. > > > > That only matters when we use a reference. Here, it's behind a raw poin= ter. > > Why is it behind a pointer rather than being transparent over > `Opaque` and using a `&Page` instead? Because `&Page` would not have ownership of the page, but I need ownership. We also can't use `ARef` because that has a `clone` method. One could introduce an Owned smart pointer and use `Owned`, but I think that is out of scope for this patchset. Alice