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 035EAC04FF6 for ; Tue, 16 Apr 2024 17:48:12 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 35B196B0099; Tue, 16 Apr 2024 13:48:12 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 30AAA6B009B; Tue, 16 Apr 2024 13:48:12 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 1ABFC6B009C; Tue, 16 Apr 2024 13:48:12 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id F15006B0099 for ; Tue, 16 Apr 2024 13:48:11 -0400 (EDT) Received: from smtpin13.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id BA1B7160BD5 for ; Tue, 16 Apr 2024 17:48:11 +0000 (UTC) X-FDA: 82016128782.13.1E50726 Received: from mail-yw1-f175.google.com (mail-yw1-f175.google.com [209.85.128.175]) by imf10.hostedemail.com (Postfix) with ESMTP id 00791C0007 for ; Tue, 16 Apr 2024 17:48:08 +0000 (UTC) Authentication-Results: imf10.hostedemail.com; dkim=pass header.d=umich.edu header.s=google-2016-06-03 header.b=HPxISQEw; spf=pass (imf10.hostedemail.com: domain of tmgross@umich.edu designates 209.85.128.175 as permitted sender) smtp.mailfrom=tmgross@umich.edu; dmarc=pass (policy=none) header.from=umich.edu ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1713289689; a=rsa-sha256; cv=none; b=Z4YmYBzbieYfantDJX5y4eTQTexLU9pqw0CgmJkYEo6No3jGkHrJsfNdB36Cvz88DGIcfA otWWCzGgT3V6kH+NlhNQawiDXBXhjlu5knyV53jum6GeBPhzi0sb5FZo9aTyjDLbpanmLZ tGsHWRZ/A1bL+wWGbFWNwmP2r06Y+gY= ARC-Authentication-Results: i=1; imf10.hostedemail.com; dkim=pass header.d=umich.edu header.s=google-2016-06-03 header.b=HPxISQEw; spf=pass (imf10.hostedemail.com: domain of tmgross@umich.edu designates 209.85.128.175 as permitted sender) smtp.mailfrom=tmgross@umich.edu; dmarc=pass (policy=none) header.from=umich.edu ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1713289689; 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=cgxo59IYhnHPL9WU4YKhZaxzeo3fMP1MrECdS5RGdv8=; b=rUDxR35wZwKskvp1EEqusci8gwVz2WrgtF7bbT5VXjguJc9xtDPyhq+kZEGcTgifo/4+GU e9FqQlEQfRmsL/LSeI7ZZ4GRcQRp1YUoIjNpDQhMp8f9L8W43yQ47JkqjiL7CCFAOfBCqc FT+hlukwP5jD0ICXl2ovhF8sro+iARg= Received: by mail-yw1-f175.google.com with SMTP id 00721157ae682-61aaf71c495so32695767b3.1 for ; Tue, 16 Apr 2024 10:48:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=umich.edu; s=google-2016-06-03; t=1713289688; x=1713894488; 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=cgxo59IYhnHPL9WU4YKhZaxzeo3fMP1MrECdS5RGdv8=; b=HPxISQEw0b5nTFgBVulgXZBcFXkFzX3XO7uBmi+4iKfTqJ/MrlOIW4gn8hyEGoKpp2 O/8Mku7B3qMx/q1JmjwzPRN0s5CkqfRkvYtLve0m2g29MiujUvKUyIaay04yOxVVbC/E r3lyOc0TurjJHA0NG5EjuTjcbgdA1x4VeSCfegGa+sjS30Z1UnVj7YFnjGHiE4lc6MSC fGDWJCwl6uB5AI7NfcSoLcJ4pIdi5/juO1JIty8d9J4mvprsgoq8I9h5o+eZ/8PjWzF1 +VWqQITYPoslSv4cxkIPFYxYntU2BG8nP+c6zN0entXjBzVDZJldkGZXb69mKSD7EATh 4lhA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1713289688; x=1713894488; 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=cgxo59IYhnHPL9WU4YKhZaxzeo3fMP1MrECdS5RGdv8=; b=MMq6lXpdrgB0WRjbJVUmN2I+3npvi03ckyGJBh7vYAH2G8FUr7Q3ze4TLfGAYdR37T XuAfG3B5AiBpO4g/LfuSDwT6C/2NuUg2da7j9QSK6vqTx3n8G0z72dXTGPBLOVZslDVj 8NrgQmIeePZguabTZcn+ZpwkdBJboU54E+Bd/aCN/jvIBrleXTvrnu6ouI1E4NrTqxXo TPTnnNmPf1BPDZvjWWwOgPrVui9EONcs4OOHwihDNdSdzto4TVo7q/0k1UxdEdGQxtVM 5zPTWZ+SSHrP6EC5jmJJYx46L0PDFOVWsc8Yav1Isn5amuJ15CDkVLhaaHme6nZx3QUl YI9A== X-Forwarded-Encrypted: i=1; AJvYcCXY2Pl6sgzBZWJ230gAH+r+/4uWp3nRZOsFEkhjS/CtleoeG5mytELjDy7A4/BVGW1lOtznDwjXDH52sNroQ6gNOBY= X-Gm-Message-State: AOJu0YxC7j90vl9KlCo636gv15JB/uDQIzJai7/F3ghVLiMIiaT0q7E5 nYAdb/b4WG+CH14JmIcNrryuONERSOZR5wXHRDJGewsdff2EdOnap+2KybjIHV1gn4DmSJ8sz5E GMW8TKGQOdoxcNKHt7DP2TozMtqoQXAP4xzSp5w== X-Google-Smtp-Source: AGHT+IFEcewgx6K0H5JoHC0s7S4uCrcrKg0tuesPZ6/XjGUTZZkpFY+pctxrZr4MfL7ku3gK9QgVdIyhlEaUIc8tLro= X-Received: by 2002:a25:2f0f:0:b0:de0:d728:1b21 with SMTP id v15-20020a252f0f000000b00de0d7281b21mr10940224ybv.54.1713289688081; Tue, 16 Apr 2024 10:48:08 -0700 (PDT) MIME-Version: 1.0 References: <20240416095333.1108884-1-aliceryhl@google.com> In-Reply-To: <20240416095333.1108884-1-aliceryhl@google.com> From: Trevor Gross Date: Tue, 16 Apr 2024 13:47:56 -0400 Message-ID: Subject: Re: [PATCH v5 4/4] rust: add abstraction for `struct page` To: Alice Ryhl Cc: a.hindborg@samsung.com, akpm@linux-foundation.org, alex.gaynor@gmail.com, arnd@arndb.de, arve@android.com, benno.lossin@proton.me, bjorn3_gh@protonmail.com, boqun.feng@gmail.com, brauner@kernel.org, cmllamas@google.com, gary@garyguo.net, gregkh@linuxfoundation.org, joel@joelfernandes.org, keescook@chromium.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, maco@android.com, ojeda@kernel.org, rust-for-linux@vger.kernel.org, surenb@google.com, tkjos@android.com, viro@zeniv.linux.org.uk, wedsonaf@gmail.com, willy@infradead.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Server: rspam09 X-Rspamd-Queue-Id: 00791C0007 X-Stat-Signature: 5tpa7jt8f71817tnynjbaon9h6jyji7f X-Rspam-User: X-HE-Tag: 1713289688-783047 X-HE-Meta: U2FsdGVkX1/kiRvdGhYBZYh7HjZJzQbNpVhM1nyX7ZhJOBJECU4YkETPBac7NimIMudOAcKtLzdRRqMUuZ+7WfQN4VInWVawOigzve4DJAmNnnOut6WFw5e/fsieegqHiQMvncRsQpE2Yg9xorDTSWH+mpgwGeyU+CXFJ2r7g7fSDbNul5tjdDrWoTjRr1CYGQZ9Gn1tOjLpPEfg6czRoG59q6aly5d2GxOobxT8pbScT/LaILV6kXV//4yvCF7znQo7FtqVJvp5eqa1l9HJs0eFHlwZHHoohpeoQQjvgXiWKR2WpEvcmehJL+xkzwhEMbx3LxgcVSLFne+TPayFEDAsnBCrD01SxRCXOlvgjFAuqsgD1/XlURmtflIqAQLk8WaZYlXV8CfR08FGVPW2p0DVtrybd/eCaBVTzjbTOmsXCK49nrGgWmpvNIoMlhoKPF1ysscFznQ33o5eRyyz84GsfPv6Hk2f8002cHd7Ts2u/vuB9QiTa3RLX8rxtf61FrNNqSvhPVsieJMxMJLirGSBmgZg9dVrkDvYEemSK3QOMCm9v4KdlT5CQCyflvbIWJegcSQvY7Z2Nz3STynNlVhgp7utH3F6pruVzQfCWDBSw3iC450ILBcj82m3mVJ/ozgwhurjizRcei36QhNOUMsg9BE2qofO/rSwwD4bMulq24fMPn7jVkEj54biR9q8nIVDHH7VRdHK1U29iUzBECmNQQbpjgESFbd9bND583ryh2MHLipxJM4oOsUm/K4t5MGFV57ISe8OrSqllLtqfO4mewHlQiykKeWRD5t+buApc+ZnSAq+M1cdoXyMZUW/BVGfpwRFtgSZvgpAN/09jtvPwafwnOIwNs9sHCrMrRme/hmCgM4yIKB70GIv2ZlWgswhdRsH3+uDBbhwnNu35WJhOfud22pAogfFRxPOI/WjC/GdWmxfPxaMDiMJ/rHAQn7o9tziI3B33r4frYt c6a2vuDS D5e1cONwyTaIJE0DDFc8noVFhTN/R3mCBUuh3WgfUdJr3CX+khK9lP0FEQ548R25xDNLDcNP7CFltZZX8T8aoUighdXQ3t1RgbDVMrdqSKivwBaGtLfKJ0wwpo4pRbZPToKak/RPC0aIjwDgKonz7jXfRJ4mmTLLJtLyb9pqKXgYtFtmsJXzb8hWQJPwOV+ku/Tnaf+iNfTELvYnXZeAJvxjDgerXYK6t49cMFa9sBY9g9zRA9Dizvla+Z1PZXZGNfIQQHp34cFwxQPufea5F7/XWVKCAgnt9Kdn3+JBYWgCsF6B8Nx1y6tzSYzQN2VCTUpFf6pN5fEfzRqaloG2xQhB8riHhaPGkHyoE82x8rTijrMvjoees9fhl4Z/spO7YhfmySGsmAhKYCF6tffcO1wsKTP5FX/OCsy8s3S1wsl/6M+Vyw7oNqXyBaQ== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000287, 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, Apr 16, 2024 at 5:53=E2=80=AFAM Alice Ryhl w= rote: > > >> +/// Flags for the "get free page" function that underlies all memory = allocations. > >> +pub mod flags { > >> + /// gfp flags. > > > > Uppercase acronym, maybe with a description: > > > > GFP (Get Free Page) flags. > > > >> + #[allow(non_camel_case_types)] > >> + pub type gfp_t =3D bindings::gfp_t; > > > > Why not GfpFlags, do we do this elsewhere? > > > >> + /// `GFP_KERNEL` is typical for kernel-internal allocations. The = caller requires `ZONE_NORMAL` > >> + /// or a lower zone for direct access but can direct reclaim. > >> + pub const GFP_KERNEL: gfp_t =3D bindings::GFP_KERNEL; > >> + /// `GFP_ZERO` returns a zeroed page on success. > >> + pub const __GFP_ZERO: gfp_t =3D bindings::__GFP_ZERO; > >> + /// `GFP_HIGHMEM` indicates that the allocated memory may be loca= ted in high memory. > >> + pub const __GFP_HIGHMEM: gfp_t =3D bindings::__GFP_HIGHMEM; > > > > It feels a bit weird to have dunder constants on the rust side that > > aren't also `#[doc(hidden)]` or just nonpublic. Makes me think they > > are an implementation detail or not really meant to be used - could > > you update the docs if this is the case? > > All of this is going away in the next version because it will be based > on [1], which defines the gfp flags type for us. > > [1]: https://lore.kernel.org/rust-for-linux/20240328013603.206764-1-wedso= naf@gmail.com/ Great, thanks for the link. > > Could you add an example of how to use this correctly? > > This is a private function, you're not supposed to use it directly. > Anyone who is modifying this file directly can look at the existing > users for examples. Ah you're right, missed this bit. Thanks for the followup. Trevor