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 17EC5C3DA4A for ; Wed, 14 Aug 2024 21:08:05 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 872786B00B2; Wed, 14 Aug 2024 17:08:05 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 822BF6B00B7; Wed, 14 Aug 2024 17:08:05 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 711C86B00BB; Wed, 14 Aug 2024 17:08:05 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 549366B00B2 for ; Wed, 14 Aug 2024 17:08:05 -0400 (EDT) Received: from smtpin24.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id C686312119C for ; Wed, 14 Aug 2024 21:08:04 +0000 (UTC) X-FDA: 82452088488.24.32D32DB Received: from mail-40131.protonmail.ch (mail-40131.protonmail.ch [185.70.40.131]) by imf06.hostedemail.com (Postfix) with ESMTP id E8B9318000A for ; Wed, 14 Aug 2024 21:08:02 +0000 (UTC) Authentication-Results: imf06.hostedemail.com; dkim=pass header.d=proton.me header.s=protonmail header.b=lLuF0AjM; spf=pass (imf06.hostedemail.com: domain of benno.lossin@proton.me designates 185.70.40.131 as permitted sender) smtp.mailfrom=benno.lossin@proton.me; dmarc=pass (policy=quarantine) header.from=proton.me ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1723669587; 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=/T78YC5XxPNvA0dz06ctY6MEt4K5BQBSyBeL9OVQf84=; b=v4x9a9SuRa30XHBZyBHmj7yQ8K+rGgY2gMvS9nC3e57JkKH48bBqfgfnyiXwvtXmjRhQTd PlfU+IRAzJP4BAWL04EQR2PO2HX6L4EcmLncP+5OBDq87OEWiY1r7F1xmuIyyIRZ/ZHFZl X4IitMcj81Hgoz7jLXu4pIubjNoFUQA= ARC-Authentication-Results: i=1; imf06.hostedemail.com; dkim=pass header.d=proton.me header.s=protonmail header.b=lLuF0AjM; spf=pass (imf06.hostedemail.com: domain of benno.lossin@proton.me designates 185.70.40.131 as permitted sender) smtp.mailfrom=benno.lossin@proton.me; dmarc=pass (policy=quarantine) header.from=proton.me ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1723669587; a=rsa-sha256; cv=none; b=McHmiMbB1a9WJMuSkv6GF5ZJZp2LzlPCcYmSD4A/aXK1matTyfRxEMDfirk+clmUAmrEz4 isxtFrD+sn/nJ3DQw8AHXg2OM50LeyW3uYKeGr9jI1EBtExRYRA5MACp38eUVB2ucU536f ++6UqRH/nAbrZNPRmddIcJPqIsd973Q= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me; s=protonmail; t=1723669680; x=1723928880; bh=/T78YC5XxPNvA0dz06ctY6MEt4K5BQBSyBeL9OVQf84=; 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=lLuF0AjMRLi8OdnJo+2CJg3G+el/YWp8YqwX9Sy8RyvYgr6kHBzQDuBqTSAVW8Re/ 6LfEXwQAznX0glGq5js137HwkOSOs8/ygnres79mxT1cHoz2n3j7b/Eay3JGsVUqPm 6q6q9M0YEzIktKFEpB5Ngxej28BQ3HU2xxwGn31f+ky39sm8RT9vpKYRmk9/S/IItp quKuQoe24rGKDmeZdX4lKH3Sn3EhftL3Cix+hkRVSj0gpH5CiefozewsR21Wh9Lvqs GloINQrD6YBa0VhKULG379Qf2xGZm+J5O0JRUR9i2kybIH2Nds7dKleDxWoqcW0qsP cOnq71Is2UM2w== Date: Wed, 14 Aug 2024 21:07:53 +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, 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 v5 04/26] rust: alloc: implement `Allocator` for `Kmalloc` Message-ID: <00c48c22-52c2-454b-a5c3-15b6b1caa0a3@proton.me> In-Reply-To: References: <20240812182355.11641-1-dakr@kernel.org> <20240812182355.11641-5-dakr@kernel.org> <17bcfe21-1af3-4247-98d1-480944be400e@proton.me> Feedback-ID: 71780778:user:proton X-Pm-Message-ID: 1f2fff18e2a76f9c5fa19ed93ecc72e03decdf4a MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: E8B9318000A X-Stat-Signature: o46497gfmjrp79f1debpzz7d46w9h4hq X-Rspam-User: X-HE-Tag: 1723669682-2787 X-HE-Meta: U2FsdGVkX19sCKicklv5WvnIuGB3ZbMPRjXzb2UDxqpZldvsrjan4AB6e2MgSDIWD9jzzuygxCG0GJK5ftH8VTJ9LeFdMaC5T62PfE9UfRXD/lcmfADau5XsAqsOMlFW5QgH5WcurDlCMgw5D5yQXk6Yj37I9rIGo1+Utl0aUzxfNMTXw8sXT6CJ5dwFtBr9Z7/rmMdMhRc3dgUU/95g3kP64UWi5+Ew8FMkrWPeAf/WnLWNQUDorPZNS2COi3NObORpeUmZ/7OfF9eRHofQh1XXuPKedtEwApoVfJpEpoCVq0shCpCA0GpkV9nUqPKM53o+ddrIRGSRLIyR/y+ak0QQnBDg+XStTM3daHvUXVxZ5gVjg5hg8K1awza9xctL8ls4AP9YhKFfWkNe5sYQIE2F7Zn2mYqZdRwRUn1UiZJnhgYW1oBVSWTpjuf/je7liF4s/9UUdLtxJYEhmDtVpBKAF/V31FO97yx2mIywEjwpln2flOsnl2P+G3mfkoSMRe8fp0AV63H8NNXmUIrXL+4WEFDNBOGHQ+es2dVUi41K/9mHg8InGK25X0iTndnVMnZiaUms60Oi6doYvLKHM6jVEmfX/91gJrDraflug9JlbRfsR+6bL6r61g6AwGENad9T9awtzWrA09aokRbt9RiABjhjcB6i7pz+kxBP4QQhZnQmvenLPDjrss/Gkwah80uQ+zZQ3uf1VsOS+/WlwFOYr1M6UmRUV3itPjy1i+/CrTCDvB0H/x/BITE6l1gV1j/ahypTYVnLfSkayYOEKfv2YaOyiuuQjEWEHtH3OPNFxZvoHsww4/K33PfoLTyZg980M4Tznig0RxlUiOTm/xQ5xdOwMwNxrthvvBV/YyEJW5rBCq7lnfK4YGyTzCoevM8Gr1HrrczclWpPnrdHRSLE6hd4WPz4CMhC9jY6qW1RWB+Ern0mQgVYnv7I2PWNwqRnTEY0MGfPm0NWHUY ijuV41c7 a82fZstEQ6ESfeEOpZFu4XRLyB9RhY6Lt6KvvXGEU+uH9T9pJ229SUO7/QhMNFfUJLlawy8D2Qi4J6j7eLWylBYRSssDrCwwQ4IcG3hS/gDIR8uCfSlO9V3Eu3zvMCS9ZKfSA3P+/vSEt7LeKwA14KPzlCMD042kPUPG1+ryH4s1rzBelkwKBsSSGKBwkDaE98FyJ4nGVhnZ6xgjRyAHAlg1SMkHIpKtMQ0PTrjEuFuxmuXMMUZRwd9ADIiCV3JjC8rioq9w2beq1b0gWOhvnFpCZfKGjEr1GryWf+ZQl7FHsEoSIZf1zlw0Uf97WzGT7Px5cWWhXTUDwHQCTp1rTUFefvL5xurbsqJ2LXRPapc0C5lc= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000080, 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 14.08.24 19:15, Danilo Krummrich wrote: > On Wed, Aug 14, 2024 at 05:02:53PM +0000, Benno Lossin wrote: >> On 14.08.24 18:59, Danilo Krummrich wrote: >>> On Wed, Aug 14, 2024 at 04:21:38PM +0000, Benno Lossin wrote: >>>> On 12.08.24 20:22, Danilo Krummrich wrote: >>>>> + unsafe fn call( >>>>> + &self, >>>>> + ptr: Option>, >>>>> + layout: Layout, >>>>> + flags: Flags, >>>>> + ) -> Result, AllocError> { >>>>> + let size =3D aligned_size(layout); >>>>> + let ptr =3D match ptr { >>>>> + Some(ptr) =3D> ptr.as_ptr(), >>>>> + None =3D> ptr::null(), >>>>> + }; >>>>> + >>>>> + // SAFETY: `ptr` is either NULL or valid by the safety requi= rements of this function. >>>>> + let raw_ptr =3D unsafe { >>>>> + // If `size =3D=3D 0` and `ptr !=3D NULL` the memory beh= ind the pointer is freed. >>>>> + self.0(ptr.cast(), size, flags.0).cast() >>>>> + }; >>>>> + >>>>> + let ptr =3D if size =3D=3D 0 { >>>> >>>> Why do you do this check *after* calling `self.0`? >>> >>> Because I need `raw_ptr` in the else case below. >> >> But you can just return early above? I would prefer the check be done >> before `self.0` is called. >=20 > No, we can't return early, we need `self.0` to be called, because if `siz= e =3D=3D 0` > we free the given allocation, if any. Oh yeah of course... I don't know how I arrived at that comment... --- Cheers, Benno