[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <c243bef3-e152-462f-be68-91dbf876092b@nvidia.com>
Date: Fri, 14 Jun 2024 18:28:00 -0700
From: John Hubbard <jhubbard@...dia.com>
To: Boqun Feng <boqun.feng@...il.com>
CC: Miguel Ojeda <miguel.ojeda.sandonis@...il.com>, Gary Guo
<gary@...yguo.net>, <rust-for-linux@...r.kernel.org>,
<linux-kernel@...r.kernel.org>, <linux-arch@...r.kernel.org>,
<llvm@...ts.linux.dev>, Miguel Ojeda <ojeda@...nel.org>, Alex Gaynor
<alex.gaynor@...il.com>, Wedson Almeida Filho <wedsonaf@...il.com>,
Björn Roy Baron <bjorn3_gh@...tonmail.com>, Benno Lossin
<benno.lossin@...ton.me>, Andreas Hindborg <a.hindborg@...sung.com>, "Alice
Ryhl" <aliceryhl@...gle.com>, Alan Stern <stern@...land.harvard.edu>, "Andrea
Parri" <parri.andrea@...il.com>, Will Deacon <will@...nel.org>, Peter
Zijlstra <peterz@...radead.org>, Nicholas Piggin <npiggin@...il.com>, David
Howells <dhowells@...hat.com>, Jade Alglave <j.alglave@....ac.uk>, Luc
Maranget <luc.maranget@...ia.fr>, "Paul E. McKenney" <paulmck@...nel.org>,
"Akira Yokosawa" <akiyks@...il.com>, Daniel Lustig <dlustig@...dia.com>,
"Joel Fernandes" <joel@...lfernandes.org>, Nathan Chancellor
<nathan@...nel.org>, Nick Desaulniers <ndesaulniers@...gle.com>,
<kent.overstreet@...il.com>, "Greg Kroah-Hartman"
<gregkh@...uxfoundation.org>, <elver@...gle.com>, Mark Rutland
<mark.rutland@....com>, Thomas Gleixner <tglx@...utronix.de>, Ingo Molnar
<mingo@...hat.com>, Borislav Petkov <bp@...en8.de>, Dave Hansen
<dave.hansen@...ux.intel.com>, <x86@...nel.org>, "H. Peter Anvin"
<hpa@...or.com>, Catalin Marinas <catalin.marinas@....com>,
<torvalds@...ux-foundation.org>, <linux-arm-kernel@...ts.infradead.org>,
<linux-fsdevel@...r.kernel.org>, Trevor Gross <tmgross@...ch.edu>,
<dakr@...hat.com>
Subject: Re: [RFC 2/2] rust: sync: Add atomic support
On 6/14/24 6:24 PM, Boqun Feng wrote:
> On Fri, Jun 14, 2024 at 06:03:37PM -0700, John Hubbard wrote:
>> On 6/14/24 2:59 AM, Miguel Ojeda wrote:
>>> On Thu, Jun 13, 2024 at 9:05 PM Boqun Feng <boqun.feng@...il.com> wrote:
>>>>
>>>> Does this make sense?
>>>
>>> Implementation-wise, if you think it is simpler or more clear/elegant
>>> to have the extra lower level layer, then that sounds fine.
>>>
>>> However, I was mainly talking about what we would eventually expose to
>>> users, i.e. do we want to provide `Atomic<T>` to begin with? If yes,
>>> then we could make the lower layer private already.
>>>
>>> We can defer that extra layer/work if needed even if we go for
>>> `Atomic<T>`, but it would be nice to understand if we have consensus
>>> for an eventual user-facing API, or if someone has any other opinion
>>> or concerns on one vs. the other.
>>
>> Well, here's one:
>>
>> The reason that we have things like atomic64_read() in the C code is
>> because C doesn't have generics.
>>
>> In Rust, we should simply move directly to Atomic<T>, as there are,
>> after all, associated benefits. And it's very easy to see the connection
>
> What are the associated benefits you are referring to? Rust std doesn't
> use Atomic<T>, that somewhat proves that we don't need it.
Just the stock things that a generic provides: less duplicated code,
automatic support for future types (although here it's really just
integer types we care about of course).
thanks,
--
John Hubbard
NVIDIA
Powered by blists - more mailing lists