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 5F6C8C531DC for ; Tue, 20 Aug 2024 15:26:34 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id B6B7D6B007B; Tue, 20 Aug 2024 11:26:33 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id AF4896B0082; Tue, 20 Aug 2024 11:26:33 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 9957E6B0083; Tue, 20 Aug 2024 11:26:33 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 79C036B007B for ; Tue, 20 Aug 2024 11:26:33 -0400 (EDT) Received: from smtpin05.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 2BD1540251 for ; Tue, 20 Aug 2024 15:26:33 +0000 (UTC) X-FDA: 82473000666.05.0925126 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf10.hostedemail.com (Postfix) with ESMTP id 632C9C0018 for ; Tue, 20 Aug 2024 15:26:31 +0000 (UTC) Authentication-Results: imf10.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=DWys7NSB; dmarc=pass (policy=none) header.from=kernel.org; spf=pass (imf10.hostedemail.com: domain of dakr@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=dakr@kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1724167575; a=rsa-sha256; cv=none; b=fqekUWIhmEONJZkqVKOF5/vD5yQ+zylvcV7cot2NpJdxrDxzCLkqBFpUJfNwvfc+OKevQj sqCPT5x0dcQ5yTFuX2Wx9AANqpyTDob2vYZSMETRcqvfxop5Ey3JrvZ9/Fw7rW5GEpke/c S3ZcCcVKUm5eJGjn9jnOMw8A5zwi7Po= ARC-Authentication-Results: i=1; imf10.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=DWys7NSB; dmarc=pass (policy=none) header.from=kernel.org; spf=pass (imf10.hostedemail.com: domain of dakr@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=dakr@kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1724167575; 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=ZhlwIxiJnQMVySrUu7uFQa9SXH+7QrFPeDRJKpQkzQU=; b=8SXLh23Tbo0Qali2knjZKRGeu7USjZJvuXbuvYq2uKfKY1d5vmeAM/gxPbg6VFZ3rlibht Utkz/FP+DImKNzVshw0Wjhdb5Vl+ErPHfY2+1FAs5pXyCX7x+vmzgo1+YumE/K5YfbVZjZ sLW1Xu7GCxVdDO3bkZLz023CW+tUlCs= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by dfw.source.kernel.org (Postfix) with ESMTP id 542D360BBD; Tue, 20 Aug 2024 15:26:30 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 550E5C4AF10; Tue, 20 Aug 2024 15:26:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1724167590; bh=QNCaR6LGJ2I9wGtXHAIBeh+5vulqhXUYZz960F2jNZE=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=DWys7NSBNJSgrSjoMP+h/PT9z5JD7m5k5AyKawIb3CG3fmdbkP08c2+Aro5cSNGTO UuRrwJ2+WAu8jA1LC75dwI+xrf09NxvDoXpVQ9K01EPywgR+frN3ItgC9CLhErttXh D1RitefdcksiSXkjDE2XI2GsdaeyHA83/WyuT2X1uzKPdAoj+ptbecqPZIPSAfpRqF YsUOlxVQhFn1YN+CERW+jLRKlS/u0Cwjl75Mh9WIZ/IF1vAiC9z8GLldgSLmZlAXcx uOTMn8gPCNzSFNFlGIU5ujFDQspodaPc0Hdir3cNJJ0HuGC9U2Kc0/bmTyoOPg0nU/ pSXhQEOzh70WA== Date: Tue, 20 Aug 2024 17:26:22 +0200 From: Danilo Krummrich To: Alice Ryhl Cc: ojeda@kernel.org, alex.gaynor@gmail.com, wedsonaf@gmail.com, boqun.feng@gmail.com, gary@garyguo.net, bjorn3_gh@protonmail.com, benno.lossin@proton.me, a.hindborg@samsung.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 v6 09/26] rust: alloc: implement kernel `Box` Message-ID: References: <20240816001216.26575-1-dakr@kernel.org> <20240816001216.26575-10-dakr@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: X-Rspam-User: X-Rspamd-Queue-Id: 632C9C0018 X-Rspamd-Server: rspam01 X-Stat-Signature: g1wbrm1fw4zqn63nrsqyju9ypimyuscx X-HE-Tag: 1724167591-945732 X-HE-Meta: U2FsdGVkX1+8C/qD3VtAe4kZ+ZJdGm8a+p1/gn0+MGzdRE2498xcDc4gm7wj82yDx8P6HW5hOcz3+CqyvsGhtzvIXy4KBXLqE/JDHeBh6DujLrBpg2DKzRkb6oV3/eWdy+kv8smYfZ8uSSWTUJR4KYVG3zFe76YvTQu5Y8MvEFJKNYnUyd801W44O4S15eFDw7xjgfemB4ot135ZOqeB/IR5tfZ4zDkwg11IU3CSs6XMeX54QpjnodSbuz/FKK7+xInH3N/mk97Q5mD/K+3KtJ2orKnw7y76QZo6VBdZytC9pHCauZv5fglp43KLY07IWWNx8twJ7GK16SkMTtQNR+LCls9lThTwmRKc7RProIbWIodhIpwmQj2ZLuR6Nv/LlMhJYNcNfCupX8OP00AKtqHSfj5Qa8NWlOXibeKSVBXfSvvCsI5BUlveBoxyjQ1Fe+RzdxX0YfRQ2+soaj0Dg9gPIGbzMRHPF0Udugs0jdh4xAtytMPTmMipUYwqw9BnyZiap7pPDyR/SkAWdLSaG+UTr+Zav74KrrYoqQsvMMyMhj8cCv/Mtfgk+YefM5tOXUZmab4Kepkcsn9b33kNYUdd7AyG8yhqswZhD/+kdL7FxJb5mP5+7MHZQO+K/2CZe3tIkMmw7uH/L5fC062/l/DiHlxOucrBRRdeytpgUGg2OkWOhfeFRV4dQgMFYlMrZ1DRWRsNZHutdZWsq/4XBmr03EucGstUPRnlHUu89JqFkTUp4nC4FQDHheYOn2NsFZ/v2JOeYdfjHnejO0XNsAK9tMiHU2G7MKGDyYQBtVdeHwTanD4BPvYdUXiQClTxEYkwD+dRDCp41Nsh+HxqaxLSSZb0OP7D0tMDY98eZ4GhFSQJkxhe9pwzFGyVvYFqN/2aFdybAgieopAX0sL29zuO6y4fhxqWhNSTU8RBdJkEkOg9sIoOWoDvu+GfoHUfEnmoM2MNktl3Zhm5X8m KoJx7JkL 4Fc4ezx7kkPzE119kLlXu+J92vozFsB8hiQpDhHYjyPpEPPtZZIbdpZurqblI/spSjOzoeGoJVMeltRgzOMRMGcpgHgJ6CzdgiWBQxycgi8e8s74yf+ikRbOpMKIp96MPM/9rJnBGDpmClDsti0sYN08K+GuHakSktQajjyVEjOAdOrAnfq7a0nqLBhdAWl7n1KBWnmbRZn5jnCl5Isd3T2FUObiGYG6ODBRfFofrxTHpCGh/IC3VJE+o164uDH3xY0I/rAgFHDkr7R9rHIssEFuFBSyBLawNv0PHfg5pFI+07H3Pa38Fyh7VdLb9KR1syenflmko79Aa21+ufz2fWy0dDQZXJZF2mWlTm//lhcBhp3lLEvomAinTilGoWOtniQlVtTB1lle5SbFxZ/8K2nJ3zw== 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 Tue, Aug 20, 2024 at 11:47:45AM +0200, Alice Ryhl wrote: > On Fri, Aug 16, 2024 at 2:13 AM Danilo Krummrich wrote: > > > > `Box` provides the simplest way to allocate memory for a generic type > > with one of the kernel's allocators, e.g. `Kmalloc`, `Vmalloc` or > > `KVmalloc`. > > > > In contrast to Rust's `Box` type, the kernel `Box` type considers the > > kernel's GFP flags for all appropriate functions, always reports > > allocation failures through `Result<_, AllocError>` and remains > > independent from unstable features. > > > > Signed-off-by: Danilo Krummrich > > Overall looks good to me, but I have a question: > > > +impl ForeignOwnable for Box > > +where > > + A: Allocator, > > +{ > > + type Borrowed<'a> = &'a T; > > + type BorrowedMut<'a> = &'a mut T; > > [..] > > + unsafe fn borrow_mut<'a>(ptr: *const core::ffi::c_void) -> &'a mut T { > > + // SAFETY: The safety requirements of this method ensure that the pointer is valid and that > > + // nothing else will access the value for the duration of 'a. > > + unsafe { &mut *ptr.cast_mut().cast() } > > + } > > Where does this come from? It looks like you've based the series on > top of [1], but I dropped that patch a long time ago, and I don't see > it in rust-dev anymore. I comes from me rebasing onto rust-dev. When Boqun asked me to resolve the merge conflicts a few days ago, this patch was in rust-dev. I think it disappeared two days ago or so. @Bonqun: Need to me to rebase again? - Danilo > > Alice > > [1]: https://lore.kernel.org/all/20230710074642.683831-1-aliceryhl@google.com/ >