All of lore.kernel.org
 help / color / mirror / Atom feed
From: Greg KH <gregkh@linuxfoundation.org>
To: Muchun Song <songmuchun@bytedance.com>
Cc: stable@vger.kernel.org, muchun.song@linux.dev,
	Ming Lei <ming.lei@redhat.com>, Jens Axboe <axboe@kernel.dk>
Subject: Re: [PATCH 5.15.y] block: fix missing dispatching request when queue is started or unquiesced
Date: Mon, 17 Mar 2025 07:56:33 +0100	[thread overview]
Message-ID: <2025031727-overstay-reckless-bfef@gregkh> (raw)
In-Reply-To: <20250317033039.6475-1-songmuchun@bytedance.com>

On Mon, Mar 17, 2025 at 11:30:39AM +0800, Muchun Song wrote:
> Supposing the following scenario with a virtio_blk driver.
> 
> CPU0                    CPU1                    CPU2
> 
> blk_mq_try_issue_directly()
>   __blk_mq_issue_directly()
>     q->mq_ops->queue_rq()
>       virtio_queue_rq()
>         blk_mq_stop_hw_queue()
>                                                 virtblk_done()
>                         blk_mq_try_issue_directly()
>                           if (blk_mq_hctx_stopped())
>   blk_mq_request_bypass_insert()                  blk_mq_run_hw_queue()
>   blk_mq_run_hw_queue()     blk_mq_run_hw_queue()
>                             blk_mq_insert_request()
>                             return
> 
> After CPU0 has marked the queue as stopped, CPU1 will see the queue is
> stopped. But before CPU1 puts the request on the dispatch list, CPU2
> receives the interrupt of completion of request, so it will run the
> hardware queue and marks the queue as non-stopped. Meanwhile, CPU1 also
> runs the same hardware queue. After both CPU1 and CPU2 complete
> blk_mq_run_hw_queue(), CPU1 just puts the request to the same hardware
> queue and returns. It misses dispatching a request. Fix it by running
> the hardware queue explicitly. And blk_mq_request_issue_directly()
> should handle a similar situation. Fix it as well.
> 
> Fixes: d964f04a8fde ("blk-mq: fix direct issue")
> Cc: stable@vger.kernel.org
> Cc: Muchun Song <muchun.song@linux.dev>
> Signed-off-by: Muchun Song <songmuchun@bytedance.com>
> Reviewed-by: Ming Lei <ming.lei@redhat.com>
> Link: https://lore.kernel.org/r/20241014092934.53630-2-songmuchun@bytedance.com
> Signed-off-by: Jens Axboe <axboe@kernel.dk>
> ---
>  block/blk-mq.c | 1 -
>  1 file changed, 1 deletion(-)
> 
> diff --git a/block/blk-mq.c b/block/blk-mq.c
> index 46cb802cfcf05..a15c665a77100 100644
> --- a/block/blk-mq.c
> +++ b/block/blk-mq.c
> @@ -2048,7 +2048,6 @@ static blk_status_t __blk_mq_try_issue_directly(struct blk_mq_hw_ctx *hctx,
>  	 * and avoid driver to try to dispatch again.
>  	 */
>  	if (blk_mq_hctx_stopped(hctx) || blk_queue_quiesced(q)) {
> -		run_queue = false;
>  		bypass_insert = false;
>  		goto insert;
>  	}
> -- 
> 2.20.1
> 
> 

<formletter>

This is not the correct way to submit patches for inclusion in the
stable kernel tree.  Please read:
    https://www.kernel.org/doc/html/latest/process/stable-kernel-rules.html
for how to do this properly.

</formletter>

  reply	other threads:[~2025-03-17  6:57 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-12-03 10:10 FAILED: patch "[PATCH] block: fix missing dispatching request when queue is started" failed to apply to 5.15-stable tree gregkh
2025-03-17  3:30 ` [PATCH 5.15.y] block: fix missing dispatching request when queue is started or unquiesced Muchun Song
2025-03-17  6:56   ` Greg KH [this message]
2025-03-17 16:39   ` Sasha Levin
2025-03-17  7:18 ` Muchun Song
2025-03-17 16:40   ` Sasha Levin
2025-04-22 12:20   ` Greg KH

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=2025031727-overstay-reckless-bfef@gregkh \
    --to=gregkh@linuxfoundation.org \
    --cc=axboe@kernel.dk \
    --cc=ming.lei@redhat.com \
    --cc=muchun.song@linux.dev \
    --cc=songmuchun@bytedance.com \
    --cc=stable@vger.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 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.