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 E4E49C3ABAD for ; Sun, 15 Sep 2024 21:37:50 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 301156B0089; Sun, 15 Sep 2024 17:37:50 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 289C96B008A; Sun, 15 Sep 2024 17:37:50 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 12AA06B008C; Sun, 15 Sep 2024 17:37:50 -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 E9A446B0089 for ; Sun, 15 Sep 2024 17:37:49 -0400 (EDT) Received: from smtpin13.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 5EFCAA0125 for ; Sun, 15 Sep 2024 21:37:49 +0000 (UTC) X-FDA: 82568285058.13.7C11158 Received: from nyc.source.kernel.org (nyc.source.kernel.org [147.75.193.91]) by imf28.hostedemail.com (Postfix) with ESMTP id C0752C0006 for ; Sun, 15 Sep 2024 21:37:47 +0000 (UTC) Authentication-Results: imf28.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=PQcgC3A+; spf=pass (imf28.hostedemail.com: domain of dakr@kernel.org designates 147.75.193.91 as permitted sender) smtp.mailfrom=dakr@kernel.org; dmarc=pass (policy=quarantine) header.from=kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1726436123; 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=nBqbR02KYzgAJ/T1Skl17dK6d00KcZVtN/aDoK174j4=; b=vj8A54OqxTnWFcJ4hr4hOsoZMpVK97cyuHV4jgZxw7mD5fOe8YaeWekbYdPIyzyzZFcoLX wNGPmmbMGqWnHs9Q/7XoDyhCKsvIYNzuuwogOu7Z9frcg1kZ55SxxZiVIkPcT0VDfjwcb8 uzTxQh5w15DamXkwQhq2fXGcijKqhro= ARC-Authentication-Results: i=1; imf28.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=PQcgC3A+; spf=pass (imf28.hostedemail.com: domain of dakr@kernel.org designates 147.75.193.91 as permitted sender) smtp.mailfrom=dakr@kernel.org; dmarc=pass (policy=quarantine) header.from=kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1726436123; a=rsa-sha256; cv=none; b=Gwabsbrk0TJz0+RPLSQe4D3tqkKjcIqYsA9a2xuOPAC+pzKNFHDeD+kTO6Q5nccYvxmM9D DcXz9s8akURjgStt+scztxUa76PErwiWcwY0HgF5FXGuaAWF5bPXGGqtz85qfLA/QF2qRf HGB/RvVk3QvJ6QDkVPqpaRB5QGXR5dw= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by nyc.source.kernel.org (Postfix) with ESMTP id ED41DA413F7; Sun, 15 Sep 2024 21:37:38 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id A92E7C4CEC4; Sun, 15 Sep 2024 21:37:41 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1726436266; bh=cFetZ0+pK2Z2v93rcqzXBuQ7IfsY3UoObSRCY2KoNlg=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=PQcgC3A+5UyJfuiIQUzVgwzNMgU/GY/avkfzGcA4LaF2kdN0F3yUuBlxab5fEvQcl 9XiIHi0tnp2vfwLrbQxZ+UwfqqXQCNsn5+nyi3PVBxs/z+YiLhhJP08V8WtgIyr3wg u2+UNkrLtI/zdTxgWuviGikO+pmx6hQcv/3tBFRW3dqMFTczaJnhSQTmhzjdkERJPh eGkUbQcdUfPqsih17gTrq+jnkeKjIkDF+x9BICgNfW3mRJEcJ/jGUIOxw5+ZMIKoZ7 DF8zAONumxFHNHB9SV2WTygew7XC+VHhGAU4PzRoGVKxbvp/jZA/+H9KLu1szW4Vf/ 5rySmtahMopIQ== Date: Sun, 15 Sep 2024 23:37:38 +0200 From: Danilo Krummrich To: Gary Guo Cc: ojeda@kernel.org, alex.gaynor@gmail.com, wedsonaf@gmail.com, boqun.feng@gmail.com, bjorn3_gh@protonmail.com, benno.lossin@proton.me, 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 v7 01/26] rust: alloc: add `Allocator` trait Message-ID: References: <20240911225449.152928-1-dakr@kernel.org> <20240911225449.152928-2-dakr@kernel.org> <20240915162813.149e21f2.gary@garyguo.net> <20240915202242.7a16b3d3.gary@garyguo.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20240915202242.7a16b3d3.gary@garyguo.net> X-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: C0752C0006 X-Stat-Signature: h49ci8oybpfbn5at34ptzkgfj4xm1aio X-Rspam-User: X-HE-Tag: 1726436267-503857 X-HE-Meta: U2FsdGVkX1/zjgAtMtjyG9EynHC45eDdEr6G4cUPVtWdHCopdOAPUwYgDaBkHmorY2y8reXtKV00IVdgbsxnmnRAHsbpYfrz4Wqs+lY6VO7UpCQqE8v0SY4fwn12D8YdG4RYsXZBxlSFClkTxK9ElszfMipr776r78ppgzXc6V+TzLLQrX+VcMTCawZOlPzwvjz1g8RE8zrPHcDmuAIMGqxOC9qO11k500P30L4Rq5YsAdXpumZjHJ1sZ00YA1m+8cNcE/TrRm2Vd7vKPvcPDo/PawcG2UfcjFG13kUlOU/I2ODqDH+nbDYzims20RRtul1UBGbnogxyA//DfvIJs5vCWNgs+M9La1a9guqice7rW2Lh+l0mRJfKk+ai7DFKjVc9p9NMcGhgRRbgWuip1nsiwU78QBJydM3bnvG3Cd7g9475dBDdmoZFwSMmqZxWYz+wjLS+PUUy1Q4iz85CZiYXYgdUn7pIM9NvUZKfjQiDPBLfhHcZhIVtayjn7TARC0a/CVzvyK43j2NcmK809yWvvF5GJ6W0DKkJsy7qXMnye2llLqzBBWxfiGm4sJotabbgILiMKe25SqgPoJi4MgrsEEhv4p4kzreICsCv3lbacqZC/1bRM7ADv+lkSkM9P7iUa47PXxjbzd1VzjfzcJHODi09Mh0RxWVg3XMLP40wnnSXlr6D0/wV3JHBYngK3+AgJeeZkIGJR7ZgSKlhTQzTx2d4a2hfOUnEwWlVTDzOnx/vKWHBc1h319yCuAfN8qGp9XraQzhNPUMJrac59rAxgHFsn3rvdiiuADsCLPbwWdcNYzx6scXMwxfV0yodIsFcMUcZegYxqQTrSRH3ezTJ+jxFtpMpudWs/2eU87+tkFrVhLWHtl4kiOtN1kui0nfifuQLGgFdHxSFunfL7ohA1A/EpIfEu41ry+Xz32lLwtwO0JPZRnMfPfpyee4kEpmfkKOHeYNF/jcuxbc WUXGzgyO eaDUEFIPGmAxAXQQffsQJBJ5XikCULUt2FOP7Xrz29d929Y8cOd6d8LUnynkoW2gSFR8SMZvIIk/MB7kZD0FZU/S3HiqFzDmeu1l5iKxkFTZjzvGNzPUp+LKDw7DsxYDimXwEm6FCL/0mRgaLXwThxS1bQyypnkmcCONtD5nGpFvCj/GTmJJ3FTer6UQMhOeVhSAYSMa64c4VSOV91QYGxx3AkCmulHjDcBw7g91Qh2j87GHXBXFRCdmI03Cw0BkPcnSeZ1X6FrakL2/T5RRS5lwYfn2zctHVVL357KF5J0X9TZBNawPE5kFn+0gLWlzBjImNTgpdqr3ZcyvZE3zMSUX03Xy64F8h7MQmPsBCrnAL1yY9Gkgv5iC/cg== 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: On Sun, Sep 15, 2024 at 08:22:42PM +0100, Gary Guo wrote: > On Sun, 15 Sep 2024 19:02:40 +0200 > Danilo Krummrich wrote: > > There is also 4. > > > > Let `alloc` and `realloc` return a properly aligned dangling pointer for > > `size == 0` and don't accept dangling pointers in `realloc` and `free`. > > I'll consider the API design to be bad if I can't pass allocated pointer to > free. If caller needs to handle ZST specially then we might as well > just ban it completely. Fine for me -- I don't see a need to support ZSTs with `Allocator`. I think its main purpose is to give us an interface to actually allocate memory. We probably don't need it to be a "dangling pointer generator". > > > And 5. > > > > Reject the combination of `None` and `size == 0` entirely, as earlier proposed > > by Benno. > > > > I'm fine with both, 4. and 5. with a slight preference for 4. > > > > I'd also go along with 1., as a mix of 4. and 5. > > > > I really don't like making `alloc` unsafe, and I really don't want to have > > `old_layout` in `free`. Please let's not discuss this again. :-) > > I don't buy it. > > Your argument for having `old_layout` is so that the caller doesn't > need to care about the size. But as demonstrated the caller *does* need > to care about whether the size is zero. > > Our previous discussion doesn't cover the particular case of ZST and > you said that it reason arise that we need this extra parameter, then > it could be added. It feels to me that sane behaviour when it comes > to ZST allocation is a very good reason. I don't see why we should "optimize" the API for creating dangling pointers and be able to pass them to `free` (which does not serve any practical purpose). I don't want to add arguments that are meaningless for the actual backing allocators (such as Kmalloc, Vmalloc, etc.), only to be able to generate and "free" pointers for ZSTs with arbitrary alignment. Do we even have use cases for ZSTs with other alignments? > > > > > > > > > Best, > > > Gary > > > > > > > > > > > Reviewed-by: Alice Ryhl > > > > Signed-off-by: Danilo Krummrich > > > > --- > > > > rust/kernel/alloc.rs | 112 +++++++++++++++++++++++++++++++++++++++++++ > > > > 1 file changed, 112 insertions(+) >