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 B2668C27C55 for ; Mon, 10 Jun 2024 20:47:07 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 346166B0092; Mon, 10 Jun 2024 16:47:07 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 2F5076B0095; Mon, 10 Jun 2024 16:47:07 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 195B76B0096; Mon, 10 Jun 2024 16:47:07 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id ED8386B0092 for ; Mon, 10 Jun 2024 16:47:06 -0400 (EDT) Received: from smtpin04.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 7D73C80BAE for ; Mon, 10 Jun 2024 20:47:06 +0000 (UTC) X-FDA: 82216163652.04.0F25D50 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by imf20.hostedemail.com (Postfix) with ESMTP id 4C0F51C000B for ; Mon, 10 Jun 2024 20:47:04 +0000 (UTC) Authentication-Results: imf20.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=fil56E3P; spf=pass (imf20.hostedemail.com: domain of abdiel@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=abdiel@redhat.com; dmarc=pass (policy=none) header.from=redhat.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1718052424; 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=LxiNEvx2Od2nkRp3Ia5+BRC8R4WpmCSdFEiRdP/JyGs=; b=ZHmO9n9SjWL/zVrwQ2TLjHDsWbTVCJP2XllGzPPUwOfm3SfqDO1z19JJGvSeP4QnPOHltm wtvKEbnn63fbBFRMwVyZ8aX/3hgfBsCUNC8n7XtZ9mLO/3Ic+9xuDGHbpyBCHVdQljGfrj 5TIKKenpguR5ER9QsMJMBNvsK+vQcH4= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1718052424; a=rsa-sha256; cv=none; b=zE/VZyvwy56heiHq5Vce+abWzSaqx0s52mxie4bx88t2ZwlXaLwdyD+oPERD9ivio/odHY LYJAGUmOcTpW5FFZfpv8pRrh7LqCWKXgu3wm46j+5oyuXcWH4OpZTIHskmc1Bsy+NpaSxU ml2UfBO8RSqrKpast6eCtoKiH8lnuKc= ARC-Authentication-Results: i=1; imf20.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=fil56E3P; spf=pass (imf20.hostedemail.com: domain of abdiel@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=abdiel@redhat.com; dmarc=pass (policy=none) header.from=redhat.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1718052423; h=from:from: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; bh=LxiNEvx2Od2nkRp3Ia5+BRC8R4WpmCSdFEiRdP/JyGs=; b=fil56E3P3ugYF4HzsaQcfhPFjc8Dbv1qdplEfPXig9Wz0yrgtytZ6UZD5NylBqyoH1KyNI 46ivMKa6vr6+Pj0/H7YNRb6KcHqIPIW8d1PhJkg2LykNlha7MON3RXlcw/ETKjaYQDUg8u ewkKZyHuTGUsHI846aRwAK0A2TtkfTg= Received: from mail-lj1-f199.google.com (mail-lj1-f199.google.com [209.85.208.199]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-317-fLIOjDIsPJW7visz2xxXPA-1; Mon, 10 Jun 2024 16:46:59 -0400 X-MC-Unique: fLIOjDIsPJW7visz2xxXPA-1 Received: by mail-lj1-f199.google.com with SMTP id 38308e7fff4ca-2ea892f8441so2237491fa.1 for ; Mon, 10 Jun 2024 13:46:59 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1718052418; x=1718657218; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=LxiNEvx2Od2nkRp3Ia5+BRC8R4WpmCSdFEiRdP/JyGs=; b=NLltdwoR6dGMS9ihhuZfNwo3ZMF+oRVEO3vNjSny/0cRHwRDMXKrPfYg2EXX8zuBPO PWOxR6s6+AIZoq/tfF2TbS9k0lTifa3a+ogU7qg8SwCUx2iZSFIvNWyUkAK4t3CuRxXq H1vYV7l33RJHYQtbj5im+pb9mNQen+G855p+/8+cKCnTQmf2bvnLCXmLE1KGB2txnxp9 haap/SVGE4/iVdyHwRc2IlhLMCU7qP29hBEwf3tQNJOCGhhibGPinHtBVN1xmFjonC1e px/V/HXZ6QvJx4fq/vLkjfEGT7HFaammOjMdvCXr6b5w0n5jiPRCYa/daqDnxaLVd7ia xnAQ== X-Forwarded-Encrypted: i=1; AJvYcCX6hwL+0wT8Uxjyla92zylM0sXd2Ya3zwsXnlXXsROfQfRoW6QVqal6AMuYg3FqdfQtXTJbDLv2Qrdu5ERTvPpcLlA= X-Gm-Message-State: AOJu0YyBlJclbl5LuY0sVZTVUvWW/bO3KXyh3/xPOcJUUOlpgP8thE3a 9VPNIH1RNP/radJqJqNhbvidTKTsrcjTy0XJDct7N57ixdDbNKBeBY6Sh7W6YVetcYmCR4yZeOt UgUyfui4eSXPiVOH5gSWwYFvtk7xHI3UtCy1/wQOUHoZYJd7p X-Received: by 2002:a2e:a7c8:0:b0:2eb:e505:ebd5 with SMTP id 38308e7fff4ca-2ebe505ee5emr34276271fa.3.1718052418263; Mon, 10 Jun 2024 13:46:58 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHLAjsaXc5BdwEtJmjiyy6QV5OH60ABPwmHSupwxu8PY7u/HPHzdfQDvJCtikV8xZ3ymgDwNw== X-Received: by 2002:a2e:a7c8:0:b0:2eb:e505:ebd5 with SMTP id 38308e7fff4ca-2ebe505ee5emr34276171fa.3.1718052417814; Mon, 10 Jun 2024 13:46:57 -0700 (PDT) Received: from [192.168.1.146] (87-94-132-183.rev.dnainternet.fi. [87.94.132.183]) by smtp.gmail.com with ESMTPSA id 38308e7fff4ca-2ebdcbff7fasm10900121fa.78.2024.06.10.13.46.56 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 10 Jun 2024 13:46:57 -0700 (PDT) Message-ID: <882a4ba5-b0ef-4c21-8167-e2949424912c@redhat.com> Date: Mon, 10 Jun 2024 23:46:55 +0300 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v7 4/4] rust: add abstraction for `struct page` To: Alice Ryhl , Miguel Ojeda , Matthew Wilcox , Al Viro , Andrew Morton , Kees Cook Cc: Alex Gaynor , Wedson Almeida Filho , Boqun Feng , Gary Guo , =?UTF-8?Q?Bj=C3=B6rn_Roy_Baron?= , Benno Lossin , Andreas Hindborg , Greg Kroah-Hartman , =?UTF-8?Q?Arve_Hj=C3=B8nnev=C3=A5g?= , Todd Kjos , Martijn Coenen , Joel Fernandes , Carlos Llamas , Suren Baghdasaryan , Arnd Bergmann , Trevor Gross , linux-mm@kvack.org, linux-kernel@vger.kernel.org, rust-for-linux@vger.kernel.org, Christian Brauner , Danilo Krummrich References: <20240528-alice-mm-v7-0-78222c31b8f4@google.com> <20240528-alice-mm-v7-4-78222c31b8f4@google.com> From: Abdiel Janulgue In-Reply-To: <20240528-alice-mm-v7-4-78222c31b8f4@google.com> X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Language: en-US Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Rspamd-Server: rspam03 X-Stat-Signature: dnahd3y5te8qzzd7mgr4duzimpciyrrn X-Rspamd-Queue-Id: 4C0F51C000B X-Rspam-User: X-HE-Tag: 1718052424-375894 X-HE-Meta: U2FsdGVkX18ngtlSY4mGsCEwaOTgGJZteleclvapqKGkgR0T/u5QzXWMtolk/XCA+NXKzsseiqlyEFAeqdReMtjzOD4m3NeSNwst75glA8skAXc0W++wRfO9NDZe05g8jsvFbXwdtroeLK6HyKch6ss7Jcwiaoi5cGOkqAePPwmqT9uodFc5M/zsKd1wQ4YW+ZD7O14NiuWzsqDKVSyU1zfKcJJaH7SbdivzlDpwF5mxsq0W7gxeNmSChtD4RE0gPrH2qhQJdCqq1H/KgJe7IBcJjrfHTaa37SBfNvolBXMUELu0lllsD1XF1mJCcwto3lNkJ6tboc73sEDZB+ROV6gVIwylgbJs4cJbtnjYnlVQBHgqrnPGDKI+p7BLL7tFWclBPKDaXOZseEQlgesjBdKzaJ3xM5QNhBMHbDhBEIruH0YAY4pQ/b8KIFYHA0VI+poQWrLEX+k1RBZipgit+kJ8jQ3CHWOwAPqSbAFxVh37jLgx+sbR6i+X1h9bLa5qeyjvILp5u15fFMw7Uysgqc89eI+W9W/oxlH6RdqbpZCYy+wdlaH4JKAkj36lMwcE4vLIYykvEq9U3aAHm6xQNJzXcYQhO6hRY/uMjYV1XSyM+b3AQfP3wL9IgXt2YrFcBEiB8UkEh2cLRJBlP8h5/BApEeXorlhpq70c4yYyRCfqLE2mIE7cLGqhK4UKqCExQPQmmQiZf7fXX64apj+FNoPWoMzPl/brY7GrX43sA0Z11bqj5SavQ2EfXwzPIofFehsFWxvWMyod8mPr3I4AT3sUji94ZGtr5MQSMF0zHYFpLiMZm2yHrtif2mlLxi/rCOb02aJQUBLED9OB5hKPO24X0PF8BNfjolIX9+I/HRdY23y+yNS/79+oSdZSceNsGXjUQuF4ZL3V/wbp5FVV/spEjtyqU4jO1hZW5YLwPeg859NXgTXj2V38rFxjKNPnw3r3/9UH8yLpky1+Yql tP+ixind 7eDZoDITc/7oojAd4r2kZK6AI1MuB2N/j7Z5oFCbhr7WQwzfuFNKbLOEoOv/8haa8f0MZKnJFLEpu6aeCN6m/akdWs53WnHFk4e9iwMagnylOJDQAu/H1kmaiD32QfqbuUTfN4yav547vAf6HkieFKF1xyw9VBTXjtMsRcaVMNfGlr547Fg572Sb/8/prE7MzslbWh9UPv4v79w7Xk0FtDzeLicLZGJLKaoVQLtHbn/C2VTF7PVMJEkFkUg9Ht9p1HDlV+07l9dKRBD/6ePkAxqZZ9+XPAg7veHNl1yciO0EePDUTR7WNaovc+SObBMPc170oxR7P90JJF0a98eKbKm0qRnVqbzsRJxKN9sagydaEe9jaeLHsl+h08x+r4igujlDZvTWb1euNBTjyASw74OtbOVDqyOuwB+m8WBES90KKAcnCZZwNVx+x117cOLJuefz/xP0AFNdFXw8zjISZPhK8XQZX/VVErYB9 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: Hi, On 28/05/2024 17:58, Alice Ryhl wrote: > Adds a new struct called `Page` that wraps a pointer to `struct page`. > This struct is assumed to hold ownership over the page, so that Rust > code can allocate and manage pages directly. > > + > +impl Drop for Page { > + fn drop(&mut self) { > + // SAFETY: By the type invariants, we have ownership of the page and can free it. > + unsafe { bindings::__free_pages(self.page.as_ptr(), 0) }; > + } > +} > What about cases where the struct page pointer is not owned or allocated by this wrapper? For example, pages returned vmalloc_to_page()? Any thoughts about exposing a provision to avoid freeing those pages during Drop? We've been experimenting in adapting this Page wrapper in advance for page management within the Nova DRM driver. /Abdiel