All of lore.kernel.org
 help / color / mirror / Atom feed
From: Christoph Hellwig <hch@infradead.org>
To: Xiaoguang Wang <xiaoguang.wang@linux.alibaba.com>
Cc: linux-block@vger.kernel.org, axboe@kernel.dk
Subject: Re: [RFC] blk-mq: complete request locallly if not in interrupt context
Date: Thu, 27 Jan 2022 01:54:55 -0800	[thread overview]
Message-ID: <YfJr76LOsSWLUqk2@infradead.org> (raw)
In-Reply-To: <20220127092143.1808-1-xiaoguang.wang@linux.alibaba.com>

On Thu, Jan 27, 2022 at 05:21:43PM +0800, Xiaoguang Wang wrote:
> For block devices that call blk_mq_complete_request() to end request
> in process context, it's pointless to redirect the completion to be
> done in block soft-irq, also blk_mq_raise_softirq() isnt't a very
> light operation, which contains preempt and hard irq disable, wake
> up ksoftirqd in non-interrupt context.
> 
> I found this issue while I use tcm_loop and tcmu(backstore is file)
> to evaluate performance, tcm_loop end request in workqueue.
> Without this patch: libaio engine, direct io, randwrite, io size 128k
> job0: (groupid=0, jobs=1): err= 0: pid=20876: Thu Jan 27 15:33:45 2022
>   write: IOPS=15.7k, BW=1966MiB/s (2062MB/s)(115GiB/60001msec); 0 zone resets
>     slat (nsec): min=5675, max=83552, avg=8689.69, stdev=996.96
>     clat (usec): min=231, max=99977, avg=498.89, stdev=501.69
>      lat (usec): min=291, max=99986, avg=507.70, stdev=501.69
> 
> With this patch:
> job0: (groupid=0, jobs=1): err= 0: pid=12813: Thu Jan 27 15:50:46 2022
>   write: IOPS=16.8k, BW=2101MiB/s (2203MB/s)(123GiB/60001msec); 0 zone resets
>     slat (usec): min=5, max=125, avg=14.12, stdev=10.31
>     clat (usec): min=306, max=65380, avg=460.78, stdev=506.24
>      lat (usec): min=341, max=65389, avg=475.04, stdev=505.27
> 
> Which improves throughput and reduces lat.

Just use blk_mq_complete_request_direct for callers that know they are
not in interrupt context.

      reply	other threads:[~2022-01-27  9:54 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-01-27  9:21 [RFC] blk-mq: complete request locallly if not in interrupt context Xiaoguang Wang
2022-01-27  9:54 ` Christoph Hellwig [this message]

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=YfJr76LOsSWLUqk2@infradead.org \
    --to=hch@infradead.org \
    --cc=axboe@kernel.dk \
    --cc=linux-block@vger.kernel.org \
    --cc=xiaoguang.wang@linux.alibaba.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.