From: Petr Mladek <pmladek@suse.com>
To: Tetsuo Handa <penguin-kernel@i-love.sakura.ne.jp>
Cc: Hillf Danton <hdanton@sina.com>,
syzbot <syzbot+186b55175d8360728234@syzkaller.appspotmail.com>,
linux-kernel@vger.kernel.org,
Matthew Wilcox <willy@infradead.org>,
John Ogness <john.ogness@linutronix.de>,
Waiman Long <longman@redhat.com>,
Linus Torvalds <torvalds@linux-foundation.org>,
syzkaller-bugs@googlegroups.com
Subject: Re: [syzbot] [kernel?] possible deadlock in stack_depot_put
Date: Wed, 6 Dec 2023 10:42:31 +0100 [thread overview]
Message-ID: <ZXBCB2Gv1O-1-T6f@alley> (raw)
In-Reply-To: <317e077b-71a7-4112-a7d0-5c49efce4f39@I-love.SAKURA.ne.jp>
On Tue 2023-12-05 21:00:46, Tetsuo Handa wrote:
> On 2023/12/05 20:31, Hillf Danton wrote:
> > Unlike down_trylock(), mutex_trylock() is unable to trigger any lockdep
> > warning, so why is a binary semaphore prefered over mutex?
>
> The mutex has limitations which makes it impossible to use for console lock.
>
> https://elixir.bootlin.com/linux/v6.7-rc4/source/kernel/locking/mutex.c#L537
In particular, mutexes can't be acquired in an interrupt context not even
via mutex_trylock().
> By the way, this is a KASAN bug saying "refcount_t: underflow; use-after-free.".
> Possibly a candidate for printk_deferred_enter() user?
In practice, it would mean adding
printk_deferred_enter()
printk_deferred_exit()
around the KASAN/stackdepot code which might be called in any context
and might print a message. For example, see show_one_worker_pool().
It should be used only when really needed because it reduces the
chance to see the messages.
But honestly, I do not see a better solution. printk_deferred() is
used on many locations inside the scheduler to avoid these deadlocks
between console_sem and rq->lock.
It should be solved by the printk rework introducing per-console
locks. It might eventually allow to get rid of console_sem
completely. But it might be a long ride until all console
drivers get converted.
Best Regards,
Petr
next prev parent reply other threads:[~2023-12-06 9:42 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-11-25 21:07 [syzbot] [kernel?] possible deadlock in stack_depot_put syzbot
2023-12-03 13:17 ` [syzbot] " syzbot
[not found] ` <20231205113107.1324-1-hdanton@sina.com>
2023-12-05 12:00 ` Tetsuo Handa
2023-12-06 9:42 ` Petr Mladek [this message]
[not found] ` <20231206112215.1381-1-hdanton@sina.com>
2023-12-06 11:40 ` Linus Torvalds
-- strict thread matches above, loose matches on Subject: below --
2023-11-27 1:29 xingwei lee
2023-11-27 1:56 xingwei lee
2023-11-27 9:03 ` Ingo Molnar
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=ZXBCB2Gv1O-1-T6f@alley \
--to=pmladek@suse.com \
--cc=hdanton@sina.com \
--cc=john.ogness@linutronix.de \
--cc=linux-kernel@vger.kernel.org \
--cc=longman@redhat.com \
--cc=penguin-kernel@i-love.sakura.ne.jp \
--cc=syzbot+186b55175d8360728234@syzkaller.appspotmail.com \
--cc=syzkaller-bugs@googlegroups.com \
--cc=torvalds@linux-foundation.org \
--cc=willy@infradead.org \
/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