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 C102EC54E66 for ; Fri, 15 Mar 2024 08:16:44 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 0CB4C80103; Fri, 15 Mar 2024 04:16:44 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 0A2DD800B4; Fri, 15 Mar 2024 04:16:44 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id ED35380103; Fri, 15 Mar 2024 04:16:43 -0400 (EDT) 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 DE7F4800B4 for ; Fri, 15 Mar 2024 04:16:43 -0400 (EDT) Received: from smtpin21.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 9AF7F141119 for ; Fri, 15 Mar 2024 08:16:43 +0000 (UTC) X-FDA: 81898567086.21.228D899 Received: from mail-ed1-f50.google.com (mail-ed1-f50.google.com [209.85.208.50]) by imf24.hostedemail.com (Postfix) with ESMTP id 8052018001E for ; Fri, 15 Mar 2024 08:16:41 +0000 (UTC) Authentication-Results: imf24.hostedemail.com; dkim=pass header.d=metaspace-dk.20230601.gappssmtp.com header.s=20230601 header.b=iiN+Ygbb; spf=none (imf24.hostedemail.com: domain of nmi@metaspace.dk has no SPF policy when checking 209.85.208.50) smtp.mailfrom=nmi@metaspace.dk; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1710490601; 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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=G3LXo/8SAPK1qMap7q7cDulVLMuCk5g6x5WEmLjyGwA=; b=U+jvyxwdDYa5Folfsg1sEkQNn+FQlkrG0w6Ix5Cm34rFgXIIMX56wHtmYFNIVogHjYbPkn q5ryUnYLwv5KBvh+XXFpouuHCwzb5rX4YMBu+i/28q0TtZr1bKMoiJb6noQYuNwXc9c4/p xGYtTcTDcY1IIg55tT+rTmztj+6Hgwc= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1710490601; a=rsa-sha256; cv=none; b=8b6nbEpVomsf2OIpCd5kmOopNlaEO6esHzf+FrRPvJ5Nr/EQGMzjtAj6X9dLIvJlWzXTs0 hMzaTABqmOhFhph1DYS9UnlEUYiRTXxZ+mE3nUpXIcDIYo+akSLO/Y/S8fP1v2Jif042LQ lxV6Z/ymMLrTD6KY+OE/8NKoKcrdKmo= ARC-Authentication-Results: i=1; imf24.hostedemail.com; dkim=pass header.d=metaspace-dk.20230601.gappssmtp.com header.s=20230601 header.b=iiN+Ygbb; spf=none (imf24.hostedemail.com: domain of nmi@metaspace.dk has no SPF policy when checking 209.85.208.50) smtp.mailfrom=nmi@metaspace.dk; dmarc=none Received: by mail-ed1-f50.google.com with SMTP id 4fb4d7f45d1cf-56840d872aeso2012830a12.0 for ; Fri, 15 Mar 2024 01:16:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=metaspace-dk.20230601.gappssmtp.com; s=20230601; t=1710490600; x=1711095400; darn=kvack.org; h=mime-version:message-id:date:user-agent:references:in-reply-to :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=G3LXo/8SAPK1qMap7q7cDulVLMuCk5g6x5WEmLjyGwA=; b=iiN+YgbbQVjy8pDNmFpTgZugVLAlbVyIPLD4LtjScVm+O2duLGTc+N7NEw7LJRQFpv C5jeZcuTARL03Jhf7RyVCzhYMmduuB2WTyFN3u2Xtf7jHjGe6i3x3cTahA2Ab/akCFeJ DK99k9RhyuL3/delPLzgePo2C+TBt9EW6LpMzZg5OCSo1GiaDL37yCWZqhpMMTB8JNUE /iMQMPzZkI8CODnfIDs2Sgj6RRYgN+xnqUD4kaMHXyrGbfrCjpRqmWaeoT9kZVhdmZoW Cmf6HJz26dcqlX0ixqnTbcfkTDI+fKxiOvAVgjrtLfExLOkL/vvWN1blSctGqc5PurIJ qu6g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1710490600; x=1711095400; h=mime-version:message-id:date:user-agent:references:in-reply-to :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=G3LXo/8SAPK1qMap7q7cDulVLMuCk5g6x5WEmLjyGwA=; b=T/ZQcPKF7ZSjojrXZK8FmtCm3NNxN9WicJWRKOB6DU9Ep/+00qmj+ZE1OLtmyddoMd GUl7nQq9/CiOeI9LCgbYlxGBV6X+81SXCAoiSUuy0CG2qbYHHkLyL4jjS2OX9MOexyqc BcrCExWGvX5BrTzRg59h2Vi6oDd0FwhHHHCcDnjIFe7swmxDUJv/GYTbm8SpCsBXbsDv pQiNo+jsbCKM9VLLBEPPgt3pRwqtTcKYzH51Mau0yTluooGWyAmxn0FYMmBrkKvTaoKh 1cxWNDMQknig69k5b+y5X8er5W4rEODYNrQNmu5DZO34QIqFvP/ASGwivGbwWVasKGwP F5Bw== X-Forwarded-Encrypted: i=1; AJvYcCVsR/YFsfnYOPREpe02+k4I6tR/smJDia548NuHB/LjL4OfGPqGF+q5W4HnR6DOGf+ybcsYOsZ/uTfyKu5+lgDq52E= X-Gm-Message-State: AOJu0YzdjNPE18GYFXDI2GF+gXaCt5IObLItkrOsF+HwqHVT8nKp+dUO Ti+VlEe3SQQpU2+ROomXm2ect1oUJdITcm6APXOry0Du8em6GQF2DX70xsuf9OY= X-Google-Smtp-Source: AGHT+IG7Iq8e4QX5tNKzGQjmTkOhzLhVMQZNEC1/svRFC11/pvZWvj4VBzkScAqS1k2USSm5kMesMQ== X-Received: by 2002:a05:6402:28c9:b0:568:9e92:2847 with SMTP id ef9-20020a05640228c900b005689e922847mr2213502edb.40.1710490599758; Fri, 15 Mar 2024 01:16:39 -0700 (PDT) Received: from localhost ([194.62.217.2]) by smtp.gmail.com with ESMTPSA id q12-20020a056402248c00b005676dc74568sm1451876eda.92.2024.03.15.01.16.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 15 Mar 2024 01:16:39 -0700 (PDT) From: Andreas Hindborg To: Alice Ryhl Cc: Matthew Wilcox , Andreas Hindborg , 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 Subject: Re: [PATCH v3 4/4] rust: add abstraction for `struct page` In-Reply-To: <20240311105056.122734-1-aliceryhl@google.com> (Alice Ryhl's message of "Mon, 11 Mar 2024 10:50:56 +0000") References: <20240311-alice-mm-v3-4-cdf7b3a2049c@google.com> <20240311105056.122734-1-aliceryhl@google.com> User-Agent: mu4e 1.12.0; emacs 29.2 Date: Fri, 15 Mar 2024 09:16:32 +0100 Message-ID: <87ttl7rjtr.fsf@metaspace.dk> MIME-Version: 1.0 Content-Type: text/plain X-Stat-Signature: wuj96yizrngdfhcxkgakexow7ej65w1y X-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: 8052018001E X-Rspam-User: X-HE-Tag: 1710490601-872536 X-HE-Meta: U2FsdGVkX1/Eo5GtZ99XKFZYrNQoIPdvyzR+KpRE+eZrzzflhInijf8NSgaKWGRoPNCJ1sqNKYibI3VAWAVfO3532Gof9xV4bHSb5ec6tZY7xzz201cH+afjQj8jLflqVAmzxz0jcht/2iGH6zPpZ3IpMNrglejdLeHcsSqxIpoY457Fg8YrwkN2iYWJKx7K9v54EPaGsW/U9lkLZdfowKtBC2MXCoqy6UrA9BpqcZXSvL+ziRgX+1Nlp/bWh+6PP88EZNWq/47MGXd0w5JVQVa8ujuWEvfAqVSRd61i870FqoHKwDg1H+W6A4mUuMNPBmRsamhU7H6Pfj7vFHa5Gc5lbswhjFrYQsWlCvn7OWd68dSZZB/PWPIXvdpPoI/fbxv3Z4tP/Ui2o5QgNJjOi+4jL+qEN4SKQnChSamhfo7EwaptiXivf1XASD8j22gB0rj8fTdD1KJ+tE2UCVaui6uybSQucrUypZ9H9+oOo9UNbPJ5J482/ct7eQUSy6Sll5i6gs8+4iEMXMFuoOJf8btUHm+qGKcKuLFCR1SNoJ8UL/rBgBSDiM+2oPcExARHqP1/XWHiK0cYPznClzp6l9CNnQoR/36DfnaYq3wwmtPYkk2BqqDmECitAZGUBJf3grMG0M0/SzggE+63uSfcw8xGjuKvofGM3bI7dNYwIXz2shqYXcYVlu9tTR/syAXUl91QuBfUBkKTyTi2mMSCfJePoyCpJGp+WhW0i8BAPWMvHm/tQ0Tohq9oMMlVFXjbC+Z0GvgY/Fk9ldidVvkoP4AvMfpTRgxy84wy5da04zKRmj0AEPi0qROmoNtxktgM2NUTu3CbINqPALqkEq+Oqkl8fd/7Dva6gI3iASwlhbwEVKZPLTHDCmOwH1kh7ENyP2TSNje9x/sT/QG/ieL8dovmhaqw0KWgZYQwlFsCFGdO05MheEPiWKI57/RWArzyM14L9ELXqqJUu2qWzCl S49arPkP fNuX+DPSSuNVMVbLbvImp3WSk5aZqb9q7kAXA2+uduxDVI0njEkJgAP18Nh229gRUazlRqytXnTT1t0qTkKC1rOm/NiOZEWFEX6dfLTHuxFczXwQscQyB3i/OC001TQs0ERbbR/ncKw8XJO+XP80YJL542iRXMC7X8OFErV5sTbTDL9rume9V9nsfdi2IfkYEeL9l0QHjOrz5S4PdSAJtp3sJN6OMMFxvofBV2oOvRALFhLQioTJVOS0eUa/crb27EUu8kuuGs7xgsNfMQ/jyUCuC3YdEYJYyiOfOqdZT9uzOxHc26C/cUnevLU4m0acsscUKUMnfng9K/aCsi+1IJIGcAzdM+6EjWb+llY/OaS/TNbgj/l5ImYoZpoqS4BwRJ7rdGmA9ubR+pXgwCeKnAFzpEpfsNvuPTl7iHPeQ+G38MW034+WCSZ2ftN8JJCNMlpd3qpiVAPST1jR0HkPxhzC2XnBTdLONK5412INjJisW1a1WtXfYDxN5s5MpUTF185mYtYgxDHxbz3t9znrR5Wmqhw== 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: Alice Ryhl writes: > Alice Ryhl writes: > > Andreas Hindborg: I recall you mentioning that you also needed an > abstraction for pages. To what extent do these abstractions fit your > needs? Which gfp flags do you need? > I based the block device driver API and null block driver series on v1 of this patch and v3 should still be good for that. The null block driver uses `Page` indirectly through `UniqueFolio` with `GFP_KERNEL` alloc flags. I do not need to customize the flags outside of that. As an aside, I added methods to safely operate on the page contents [1]. `kernel::block::vec::Segment` indirectly uses this to move data to and from pages [2]. Best regards, Andreas [1] https://github.com/metaspace/linux/commit/e88f4dc928233fcedcb0afec40be9bc2f8f74e3b [2] https://lore.kernel.org/rust-for-linux/87y1akso83.fsf@metaspace.dk/T/#me6497ec69544efd21908f1acc6b3a1ab8b148ba0