From: Alice Ryhl <aliceryhl@google.com>
To: Peter Zijlstra <peterz@infradead.org>
Cc: "Miguel Ojeda" <ojeda@kernel.org>,
"Alex Gaynor" <alex.gaynor@gmail.com>,
"Wedson Almeida Filho" <wedsonaf@gmail.com>,
"Boqun Feng" <boqun.feng@gmail.com>,
"Gary Guo" <gary@garyguo.net>,
"Björn Roy Baron" <bjorn3_gh@protonmail.com>,
"Benno Lossin" <benno.lossin@proton.me>,
"Andreas Hindborg" <a.hindborg@samsung.com>,
"Alexander Viro" <viro@zeniv.linux.org.uk>,
"Christian Brauner" <brauner@kernel.org>,
"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
"Arve Hjønnevåg" <arve@android.com>,
"Todd Kjos" <tkjos@android.com>,
"Martijn Coenen" <maco@android.com>,
"Joel Fernandes" <joel@joelfernandes.org>,
"Carlos Llamas" <cmllamas@google.com>,
"Suren Baghdasaryan" <surenb@google.com>,
"Dan Williams" <dan.j.williams@intel.com>,
"Matthew Wilcox" <willy@infradead.org>,
"Thomas Gleixner" <tglx@linutronix.de>,
"Daniel Xu" <dxu@dxuuu.xyz>,
"Martin Rodriguez Reboredo" <yakoyoku@gmail.com>,
"Trevor Gross" <tmgross@umich.edu>,
linux-kernel@vger.kernel.org, rust-for-linux@vger.kernel.org,
linux-fsdevel@vger.kernel.org, "Kees Cook" <kees@kernel.org>
Subject: Re: [PATCH v8 1/8] rust: types: add `NotThreadSafe`
Date: Thu, 25 Jul 2024 17:32:48 +0200 [thread overview]
Message-ID: <CAH5fLghpXuv3sgGnO4dBydnn8Agqpm0ZDESQcwrbWEu58AyGxQ@mail.gmail.com> (raw)
In-Reply-To: <20240725153008.GK13387@noisy.programming.kicks-ass.net>
On Thu, Jul 25, 2024 at 5:30 PM Peter Zijlstra <peterz@infradead.org> wrote:
>
> On Thu, Jul 25, 2024 at 05:09:14PM +0200, Alice Ryhl wrote:
>
> > > As per always for not being able to read rust; how does this extend to
> > > get_task_struct()? Once you've taken a reference on current, you should
> > > be free to pass it along to whomever.
> >
> > Once you take a reference on current, it becomes thread-safe. This is
> > because taking a reference creates a value of type ARef<Task> rather
> > than TaskRef, and ARef<Task> is considered thread-safe.
>
> Ignoring comments, there isn't a single mention of ARef there. Where
> does it come from?
That's because the conversion to ARef<Task> is a two-step process. The
TaskRef type just provides a conversion from &TaskRef to &Task via the
`impl Deref` block. There is a conversion from &Task to ARef<Task>
elsewhere, and this conversion is where the call to get_task_struct()
happens.
Alice
next prev parent reply other threads:[~2024-07-25 15:33 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-07-25 14:27 [PATCH v8 0/8] File abstractions needed by Rust Binder Alice Ryhl
2024-07-25 14:27 ` [PATCH v8 1/8] rust: types: add `NotThreadSafe` Alice Ryhl
2024-07-25 14:37 ` Peter Zijlstra
2024-07-25 15:09 ` Alice Ryhl
2024-07-25 15:30 ` Peter Zijlstra
2024-07-25 15:32 ` Alice Ryhl [this message]
2024-08-07 10:59 ` Gary Guo
2024-07-25 14:27 ` [PATCH v8 2/8] rust: task: add `Task::current_raw` Alice Ryhl
2024-08-07 14:41 ` Gary Guo
2024-07-25 14:27 ` [PATCH v8 3/8] rust: file: add Rust abstraction for `struct file` Alice Ryhl
2024-08-06 8:44 ` Benno Lossin
2024-08-06 8:48 ` Alice Ryhl
2024-08-06 19:29 ` Boqun Feng
2024-08-07 8:50 ` Alice Ryhl
2024-08-07 14:46 ` Boqun Feng
2024-08-07 21:59 ` Alice Ryhl
2024-08-08 16:04 ` Boqun Feng
2024-07-25 14:27 ` [PATCH v8 4/8] rust: cred: add Rust abstraction for `struct cred` Alice Ryhl
2024-08-07 14:53 ` Gary Guo
2024-07-25 14:27 ` [PATCH v8 5/8] rust: security: add abstraction for secctx Alice Ryhl
2024-08-07 14:57 ` Gary Guo
2024-07-25 14:27 ` [PATCH v8 6/8] rust: file: add `FileDescriptorReservation` Alice Ryhl
2024-08-07 15:04 ` Gary Guo
2024-07-25 14:27 ` [PATCH v8 7/8] rust: file: add `Kuid` wrapper Alice Ryhl
2024-07-25 14:27 ` [PATCH v8 8/8] rust: file: add abstraction for `poll_table` Alice Ryhl
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=CAH5fLghpXuv3sgGnO4dBydnn8Agqpm0ZDESQcwrbWEu58AyGxQ@mail.gmail.com \
--to=aliceryhl@google.com \
--cc=a.hindborg@samsung.com \
--cc=alex.gaynor@gmail.com \
--cc=arve@android.com \
--cc=benno.lossin@proton.me \
--cc=bjorn3_gh@protonmail.com \
--cc=boqun.feng@gmail.com \
--cc=brauner@kernel.org \
--cc=cmllamas@google.com \
--cc=dan.j.williams@intel.com \
--cc=dxu@dxuuu.xyz \
--cc=gary@garyguo.net \
--cc=gregkh@linuxfoundation.org \
--cc=joel@joelfernandes.org \
--cc=kees@kernel.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=maco@android.com \
--cc=ojeda@kernel.org \
--cc=peterz@infradead.org \
--cc=rust-for-linux@vger.kernel.org \
--cc=surenb@google.com \
--cc=tglx@linutronix.de \
--cc=tkjos@android.com \
--cc=tmgross@umich.edu \
--cc=viro@zeniv.linux.org.uk \
--cc=wedsonaf@gmail.com \
--cc=willy@infradead.org \
--cc=yakoyoku@gmail.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).