From: Gary Guo <gary@garyguo.net>
To: Alice Ryhl <aliceryhl@google.com>
Cc: "Andreas Hindborg" <nmi@metaspace.dk>,
"Jens Axboe" <axboe@kernel.dk>, "Miguel Ojeda" <ojeda@kernel.org>,
"Alex Gaynor" <alex.gaynor@gmail.com>,
"Wedson Almeida Filho" <wedsonaf@gmail.com>,
"Andreas Hindborg" <a.hindborg@samsung.com>,
"Behme Dirk (XC-CP/ESB5)" <Dirk.Behme@de.bosch.com>,
"Boqun Feng" <boqun.feng@gmail.com>,
"Björn Roy Baron" <bjorn3_gh@protonmail.com>,
"Benno Lossin" <benno.lossin@proton.me>,
"linux-block@vger.kernel.org" <linux-block@vger.kernel.org>,
rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 2/2] rust: block: fix wrong usage of lockdep API
Date: Thu, 15 Aug 2024 20:07:38 +0100 [thread overview]
Message-ID: <20240815200738.096dca4a.gary@garyguo.net> (raw)
In-Reply-To: <CAH5fLgih1QtO-ACyoifNsgqd=VtJimoGV+aD=3iHG0wb+iDGyw@mail.gmail.com>
On Thu, 15 Aug 2024 10:04:56 +0200
Alice Ryhl <aliceryhl@google.com> wrote:
> On Thu, Aug 15, 2024 at 9:49 AM Andreas Hindborg <nmi@metaspace.dk> wrote:
> >
> > From: Andreas Hindborg <a.hindborg@samsung.com>
> >
> > When allocating `struct gendisk`, `GenDiskBuilder` is using a dynamic lock
> > class key without registering the key. This is incorrect use of the API,
> > which causes a `WARN` trace. This patch fixes the issue by using a static
> > lock class key, which is more appropriate for the situation anyway.
> >
> > Fixes: 3253aba3408a ("rust: block: introduce `kernel::block::mq` module")
> > Reported-by: "Behme Dirk (XC-CP/ESB5)" <Dirk.Behme@de.bosch.com>
> > Closes: https://rust-for-linux.zulipchat.com/#narrow/stream/288089-General/topic/6.2E11.2E0-rc1.3A.20rust.2Fkernel.2Fblock.2Fmq.2Ers.3A.20doctest.20lock.20warning
> > Signed-off-by: Andreas Hindborg <a.hindborg@samsung.com>
>
> LGTM. This makes me wonder if there's some design mistake in how we
> handle lock classes in Rust.
>
> Reviewed-by: Alice Ryhl <aliceryhl@google.com>
I agree. The API that we current have is designed without much
consideration into dynamically allocated keys, and we use `&'static
LockClassKey` in a lot of kernel crate APIs.
This arguably is wrong, because presence of `&'static LockClassKey`
doesn't mean the key is static. If we do a
`Box::leak(Box::new(LockClassKey::new()))`, then this is a `&'static
LockClassKey`, but lockdep wouldn't consider this as a static object.
Maybe we should make the `new` function unsafe.
For the patch itself:
Reviewed-by: Gary Guo <gary@garyguo.net>
next prev parent reply other threads:[~2024-08-15 19:07 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-08-15 7:49 [PATCH 0/2] rust: fix erranous use of lock class key in rust block device bindings Andreas Hindborg
2024-08-15 7:49 ` [PATCH 2/2] rust: block: fix wrong usage of lockdep API Andreas Hindborg
2024-08-15 8:04 ` Alice Ryhl
2024-08-15 19:05 ` Benno Lossin
2024-08-15 19:15 ` Benno Lossin
2024-08-15 21:34 ` Boqun Feng
2024-08-15 19:07 ` Gary Guo [this message]
2024-08-15 21:32 ` Boqun Feng
2024-08-15 21:42 ` Gary Guo
2024-08-16 13:08 ` Benno Lossin
2024-08-15 10:02 ` Dirk Behme
2024-08-16 15:59 ` Benno Lossin
2024-08-15 14:22 ` [PATCH 0/2] rust: fix erranous use of lock class key in rust block device bindings Jens Axboe
2024-08-15 15:31 ` Miguel Ojeda
2024-08-15 16:00 ` Jens Axboe
2024-08-16 8:54 ` Miguel Ojeda
2024-08-21 10:50 ` Miguel Ojeda
2024-08-21 11:36 ` Miguel Ojeda
2024-08-21 11:54 ` 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=20240815200738.096dca4a.gary@garyguo.net \
--to=gary@garyguo.net \
--cc=Dirk.Behme@de.bosch.com \
--cc=a.hindborg@samsung.com \
--cc=alex.gaynor@gmail.com \
--cc=aliceryhl@google.com \
--cc=axboe@kernel.dk \
--cc=benno.lossin@proton.me \
--cc=bjorn3_gh@protonmail.com \
--cc=boqun.feng@gmail.com \
--cc=linux-block@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=nmi@metaspace.dk \
--cc=ojeda@kernel.org \
--cc=rust-for-linux@vger.kernel.org \
--cc=wedsonaf@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).