rust-for-linux.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Benno Lossin <benno.lossin@proton.me>
To: Danilo Krummrich <dakr@kernel.org>, Alice Ryhl <aliceryhl@google.com>
Cc: Boqun Feng <boqun.feng@gmail.com>,
	ojeda@kernel.org, alex.gaynor@gmail.com, wedsonaf@gmail.com,
	gary@garyguo.net, bjorn3_gh@protonmail.com,
	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 v5 00/26] Generic `Allocator` support for Rust
Date: Thu, 15 Aug 2024 13:39:05 +0000	[thread overview]
Message-ID: <e0b0bffb-c240-4d23-bf4d-0c1c19608f60@proton.me> (raw)
In-Reply-To: <Zr4DpPSjDqSoMh0j@cassiopeiae>

On 15.08.24 15:33, Danilo Krummrich wrote:
> On Thu, Aug 15, 2024 at 02:34:50PM +0200, Alice Ryhl wrote:
>> On Thu, Aug 15, 2024 at 2:33 PM Danilo Krummrich <dakr@kernel.org> wrote:
>>>
>>> On Thu, Aug 15, 2024 at 11:20:32AM +0200, Alice Ryhl wrote:
>>>> On Thu, Aug 15, 2024 at 4:52 AM Danilo Krummrich <dakr@kernel.org> wrote:
>>>>>
>>>>> On Wed, Aug 14, 2024 at 12:32:15PM -0700, Boqun Feng wrote:
>>>>>> Hi Danilo,
>>>>>>
>>>>>> I'm trying to put your series on rust-dev, but I hit a few conflicts due
>>>>>> to the conflict with `Box::drop_contents`, which has been in rust-dev
>>>>>> for a while. And the conflict is not that trivial for me to resolve.
>>>>>> So just a head-up, that's a requirement for me to put it on rust-dev for
>>>>>> more tests from my end ;-)
>>>>>
>>>>> I rebased everything and you can fetch them from [1].
>>>>>
>>>>> I resolved the following conflicts:
>>>>>
>>>>>   - for `Box`, implement
>>>>>     - `drop_contents`
>>>>>     - `manually_drop_contents` [2]
>>>>
>>>> Not sure I like this name. It sounds like something that runs the
>>>> destructor, but it does the exact opposite.
>>>
>>> I thought it kinda makes sense, since it's analogous to `ManuallyDrop::new`.
>>>
>>> What about `Box::forget_contents` instead?
>>
>> One option is `into_manually_drop`. This uses the convention of using
>> the `into_*` prefix for conversions that take ownership of the
>> original value.
> 
> The signature of the current `Box::manually_drop_contents` is the same as for
> `Box::drop_contents`, namely
> `fn manually_drop_contents(this: Self) -> Box<MaybeUninit<T>, A>`.
> 
> `into_manually_drop` seems misleading for for returning a
> `Box<MaybeUninit<T>, A>`.
> 
> I still think `forget_contents` hits it quite well. Just as `drop_contents`
> drops the value, `forget_contents` makes the `Box` forget the value.

I think `forget_contents` sounds good. Can you please add some more docs
to that function though? Like an example and change "Manually drops the
contents, but keeps the allocation" to "Forgets the contents (does not
run the destructor), but keeps the allocation.".

Another thing that I spotted while looking at the patch, `move_out`
doesn't need the `transmute_copy`, you should be able to just call
`read` on the pointer.

---
Cheers,
Benno


  reply	other threads:[~2024-08-15 13:39 UTC|newest]

