From: Boqun Feng <boqun.feng@gmail.com>
To: Wedson Almeida Filho <wedsonaf@gmail.com>
Cc: "Peter Zijlstra" <peterz@infradead.org>,
"Miguel Ojeda" <ojeda@kernel.org>,
"Alex Gaynor" <alex.gaynor@gmail.com>,
"Gary Guo" <gary@garyguo.net>,
"Björn Roy Baron" <bjorn3_gh@protonmail.com>,
linux-kernel@vger.kernel.org,
"Wedson Almeida Filho" <walmeida@microsoft.com>,
"Ingo Molnar" <mingo@redhat.com>, "Will Deacon" <will@kernel.org>,
"Waiman Long" <longman@redhat.com>,
"Martin Rodriguez Reboredo" <yakoyoku@gmail.com>,
rust-for-linux@vger.kernel.org
Subject: Re: [PATCH v4 04/13] locking/spinlock: introduce spin_lock_init_with_key
Date: Wed, 12 Apr 2023 12:14:44 -0700 [thread overview]
Message-ID: <ZDcDJKgi4f3OF05d@boqun-archlinux> (raw)
In-Reply-To: <CANeycqqM5o_4gj2rT=8yV0NGTRWY=jTA6HT4F2Esho-WAJCPOQ@mail.gmail.com>
On Tue, Apr 11, 2023 at 03:05:07PM -0300, Wedson Almeida Filho wrote:
> On Tue, 11 Apr 2023 at 02:46, Wedson Almeida Filho <wedsonaf@gmail.com> wrote:
> >
> > From: Wedson Almeida Filho <walmeida@microsoft.com>
> >
> > Rust cannot call C macros, so it has its own macro to create a new lock
> > class when a spin lock is initialised. This new function allows Rust
> > code to pass the lock class it generates to the C implementation.
> >
> > Cc: Peter Zijlstra <peterz@infradead.org>
> > Cc: Ingo Molnar <mingo@redhat.com>
> > Cc: Will Deacon <will@kernel.org>
> > Cc: Waiman Long <longman@redhat.com>
> > Reviewed-by: Martin Rodriguez Reboredo <yakoyoku@gmail.com>
> > Signed-off-by: Wedson Almeida Filho <walmeida@microsoft.com>
Reviewed-by: Boqun Feng <boqun.feng@gmail.com>
> > ---
> > v1 -> v2: No changes
> > v2 -> v3: No changes
> > v3 -> v4: No changes
> >
> > include/linux/spinlock.h | 9 +++++++--
> > 1 file changed, 7 insertions(+), 2 deletions(-)
> >
> > diff --git a/include/linux/spinlock.h b/include/linux/spinlock.h
> > index be48f1cb1878..cdc92d095133 100644
> > --- a/include/linux/spinlock.h
> > +++ b/include/linux/spinlock.h
> > @@ -327,12 +327,17 @@ static __always_inline raw_spinlock_t *spinlock_check(spinlock_t *lock)
> >
> > #ifdef CONFIG_DEBUG_SPINLOCK
> >
> > +static inline void spin_lock_init_with_key(spinlock_t *lock, const char *name,
> > + struct lock_class_key *key)
> > +{
> > + __raw_spin_lock_init(spinlock_check(lock), name, key, LD_WAIT_CONFIG);
> > +}
> > +
> > # define spin_lock_init(lock) \
> > do { \
> > static struct lock_class_key __key; \
> > \
> > - __raw_spin_lock_init(spinlock_check(lock), \
> > - #lock, &__key, LD_WAIT_CONFIG); \
> > + spin_lock_init_with_key(lock, #lock, &__key); \
> > } while (0)
>
> Peter, the code above is just factoring out spin lock init when
> lockdep is enabled to take a lock class key.
>
> Would you be able to review it?
>
> If it's ok with you, we'd like to carry it through the rust tree
> because we have code that depends on it.
Same ask here ;-) Peter, do you think it's Ok to take it via rust tree?
Thanks!
Regards,
Boqun
>
> Thanks,
> -Wedson
>
> >
> > #else
> > --
> > 2.34.1
> >
next prev parent reply other threads:[~2023-04-12 19:14 UTC|newest]
Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-04-11 5:45 [PATCH v4 01/13] rust: sync: introduce `LockClassKey` Wedson Almeida Filho
2023-04-11 5:45 ` [PATCH v4 02/13] rust: sync: introduce `Lock` and `Guard` Wedson Almeida Filho
2023-04-11 20:42 ` Gary Guo
2023-04-12 11:38 ` Wedson Almeida Filho
2023-04-14 12:02 ` Alice Ryhl
2023-04-13 8:46 ` Benno Lossin
2023-04-11 5:45 ` [PATCH v4 03/13] rust: lock: introduce `Mutex` Wedson Almeida Filho
2023-04-13 8:56 ` Benno Lossin
2023-04-11 5:45 ` [PATCH v4 04/13] locking/spinlock: introduce spin_lock_init_with_key Wedson Almeida Filho
2023-04-11 18:05 ` Wedson Almeida Filho
2023-04-12 19:14 ` Boqun Feng [this message]
2023-04-11 5:45 ` [PATCH v4 05/13] rust: lock: introduce `SpinLock` Wedson Almeida Filho
2023-04-11 5:45 ` [PATCH v4 06/13] rust: lock: add support for `Lock::lock_irqsave` Wedson Almeida Filho
2023-04-11 5:45 ` [PATCH v4 07/13] rust: lock: implement `IrqSaveBackend` for `SpinLock` Wedson Almeida Filho
2023-04-11 5:45 ` [PATCH v4 08/13] rust: introduce `ARef` Wedson Almeida Filho
2023-04-11 20:45 ` Gary Guo
2023-04-13 9:19 ` Benno Lossin
2023-04-13 17:06 ` Wedson Almeida Filho
2023-04-13 22:29 ` Benno Lossin
2023-04-14 9:00 ` Wedson Almeida Filho
2023-04-14 9:46 ` Benno Lossin
2023-04-14 14:38 ` Gary Guo
2023-04-14 17:03 ` Boqun Feng
2023-04-11 5:45 ` [PATCH v4 09/13] rust: add basic `Task` Wedson Almeida Filho
2023-04-11 20:47 ` Gary Guo
2023-04-12 11:42 ` Wedson Almeida Filho
2023-04-11 5:45 ` [PATCH v4 10/13] rust: introduce `current` Wedson Almeida Filho
2023-04-11 5:45 ` [PATCH v4 11/13] rust: lock: add `Guard::do_unlocked` Wedson Almeida Filho
2023-04-11 20:54 ` Gary Guo
2023-04-12 11:16 ` Wedson Almeida Filho
2023-04-11 21:17 ` Boqun Feng
2023-04-12 11:09 ` Wedson Almeida Filho
2023-04-12 6:25 ` Boqun Feng
2023-04-12 11:07 ` Wedson Almeida Filho
2023-04-12 14:35 ` Boqun Feng
2023-04-12 17:41 ` Wedson Almeida Filho
2023-04-11 5:45 ` [PATCH v4 12/13] rust: sync: introduce `CondVar` Wedson Almeida Filho
2023-04-14 11:55 ` Alice Ryhl
2023-04-11 5:45 ` [PATCH v4 13/13] rust: sync: introduce `LockedBy` Wedson Almeida Filho
2023-04-13 9:45 ` Benno Lossin
2023-04-11 20:35 ` [PATCH v4 01/13] rust: sync: introduce `LockClassKey` Gary Guo
2023-04-13 8:02 ` Benno Lossin
2023-04-21 23:48 ` Miguel Ojeda
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=ZDcDJKgi4f3OF05d@boqun-archlinux \
--to=boqun.feng@gmail.com \
--cc=alex.gaynor@gmail.com \
--cc=bjorn3_gh@protonmail.com \
--cc=gary@garyguo.net \
--cc=linux-kernel@vger.kernel.org \
--cc=longman@redhat.com \
--cc=mingo@redhat.com \
--cc=ojeda@kernel.org \
--cc=peterz@infradead.org \
--cc=rust-for-linux@vger.kernel.org \
--cc=walmeida@microsoft.com \
--cc=wedsonaf@gmail.com \
--cc=will@kernel.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.