From: Jens Axboe <axboe@kernel.dk>
To: kernel test robot <oliver.sang@intel.com>,
Bart Van Assche <bvanassche@acm.org>
Cc: oe-lkp@lists.linux.dev, lkp@intel.com,
Linux Memory Management List <linux-mm@kvack.org>,
Oleksandr Natalenko <oleksandr@natalenko.name>,
Johannes Thumshirn <johannes.thumshirn@wdc.com>,
linux-block@vger.kernel.org, ying.huang@intel.com,
feng.tang@intel.com, fengwei.yin@intel.com
Subject: Re: [linux-next:master] [block/mq] 574e7779cf: fio.write_iops -72.9% regression
Date: Fri, 9 Feb 2024 14:06:03 -0700 [thread overview]
Message-ID: <35989f82-3c6b-4c91-ae9b-db8791895b19@kernel.dk> (raw)
In-Reply-To: <202401312320.a335db14-oliver.sang@intel.com>
On 1/31/24 8:42 AM, kernel test robot wrote:
>
>
> Hello,
>
> kernel test robot noticed a -72.9% regression of fio.write_iops on:
>
>
> commit: 574e7779cf583171acb5bf6365047bb0941b387c ("block/mq-deadline: use separate insertion lists")
> https://git.kernel.org/cgit/linux/kernel/git/next/linux-next.git master
>
> testcase: fio-basic
> test machine: 64 threads 2 sockets Intel(R) Xeon(R) Gold 6346 CPU @ 3.10GHz (Ice Lake) with 256G memory
> parameters:
>
> runtime: 300s
> disk: 1HDD
> fs: xfs
> nr_task: 100%
> test_size: 128G
> rw: write
> bs: 4k
> ioengine: io_uring
> direct: direct
> cpufreq_governor: performance
I looked into this, and I think I see what is happening. We do still do
insertion merges, but it's now postponed to dispatch time. This means
that for this crazy case, where you have 64 threads doing sequential
writes, we run out of tags (which is 64 by default) and hence dispatch
sooner than we would've before. Before, we would've queued one request,
then allocated a new one, and queued that. When that queue event
happened, we would merge with the previous - either upfront, or when the
request is inserted. In any case, we now have 1 bigger request, rather
than two smaller ones that still need merging.
This leaves more requests free.
I think we can solve this by doing smarter merging at insertion time.
I've dropped the series from my for-next branch for now, will need
revisiting and then I'll post it again.
--
Jens Axboe
prev parent reply other threads:[~2024-02-09 21:06 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-01-31 15:42 kernel test robot
2024-01-31 18:17 ` Bart Van Assche
2024-01-31 18:42 ` Jens Axboe
2024-02-01 7:18 ` Oliver Sang
2024-02-01 13:40 ` Jens Axboe
2024-02-01 14:03 ` Oliver Sang
2024-02-01 14:30 ` Jens Axboe
2024-02-01 14:45 ` Oliver Sang
2024-02-09 21:06 ` Jens Axboe [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=35989f82-3c6b-4c91-ae9b-db8791895b19@kernel.dk \
--to=axboe@kernel.dk \
--cc=bvanassche@acm.org \
--cc=feng.tang@intel.com \
--cc=fengwei.yin@intel.com \
--cc=johannes.thumshirn@wdc.com \
--cc=linux-block@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=lkp@intel.com \
--cc=oe-lkp@lists.linux.dev \
--cc=oleksandr@natalenko.name \
--cc=oliver.sang@intel.com \
--cc=ying.huang@intel.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