Thread overview: 95+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-08-12 18:22 [PATCH v5 00/26] Generic `Allocator` support for Rust Danilo Krummrich
2024-08-12 18:22 ` [PATCH v5 01/26] rust: alloc: add `Allocator` trait Danilo Krummrich
2024-08-14 16:13   ` Benno Lossin
2024-08-15  0:16     ` Danilo Krummrich
2024-08-15 13:49       ` Benno Lossin
2024-08-12 18:22 ` [PATCH v5 02/26] rust: alloc: separate `aligned_size` from `krealloc_aligned` Danilo Krummrich
2024-08-12 18:22 ` [PATCH v5 03/26] rust: alloc: rename `KernelAllocator` to `Kmalloc` Danilo Krummrich
2024-08-12 18:22 ` [PATCH v5 04/26] rust: alloc: implement `Allocator` for `Kmalloc` Danilo Krummrich
2024-08-14  7:51   ` Alice Ryhl
2024-08-14 13:36     ` Danilo Krummrich
2024-08-14 13:44       ` Alice Ryhl
2024-08-14 13:48         ` Danilo Krummrich
2024-08-14 13:50           ` Alice Ryhl
2024-08-14 14:00             ` Danilo Krummrich
2024-08-14 15:03               ` Miguel Ojeda
2024-08-14 15:19                 ` Danilo Krummrich
2024-08-14 15:28                   ` Benno Lossin
2024-08-14 16:01                     ` Danilo Krummrich
2024-08-14 16:02                   ` Miguel Ojeda
2024-08-14 16:16                     ` Miguel Ojeda
2024-08-14 16:56                       ` Danilo Krummrich
2024-08-14 16:21   ` Benno Lossin
2024-08-14 16:59     ` Danilo Krummrich
2024-08-14 17:02       ` Benno Lossin
2024-08-14 17:15         ` Danilo Krummrich
2024-08-14 21:07           ` Benno Lossin
2024-08-14 16:28   ` Benno Lossin
2024-08-14 17:13     ` Danilo Krummrich
2024-08-14 21:10       ` Benno Lossin
2024-08-12 18:22 ` [PATCH v5 05/26] rust: alloc: add module `allocator_test` Danilo Krummrich
2024-08-14 16:25   ` Benno Lossin
2024-08-12 18:22 ` [PATCH v5 06/26] rust: alloc: implement `Vmalloc` allocator Danilo Krummrich
2024-08-14 16:32   ` Benno Lossin
2024-08-14 22:12     ` Danilo Krummrich
2024-08-14 23:20       ` Danilo Krummrich
2024-08-15  6:48         ` Benno Lossin
2024-08-15 12:29           ` Danilo Krummrich
2024-08-15 13:44             ` Benno Lossin
2024-08-15 14:23               ` Danilo Krummrich
2024-08-15 19:08                 ` Benno Lossin
2024-08-12 18:22 ` [PATCH v5 07/26] rust: alloc: implement `KVmalloc` allocator Danilo Krummrich
2024-08-12 18:22 ` [PATCH v5 08/26] rust: alloc: add __GFP_NOWARN to `Flags` Danilo Krummrich
2024-08-14  7:48   ` Alice Ryhl
2024-08-14 16:35   ` Benno Lossin
2024-08-12 18:22 ` [PATCH v5 09/26] rust: alloc: implement kernel `Box` Danilo Krummrich
2024-08-14  8:26   ` Alice Ryhl
2024-08-14 12:22     ` Danilo Krummrich
2024-08-14 12:29       ` Alice Ryhl
2024-08-14 17:01   ` Benno Lossin
2024-08-14 21:58     ` Danilo Krummrich
2024-08-15 12:44       ` Miguel Ojeda
2024-08-15 13:24       ` Benno Lossin
2024-08-15 14:00         ` Danilo Krummrich
2024-08-15 14:10           ` Benno Lossin
2024-08-15 14:17             ` Danilo Krummrich
2024-08-12 18:22 ` [PATCH v5 10/26] rust: treewide: switch to our kernel `Box` type Danilo Krummrich
2024-08-12 18:22 ` [PATCH v5 11/26] rust: alloc: remove `BoxExt` extension Danilo Krummrich
2024-08-14 11:55   ` Dirk Behme
2024-08-14 12:08     ` Danilo Krummrich
2024-08-12 18:22 ` [PATCH v5 12/26] rust: alloc: add `Box` to prelude Danilo Krummrich
2024-08-12 18:22 ` [PATCH v5 13/26] rust: alloc: implement kernel `Vec` type Danilo Krummrich
2024-08-14  8:42   ` Alice Ryhl
2024-08-14 12:29     ` Danilo Krummrich
2024-08-14 12:36       ` Alice Ryhl
2024-08-15 13:31         ` Benno Lossin
2024-08-14 22:46     ` Danilo Krummrich
2024-08-15  7:30       ` Alice Ryhl
2024-08-15 12:17         ` Danilo Krummrich
2024-08-12 18:23 ` [PATCH v5 14/26] rust: alloc: implement `IntoIterator` for `Vec` Danilo Krummrich
2024-08-12 18:23 ` [PATCH v5 15/26] rust: alloc: implement `collect` for `IntoIter` Danilo Krummrich
2024-08-12 18:23 ` [PATCH v5 16/26] rust: treewide: switch to the kernel `Vec` type Danilo Krummrich
2024-08-12 18:23 ` [PATCH v5 17/26] rust: alloc: remove `VecExt` extension Danilo Krummrich
2024-08-12 18:23 ` [PATCH v5 18/26] rust: alloc: add `Vec` to prelude Danilo Krummrich
2024-08-12 18:23 ` [PATCH v5 19/26] rust: error: use `core::alloc::LayoutError` Danilo Krummrich
2024-08-12 18:23 ` [PATCH v5 20/26] rust: error: check for config `test` in `Error::name` Danilo Krummrich
2024-08-12 18:23 ` [PATCH v5 21/26] rust: alloc: implement `contains` for `Flags` Danilo Krummrich
2024-08-12 18:23 ` [PATCH v5 22/26] rust: alloc: implement `Cmalloc` in module allocator_test Danilo Krummrich
2024-08-13  7:07   ` Heghedus Razvan
2024-08-13 12:34     ` Danilo Krummrich
2024-08-12 18:23 ` [PATCH v5 23/26] rust: str: test: replace `alloc::format` Danilo Krummrich
2024-08-12 18:23 ` [PATCH v5 24/26] rust: alloc: update module comment of alloc.rs Danilo Krummrich
2024-08-12 18:23 ` [PATCH v5 25/26] kbuild: rust: remove the `alloc` crate and `GlobalAlloc` Danilo Krummrich
2024-08-12 18:23 ` [PATCH v5 26/26] MAINTAINERS: add entry for the Rust `alloc` module Danilo Krummrich
2024-08-14 19:32 ` [PATCH v5 00/26] Generic `Allocator` support for Rust Boqun Feng
2024-08-14 20:53   ` Danilo Krummrich
2024-08-15  2:52   ` Danilo Krummrich
2024-08-15  9:20     ` Alice Ryhl
2024-08-15 12:33       ` Danilo Krummrich
2024-08-15 12:34         ` Alice Ryhl
2024-08-15 13:33           ` Danilo Krummrich
2024-08-15 13:39             ` Benno Lossin [this message]
2024-08-15 14:09               ` Danilo Krummrich
2024-08-15 14:19                 ` Benno Lossin
2024-08-15 17:19     ` Boqun Feng
2024-08-15 17:31       ` Danilo Krummrich

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=e0b0bffb-c240-4d23-bf4d-0c1c19608f60@proton.me \
    --to=benno.lossin@proton.me \
    --cc=a.hindborg@samsung.com \
    --cc=airlied@redhat.com \
    --cc=ajanulgu@redhat.com \
    --cc=akpm@linux-foundation.org \
    --cc=alex.gaynor@gmail.com \
    --cc=aliceryhl@google.com \
    --cc=bjorn3_gh@protonmail.com \
    --cc=boqun.feng@gmail.com \
    --cc=boris.brezillon@collabora.com \
    --cc=cjia@nvidia.com \
    --cc=dakr@kernel.org \
    --cc=daniel.almeida@collabora.com \
    --cc=faith.ekstrand@collabora.com \
    --cc=gary@garyguo.net \
    --cc=jhubbard@nvidia.com \
    --cc=lina@asahilina.net \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=lyude@redhat.com \
    --cc=mcanal@igalia.com \
    --cc=ojeda@kernel.org \
    --cc=rust-for-linux@vger.kernel.org \
    --cc=wedsonaf@gmail.com \
    --cc=zhiw@nvidia.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).