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 E94C4C3DA4A for ; Thu, 8 Aug 2024 19:44:25 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 7CB5A6B0089; Thu, 8 Aug 2024 15:44:25 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 7557A6B008A; Thu, 8 Aug 2024 15:44:25 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 5F4EA6B008C; Thu, 8 Aug 2024 15:44:25 -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 3E3F56B0089 for ; Thu, 8 Aug 2024 15:44:25 -0400 (EDT) Received: from smtpin26.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id B2E061C5326 for ; Thu, 8 Aug 2024 19:44:24 +0000 (UTC) X-FDA: 82430104848.26.83E22FF Received: from mail-40133.protonmail.ch (mail-40133.protonmail.ch [185.70.40.133]) by imf30.hostedemail.com (Postfix) with ESMTP id F203A80012 for ; Thu, 8 Aug 2024 19:44:21 +0000 (UTC) Authentication-Results: imf30.hostedemail.com; dkim=pass header.d=proton.me header.s=protonmail header.b=Rx1gMVYp; dmarc=pass (policy=quarantine) header.from=proton.me; spf=pass (imf30.hostedemail.com: domain of benno.lossin@proton.me designates 185.70.40.133 as permitted sender) smtp.mailfrom=benno.lossin@proton.me ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1723146253; a=rsa-sha256; cv=none; b=fkSLAQWkvFde/XtgjKb2Arh4RjeBfRw1EThJFYW5OkYE9a+mvV6xskl4fDtqwn5KLBb+xG z0jYJMgiaa9o8toy9p334IP8zOFJyqJJfq05FW2PwH75A2g3DJEeZC8S+tB54xT4gaGIat Gt8jBUA73OsKZ8BwFdPwAgxMMPb71Cg= ARC-Authentication-Results: i=1; imf30.hostedemail.com; dkim=pass header.d=proton.me header.s=protonmail header.b=Rx1gMVYp; dmarc=pass (policy=quarantine) header.from=proton.me; spf=pass (imf30.hostedemail.com: domain of benno.lossin@proton.me designates 185.70.40.133 as permitted sender) smtp.mailfrom=benno.lossin@proton.me ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1723146253; 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=lAr0Z9Q64iaHBte2FBu5E58VU9jdd81HnbL+G/DFjqg=; b=eZaot6CQZUKfkhzTxIEVf9YDKa+9F5MzofwKQ+/cHw1nViUztBRuzD/TOhwS3Raxe5FaXD ANk+Shm2mzRch8Nm0FwjC1H4ueq3cMvv//kISjGIijyes9RZ7AmAE3rCzR+HfBUCU7JYI6 ZvpwjVUaCnokmBnjStVg0U/OCGdsWdM= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me; s=protonmail; t=1723146259; x=1723405459; bh=lAr0Z9Q64iaHBte2FBu5E58VU9jdd81HnbL+G/DFjqg=; h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References: Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID: Message-ID:BIMI-Selector; b=Rx1gMVYpTi3jPobET6jCnd0OY9sTVE+7He2/PWK2L64dBqzDsxBLJsHhi3Lv06UEQ eBn7VpVidhNljGS8N0tX6hma5b++7+l3z37oOIWJ1O1wyNoi5RWYpytGA889pjZier ffV6FShQQjhMB6aZMoOP3BeYApKsUBicuMMC6iy3YjrZPe4qUT2bVgkVInob8jbPrQ fR4tmHWy9UVB/pntgWJWMiZNzDGUfX2LudW0DrtTBJSZnVjvKa6Bi63hnZneebFM4G RU6MmG6xhqmTB2xCroYL13EwxS4bWfv3hZDH48+rVUHjILDYE9s3OxbB9kK1ubjIyT ewMWw4Qa7DUOQ== Date: Thu, 08 Aug 2024 19:44:12 +0000 To: Danilo Krummrich From: 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: <42e37b4d-000d-4077-ad28-bc8660890b72@proton.me> In-Reply-To: References: <20240805152004.5039-1-dakr@kernel.org> <20240805152004.5039-10-dakr@kernel.org> <012f5a12-2408-4658-8318-55fa8d4285e1@proton.me> Feedback-ID: 71780778:user:proton X-Pm-Message-ID: fc2754af04323626804628546a03721ca89db691 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Rspam-User: X-Rspamd-Queue-Id: F203A80012 X-Rspamd-Server: rspam01 X-Stat-Signature: rqtcjhnhz7zxbcrrbit1n7ocek6y1mc7 X-HE-Tag: 1723146261-44190 X-HE-Meta: U2FsdGVkX19H3PaVFV1AvPnpJuNi7eatxn0I5gTfEs19cUznaawsc516Q6QHDy/Pf5uQHgAxYf8yR+igqu0KsWULJ/c02HHKB668a1iS9fcf8gjrWndu1IzwWtUF7fSo+Kc37qYQHx0PTU2zXUzp9VFgvEt1wOH0tazoBJw1ytirIn2ICFWf9rYB9/OOrS6pSvgYJ9CEbqEUNzuXgpsDGxuPGGaq7VLBEeXhVEWOT91AYoKrvm3SLj5TVpmprIDPKnah0R/mNbhGjKmTkj44zSu1B5KAF5/eLD19MPZ3T7PaXXqfNHogMfpYdnFlMUFJd+trIrC/y7Ws7qHWtF3WYBsj901qY2sxr0WWzQlp0OcIRp1mWCc81fT0y4Zw+oGqwISFATP4LHuELFMGZJhXLcSCdAJXTdeR8lrpbf10ML49RGolR/fLzeeGr0wJ90GhQyp/6wsHbDI6n+U41Xx8f8c/YL/cSyULLkTT6yYdqmMu0aRx5HH8r5OBFM183PkIwU8p8FTQ7BbdRTneXzNHqb5Sw9rAgaaq49oZpNmL1TCukjwjt/b30df3adbyBxQCy4VkelU2CgTy/W/uwSfhM9fwv3S2OB3Qf1Wm9wph/mlbPaNwME7guR2JbJYLXPVwtObGPtxtlMqe1SYGABu3NWhbEtd510A9/JPDsUSXTtAurg6yomtXGaRTTdx9JdOSsYGpw1zoI294YlNPXEBaAtYlh/IlSV80Rpbm5QyXLAczt8HT54LPZs21AC1VMqicOGmOVUcLn2hc/BOsa6JIxRQF+sPPsK7WOT+oJ5HTuXOCMHZBp7ltj3iBtZBtOeAyGnWywhIbQRHybbDW3V5uk/uBp5UiCGIfg9LwN0LqusnrVY8MKLhJzAzPAUc6LV6Ac7yxgdczk4UJMXfJqDmrUN3To2mbHCuHaaLTzEs/XI9UJsFeMuaKGFk3zFYqK5vAhH+97nJz8bqgcUU1F6u QalfFW1w dcUjVPEtQNapVulVNoRVzPF/o5nTEQxVCV2bXSjx5fPIuCKXVbDzAcAfJuvZN59huw+w4HJnHcSaivuzlH1ciOaXy1Ld1YworlYXapsdorQGO+fIht5mRUBUOEMfuq/w85NgJZjZhhUkE/PMurlI29nd5A1muybQ5IYHtWKziYbU8Et7nHi/bN+TVjFGIrrolcRk+B6IN648sWfKERDPSl8hao0ESTb++AtFSoJfRYMpM4ws/Pi3idSmCFXqC0DZV8LqKdNwlK5QnWmnZg8X/ywyKwloR8soCWVD4kRb/DDWcLBFwtj94mZxUdkvtdSTDZQ6xJvWnX8Tko2EIjw5vj95iOEUjetuy4W+D+v2DkmG7fQSA6bkix/loMFJT2YsTjBqFmbagguPmTGN1/Yv2G7X+Zk09et6AQxq4 X-Bogosity: Ham, tests=bogofilter, spamicity=0.002540, 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 08.08.24 19:44, Danilo Krummrich wrote: > 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 =3D self.0.as_ptr(); >>>>> + >>>>> + // SAFETY: `ptr` is always properly aligned, dereferenceable= and points to an initialized >>>>> + // instance of `T`. >>>>> + let size =3D 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 t= he >>>> let binding below this line) >>> >>> If we ever support non-ZST `Allocator`s using `self` would not always e= valuate >>> to the correct size. I think evaluating the size of `T` rather than `Bo= x` is >>> the correct thing to do. >> >> I mean use `Box::deref` (that's what `&*self` should do), you don't need >=20 > Actually, this must either be `size_of_val(&**self)` or `size_of_val::= (self). >=20 > `size_of_val(&*self)` should indeed resolve to `&Box`, right? Oh yeah that is true, good catch! Here is a playground example [1]. [1]: https://play.rust-lang.org/?version=3Dstable&mode=3Ddebug&edition=3D20= 21&gist=3Dc439494a0582bb287232c7a05e21bd23 --- Cheers, Benno >=20 >> to repeat the same SAFETY comment when it already is wrapped by a safe >> function. >> >> --- >> Cheers, >> Benno >>