From: Ming Lei <ming.lei@redhat.com>
To: David Woodhouse <dwmw2@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>,
Stefan Hajnoczi <stefanha@redhat.com>,
Jason Wang <jasowang@redhat.com>,
"x86@kernel.org" <x86@kernel.org>, hpa <hpa@zytor.com>,
dyoung <dyoung@redhat.com>, kexec <kexec@lists.infradead.org>,
linux-ext4 <linux-ext4@vger.kernel.org>,
"Michael S. Tsirkin" <mst@redhat.com>,
Stefano Garzarella <sgarzare@redhat.com>,
eperezma <eperezma@redhat.com>,
Paolo Bonzini <bonzini@redhat.com>,
Petr Mladek <pmladek@suse.com>,
John Ogness <jogness@linutronix.de>,
Peter Zijlstra <peterz@infradead.org>,
Jens Axboe <axboe@kernel.dk>
Subject: Re: Lockdep warnings on kexec (virtio_blk, hrtimers)
Date: Fri, 13 Dec 2024 19:33:28 +0800 [thread overview]
Message-ID: <Z1wbiF7FhkO5VQFJ@fedora> (raw)
In-Reply-To: <71ffc2acd355ceb2b0554b2410a772fd698aabd3.camel@infradead.org>
On Fri, Dec 13, 2024 at 11:12:41AM +0000, David Woodhouse wrote:
> On Fri, 2024-12-13 at 11:42 +0100, Thomas Gleixner wrote:
> >
> > That's the control thread on CPU0. The hotplug thread on CPU1 is stuck
> > here:
> >
> > task:cpuhp/1 state:D stack:0 pid:24 tgid:24 ppid:2 flags:0x00004000
> > Call Trace:
> > <TASK>
> > __schedule+0x51f/0x1a80
> > schedule+0x3a/0x140
> > schedule_timeout+0x90/0x110
> > msleep+0x2b/0x40
> > blk_mq_hctx_notify_offline+0x160/0x3a0
> > cpuhp_invoke_callback+0x2a8/0x6c0
> > cpuhp_thread_fun+0x1ed/0x270
> > smpboot_thread_fn+0xda/0x1d0
> >
> > So something with those blk_mq fixes went sideways.
>
> $ git bisect bad
> 7678abee0867e6b7fb89aa40f6e9f575f755fb37 is the first bad commit
> commit 7678abee0867e6b7fb89aa40f6e9f575f755fb37 (HEAD)
> Author: Ming Lei <ming.lei@redhat.com>
> Date: Tue Nov 12 20:58:21 2024 +0800
>
> virtio-blk: don't keep queue frozen during system suspend
The above commit just adds blk_mq_unfreeze_queue() in virtblk_freeze(),
which may wake up pending request allocation.
Seems frozen processes still can be woken up after suspend_freeze_processes()
returns, then new request allocation can't be completed because there
isn't good CPU for this allocation.
Is it expected to see frozen process to be wakeup during suspend?
If yes, the following patch may be helpful:
diff --git a/block/blk-mq.c b/block/blk-mq.c
index aa340b097b6e..0cfc7a927e7e 100644
--- a/block/blk-mq.c
+++ b/block/blk-mq.c
@@ -557,6 +557,9 @@ static struct request *__blk_mq_alloc_requests(struct blk_mq_alloc_data *data)
if (tag == BLK_MQ_NO_TAG) {
if (data->flags & BLK_MQ_REQ_NOWAIT)
return NULL;
+
+ if (system_state != SYSTEM_RUNNING)
+ return NULL;
/*
* Give up the CPU and sleep for a random short time to
* ensure that thread using a realtime scheduling class
Thanks,
Ming
next prev parent reply other threads:[~2024-12-13 11:33 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-12-09 14:28 Lockdep warnings on kexec (virtio_blk, hrtimers) David Woodhouse
2024-12-10 1:56 ` Jason Wang
2024-12-11 12:42 ` Stefan Hajnoczi
2024-12-12 11:07 ` David Woodhouse
2024-12-12 13:34 ` Thomas Gleixner
2024-12-12 13:46 ` David Woodhouse
2024-12-12 18:04 ` Thomas Gleixner
2024-12-12 19:19 ` David Woodhouse
2024-12-13 0:14 ` Thomas Gleixner
2024-12-13 9:31 ` David Woodhouse
2024-12-13 9:43 ` David Woodhouse
2024-12-13 10:42 ` Thomas Gleixner
2024-12-13 11:09 ` Ming Lei
2024-12-13 11:31 ` Thomas Gleixner
2024-12-13 11:48 ` Ming Lei
2024-12-13 13:23 ` Thomas Gleixner
2024-12-13 14:07 ` David Woodhouse
2024-12-13 17:05 ` Thomas Gleixner
2024-12-13 17:17 ` David Woodhouse
2024-12-13 17:48 ` Rafael J. Wysocki
2024-12-13 17:32 ` Rafael J. Wysocki
2024-12-13 19:06 ` Rafael J. Wysocki
2024-12-13 20:16 ` David Woodhouse
2024-12-14 9:57 ` David Woodhouse
2024-12-16 12:14 ` Rafael J. Wysocki
2024-12-13 17:59 ` Rafael J. Wysocki
2024-12-13 13:17 ` David Woodhouse
2024-12-13 11:12 ` David Woodhouse
2024-12-13 11:33 ` Ming Lei [this message]
2024-12-13 11:20 ` Peter Zijlstra
2024-12-13 13:13 ` Thomas Gleixner
2024-12-16 13:20 ` [PATCH] sched: Prevent rescheduling when interrupts are disabled Thomas Gleixner
2024-12-16 17:41 ` David Woodhouse
2024-12-12 11:12 ` Lockdep warnings on kexec (virtio_blk, hrtimers) Ming Lei
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=Z1wbiF7FhkO5VQFJ@fedora \
--to=ming.lei@redhat.com \
--cc=axboe@kernel.dk \
--cc=bonzini@redhat.com \
--cc=dwmw2@infradead.org \
--cc=dyoung@redhat.com \
--cc=eperezma@redhat.com \
--cc=hpa@zytor.com \
--cc=jasowang@redhat.com \
--cc=jogness@linutronix.de \
--cc=kexec@lists.infradead.org \
--cc=linux-ext4@vger.kernel.org \
--cc=mst@redhat.com \
--cc=peterz@infradead.org \
--cc=pmladek@suse.com \
--cc=sgarzare@redhat.com \
--cc=stefanha@redhat.com \
--cc=tglx@linutronix.de \
--cc=x86@kernel.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;
as well as URLs for NNTP newsgroup(s).