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 775E3C52D71 for ; Thu, 8 Aug 2024 17:44:22 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 0BBCF6B007B; Thu, 8 Aug 2024 13:44:22 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 06BA76B0082; Thu, 8 Aug 2024 13:44:22 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id E9C576B0083; Thu, 8 Aug 2024 13:44:21 -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 D138A6B007B for ; Thu, 8 Aug 2024 13:44:21 -0400 (EDT) Received: from smtpin26.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 7383D161618 for ; Thu, 8 Aug 2024 17:44:21 +0000 (UTC) X-FDA: 82429802322.26.70C0A81 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf28.hostedemail.com (Postfix) with ESMTP id C375FC0017 for ; Thu, 8 Aug 2024 17:44:18 +0000 (UTC) Authentication-Results: imf28.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=HgF7RJxj; spf=pass (imf28.hostedemail.com: domain of dakr@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=dakr@kernel.org; dmarc=pass (policy=none) header.from=kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1723138993; 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=rHC5eGFiuPv3ezFIRlvfK+JByAmFLwxrh9rxploENsU=; b=JPJUYjw9majWrPB+A/3IbP3WJwbo1prrRLDYow4pV6dO4bjMR0MohiEIPh/rgQHf2JMQOd nztbhUc8rTEMK3sw2yxJsd8VbNzMN0GFtIjxHE+kvt0/twxVnehGYvJNv0X5aIbVs4TFOi P/MMFy8VF1hKuigx38fRM+RLtt5haYU= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1723138993; a=rsa-sha256; cv=none; b=sBx0MrxlcbE+UsLaqGE6XoyMTwn6TydrPmK/sj7S5Zqmd96Ql7gG70PzUd31rghWCF4qQM DcEv85fzKUOQthQUgU4fr7T6ZE2w03il0xJRBvwfBqqrVbKd4Kh0aEuPS6VpdAXHHE+VcU qsiADLIu5MjuDzpx20X41kR3ZbyFzw8= ARC-Authentication-Results: i=1; imf28.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=HgF7RJxj; spf=pass (imf28.hostedemail.com: domain of dakr@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=dakr@kernel.org; dmarc=pass (policy=none) header.from=kernel.org Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by dfw.source.kernel.org (Postfix) with ESMTP id 78DA661544; Thu, 8 Aug 2024 17:44:17 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2DD12C32782; Thu, 8 Aug 2024 17:44:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1723139057; bh=/IoibKIEN2iPANCmt6FqmNCj5fP9Lkngw7sQEkFdwh4=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=HgF7RJxjk0vIZejK3wFDDxuzJKKJ2Wt7oyymYL/FEKHPutcjn0AGcacetSH6LZi9A 3RoPi6i5b/eNl/SLR7TMqo8K1qTwIlHt5nuHl1jEbDSd/AijcRosw+uzsRUHx4hXpd I8I+EUpqosQvN6dxu/Zh6i+CxwUNqTe0rSVs2axlJTAUl8873xLcroQzM8aiaqXz11 hAFQgISXZQg7FdoAuZ4X9sdxqg0JkT/rS9dGmyF5PlNvlmOFbeEaGvoHbRLMdlvXqX BAUmUQmRsUdITEwb/r1ns7lFKIm9aG7YfvHLB6M9OlTQgDnZVD/CaKf2LJhUKM1uqv qfgTC7z308BVQ== Date: Thu, 8 Aug 2024 19:44:09 +0200 From: Danilo Krummrich To: Benno Lossin Cc: ojeda@kernel.org, alex.gaynor@gmail.com, wedsonaf@gmail.com, boqun.feng@gmail.com, gary@garyguo.net, bjorn3_gh@protonmail.com, a.hindborg@samsung.com, aliceryhl@google.com, akpm@linux-foundation.org, daniel.almeida@collabora.com, faith.ekstrand@collabora.com, boris.brezillon@collabora.com, lina@asahilina.net, mcanal@igalia.com, zhiw@nvidia.com, acurrid@nvidia.com, cjia@nvidia.com, jhubbard@nvidia.com, airlied@redhat.com, ajanulgu@redhat.com, lyude@redhat.com, linux-kernel@vger.kernel.org, rust-for-linux@vger.kernel.org, linux-mm@kvack.org Subject: Re: [PATCH v4 09/28] rust: alloc: implement kernel `Box` Message-ID: References: <20240805152004.5039-1-dakr@kernel.org> <20240805152004.5039-10-dakr@kernel.org> <012f5a12-2408-4658-8318-55fa8d4285e1@proton.me> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <012f5a12-2408-4658-8318-55fa8d4285e1@proton.me> X-Rspam-User: X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: C375FC0017 X-Stat-Signature: 4btyhh9tu8g4zwdhhrarq61e3jwrqtdc X-HE-Tag: 1723139058-169539 X-HE-Meta: U2FsdGVkX1+AaeczUnkq9UhtVSzwA/a0b370QXOagBvhvRLZ0JSGJBDtR/7qL3G+CYdKP7J8i1OWtlc+pajKHsGmMEEsdAwkYxIVi1M83uxM3BGh2AIm7cyhzatLSD9UJadnSpKokpLmMGQTpxEjW6Kle8Xb+zebn6BvRpLsnm3aO9KfVSBgJFyVbQGt0Js3AdqfgBab4GOZsHznUkyp0SAYa8+f5RUKdO97dpULth49wNXGnxoBGDyqFHMP6DvBuyEiRRggiR21/VVNDVIWqI3VwezV/Dv1Olx6pInL7p8Hf3MHnT3XokbhHx+s3SpmQUKrRgaT0S4MBq/vqngCDaWcTwkGXIqftCaKNPzxvvutBmaPAEQegUuRYL/l3O9/FGUNj2P2KoPOqD6gfRpPLt5/BT8AmgFoufTiQJVkQZmF6zeLokxpVhUnSNG7EAlgtTd4ZaFA401a1vydCQePqM9axKrHTF3r/HCdDBTzUV4G30YkI+p6xJ2eaZtSMW1V1DkX3E/UZTTfkXdWmwu9Nj4fUx9YNe+cd0qBi9fjvZ1azT0MAiasg2pEiaa3oKk/6yoB9Iop/MEezdPTdoPlmOj25y6F9T1j6KSMjmZ31XUbP3aTo/kfdDrlcKN16MbS12ysTmUDmz26c9+RXe4etKikBHJT5j00uKgYjmPbXwh6NCYahbs2J8kNuiPTIaAA9foBoWC510vAqsoYvgLNPeqEA/G041rXfLAVro6ECrxtbmJpQ7f/bYZ6n7ng8tmFWkttPS64RXsY6GEzzZ9vkKxfu5mMsNBYAbn4lwJ3b+Cj8LXKc7fa2rgMyA6HNn0BV6HmFQKXlJ9EPfoizBa3iEr/G3S71cGn5ugwWkAuWGLXXM8idTlGSujXmJggEFWDe6nGkgQ6s+y4uyvmMPlmt7QEbMqqECWdDN3yYUihrDr8yaUYjb/MPIotcu4AD48Dv0UmktNkSudinHJOFqp 5HVMLX35 urUXIvkHyXQUGEyKFgw1e4LXRNQe/tj0EtBMtHOSMApWLYcyZxuUTSGZunCrsCIaxVpRJvqjAj+O9h95mmjjqXl40y+T+mbzA6CCGWmSpuh7CdKLNkAiDmPBbmCO8BlG3WoZ83LEuwE7CxXM9MLr+GG2Q3jdx+OgeGuj5P0MGg5Fsp/q+cMvmddMepz+c78GaA3w8ujYVAijhqpJla+C/vfnE9fBzDSKb2Bk7VFwloC0lWqfhUvSF5jMXjj5m3iMVj5ROo11VS4z/oasRtLEKsOPhOmknZ9E2TMUZ X-Bogosity: Ham, tests=bogofilter, spamicity=0.000106, 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, Aug 07, 2024 at 07:49:31AM +0000, Benno Lossin wrote: > >>> +impl Drop for Box > >>> +where > >>> + T: ?Sized, > >>> + A: Allocator, > >>> +{ > >>> + fn drop(&mut self) { > >>> + let ptr = self.0.as_ptr(); > >>> + > >>> + // SAFETY: `ptr` is always properly aligned, dereferenceable and points to an initialized > >>> + // instance of `T`. > >>> + let size = unsafe { core::mem::size_of_val(&*ptr) }; > >> > >> 1. `size_of_val` is not `unsafe`. > > > > Right, but dereferencing the `ptr` is unsafe. > > > >> 2. why not use `&*self` instead of using the raw pointer? (then move the > >> let binding below this line) > > > > If we ever support non-ZST `Allocator`s using `self` would not always evaluate > > to the correct size. I think evaluating the size of `T` rather than `Box` is > > the correct thing to do. > > I mean use `Box::deref` (that's what `&*self` should do), you don't need Actually, this must either be `size_of_val(&**self)` or `size_of_val::(self). `size_of_val(&*self)` should indeed resolve to `&Box`, right? > to repeat the same SAFETY comment when it already is wrapped by a safe > function. > > --- > Cheers, > Benno >