public inbox for linux-btrfs@vger.kernel.org
 help / color / mirror / Atom feed
* Re: [linus:master] [block]  e70c301fae: stress-ng.aiol.ops_per_sec 49.6% regression
       [not found]         ` <Z3ZhNYHKZPMpv8Cz@ryzen>
@ 2025-01-03  6:49           ` Christoph Hellwig
  2025-01-03  9:09             ` Niklas Cassel
  2025-01-07  8:26             ` Oliver Sang
  0 siblings, 2 replies; 11+ messages in thread
From: Christoph Hellwig @ 2025-01-03  6:49 UTC (permalink / raw)
  To: Niklas Cassel
  Cc: Christoph Hellwig, Oliver Sang, oe-lkp, lkp, linux-kernel,
	Jens Axboe, linux-block, virtualization, linux-nvme,
	Damien Le Moal, linux-btrfs, linux-aio

On Thu, Jan 02, 2025 at 10:49:41AM +0100, Niklas Cassel wrote:
> > > from below information, it seems an 'ahci' to me. but since I have limited
> > > knowledge about storage driver, maybe I'm wrong. if you want more information,
> > > please let us know. thanks a lot!
> > 
> > Yes, this looks like ahci.  Thanks a lot!
> 
> Did this ever get resolved?
> 
> I haven't seen a patch that seems to address this.
> 
> AHCI (ata_scsi_queuecmd()) only issues a single command, so if there is any
> reordering when issuing a batch of commands, my guess is that the problem
> also affects SCSI / the problem is in upper layers above AHCI, i.e. SCSI lib
> or block layer.

I started looking into this before the holidays.  blktrace shows perfectly
sequential writes without any reordering using ahci, directly on the
block device or using xfs and btrfs when using dd.  I also started
looking into what the test does and got as far as checking out the
stress-ng source tree and looking at stress-aiol.c.  AFAICS the default
submission does simple reads and writes using increasing offsets.
So if the test result isn't a fluke either the aio code does some
weird reordering or btrfs does.

Oliver, did the test also show any interesting results on non-btrfs
setups?


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [linus:master] [block]  e70c301fae: stress-ng.aiol.ops_per_sec 49.6% regression
  2025-01-03  6:49           ` [linus:master] [block] e70c301fae: stress-ng.aiol.ops_per_sec 49.6% regression Christoph Hellwig
@ 2025-01-03  9:09             ` Niklas Cassel
  2025-01-06  7:21               ` Christoph Hellwig
  2025-01-07  8:27               ` Oliver Sang
  2025-01-07  8:26             ` Oliver Sang
  1 sibling, 2 replies; 11+ messages in thread
From: Niklas Cassel @ 2025-01-03  9:09 UTC (permalink / raw)
  To: Christoph Hellwig
  Cc: Oliver Sang, oe-lkp, lkp, linux-kernel, Jens Axboe, linux-block,
	virtualization, linux-nvme, Damien Le Moal, linux-btrfs,
	linux-aio

On Fri, Jan 03, 2025 at 07:49:25AM +0100, Christoph Hellwig wrote:
> On Thu, Jan 02, 2025 at 10:49:41AM +0100, Niklas Cassel wrote:
> > > > from below information, it seems an 'ahci' to me. but since I have limited
> > > > knowledge about storage driver, maybe I'm wrong. if you want more information,
> > > > please let us know. thanks a lot!
> > > 
> > > Yes, this looks like ahci.  Thanks a lot!
> > 
> > Did this ever get resolved?
> > 
> > I haven't seen a patch that seems to address this.
> > 
> > AHCI (ata_scsi_queuecmd()) only issues a single command, so if there is any
> > reordering when issuing a batch of commands, my guess is that the problem
> > also affects SCSI / the problem is in upper layers above AHCI, i.e. SCSI lib
> > or block layer.
> 
> I started looking into this before the holidays.  blktrace shows perfectly
> sequential writes without any reordering using ahci, directly on the
> block device or using xfs and btrfs when using dd.  I also started
> looking into what the test does and got as far as checking out the
> stress-ng source tree and looking at stress-aiol.c.  AFAICS the default
> submission does simple reads and writes using increasing offsets.
> So if the test result isn't a fluke either the aio code does some
> weird reordering or btrfs does.
> 
> Oliver, did the test also show any interesting results on non-btrfs
> setups?
> 

One thing that came to mind.
Some distros (e.g. Fedora and openSUSE) ship with an udev rule that sets
the I/O scheduler to BFQ for single-queue HDDs.

It could very well be the I/O scheduler that reorders.

Oliver, which I/O scheduler are you using?
$ cat /sys/block/sdb/queue/scheduler 
none mq-deadline kyber [bfq]


Kind regards,
Niklas

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [linus:master] [block]  e70c301fae: stress-ng.aiol.ops_per_sec 49.6% regression
  2025-01-03  9:09             ` Niklas Cassel
@ 2025-01-06  7:21               ` Christoph Hellwig
  2025-01-07  8:27               ` Oliver Sang
  1 sibling, 0 replies; 11+ messages in thread
From: Christoph Hellwig @ 2025-01-06  7:21 UTC (permalink / raw)
  To: Niklas Cassel
  Cc: Christoph Hellwig, Oliver Sang, oe-lkp, lkp, linux-kernel,
	Jens Axboe, linux-block, virtualization, linux-nvme,
	Damien Le Moal, linux-btrfs, linux-aio

On Fri, Jan 03, 2025 at 10:09:14AM +0100, Niklas Cassel wrote:
> One thing that came to mind.
> Some distros (e.g. Fedora and openSUSE) ship with an udev rule that sets
> the I/O scheduler to BFQ for single-queue HDDs.
> 
> It could very well be the I/O scheduler that reorders.
> 
> Oliver, which I/O scheduler are you using?
> $ cat /sys/block/sdb/queue/scheduler 
> none mq-deadline kyber [bfq]

I tried cfq as well and there is no reordering with our without various
file systems in the mix.  I've also tried forcing the rotational
attribute on and off just for an extra variation.


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [linus:master] [block]  e70c301fae: stress-ng.aiol.ops_per_sec 49.6% regression
  2025-01-03  6:49           ` [linus:master] [block] e70c301fae: stress-ng.aiol.ops_per_sec 49.6% regression Christoph Hellwig
  2025-01-03  9:09             ` Niklas Cassel
@ 2025-01-07  8:26             ` Oliver Sang
  1 sibling, 0 replies; 11+ messages in thread
From: Oliver Sang @ 2025-01-07  8:26 UTC (permalink / raw)
  To: Christoph Hellwig
  Cc: Niklas Cassel, oe-lkp, lkp, linux-kernel, Jens Axboe, linux-block,
	virtualization, linux-nvme, Damien Le Moal, linux-btrfs,
	linux-aio, oliver.sang

hi, Christoph Hellwig,

On Fri, Jan 03, 2025 at 07:49:25AM +0100, Christoph Hellwig wrote:
> On Thu, Jan 02, 2025 at 10:49:41AM +0100, Niklas Cassel wrote:
> > > > from below information, it seems an 'ahci' to me. but since I have limited
> > > > knowledge about storage driver, maybe I'm wrong. if you want more information,
> > > > please let us know. thanks a lot!
> > > 
> > > Yes, this looks like ahci.  Thanks a lot!
> > 
> > Did this ever get resolved?
> > 
> > I haven't seen a patch that seems to address this.
> > 
> > AHCI (ata_scsi_queuecmd()) only issues a single command, so if there is any
> > reordering when issuing a batch of commands, my guess is that the problem
> > also affects SCSI / the problem is in upper layers above AHCI, i.e. SCSI lib
> > or block layer.
> 
> I started looking into this before the holidays.  blktrace shows perfectly
> sequential writes without any reordering using ahci, directly on the
> block device or using xfs and btrfs when using dd.  I also started
> looking into what the test does and got as far as checking out the
> stress-ng source tree and looking at stress-aiol.c.  AFAICS the default
> submission does simple reads and writes using increasing offsets.
> So if the test result isn't a fluke either the aio code does some
> weird reordering or btrfs does.
> 
> Oliver, did the test also show any interesting results on non-btrfs
> setups?
> 

I tried to run with ext4 fs [1] and xfs [2], seems not be able to get stable
results (%stddev is too big, even bigger than %change). seems no value from
both tests.


[1]
=========================================================================================
compiler/cpufreq_governor/disk/fs/kconfig/nr_threads/rootfs/tbox_group/test/testcase/testtime:
  gcc-12/performance/1HDD/ext4/x86_64-rhel-9.4/100%/debian-12-x86_64-20240206.cgz/lkp-icl-2sp8/aiol/stress-ng/60s

a3396b99990d8b4e e70c301faece15b618e54b613b1
---------------- ---------------------------
         %stddev     %change         %stddev
             \          |                \
    142.01 ± 17%      -4.6%     135.55 ± 18%  stress-ng.aiol.async_I/O_events_completed_per_sec
     14077 ± 14%      -3.3%      13617 ± 15%  stress-ng.aiol.ops
    233.95 ± 14%      -3.4%     225.97 ± 15%  stress-ng.aiol.ops_per_sec


[2]
=========================================================================================
compiler/cpufreq_governor/disk/fs/kconfig/nr_threads/rootfs/tbox_group/test/testcase/testtime:
  gcc-12/performance/1HDD/xfs/x86_64-rhel-9.4/100%/debian-12-x86_64-20240206.cgz/lkp-icl-2sp8/aiol/stress-ng/60s

a3396b99990d8b4e e70c301faece15b618e54b613b1
---------------- ---------------------------
         %stddev     %change         %stddev
             \          |                \
     11.97 ± 21%     +18.5%      14.19 ± 44%  stress-ng.aiol.async_I/O_events_completed_per_sec
      1498 ± 33%      +9.5%       1640 ± 49%  stress-ng.aiol.ops
     23.45 ± 34%     +10.2%      25.85 ± 52%  stress-ng.aiol.ops_per_sec

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [linus:master] [block]  e70c301fae: stress-ng.aiol.ops_per_sec 49.6% regression
  2025-01-03  9:09             ` Niklas Cassel
  2025-01-06  7:21               ` Christoph Hellwig
@ 2025-01-07  8:27               ` Oliver Sang
  2025-01-08 10:39                 ` Niklas Cassel
  1 sibling, 1 reply; 11+ messages in thread
From: Oliver Sang @ 2025-01-07  8:27 UTC (permalink / raw)
  To: Niklas Cassel
  Cc: Christoph Hellwig, oe-lkp, lkp, linux-kernel, Jens Axboe,
	linux-block, virtualization, linux-nvme, Damien Le Moal,
	linux-btrfs, linux-aio, oliver.sang

hi, Niklas,

On Fri, Jan 03, 2025 at 10:09:14AM +0100, Niklas Cassel wrote:
> On Fri, Jan 03, 2025 at 07:49:25AM +0100, Christoph Hellwig wrote:
> > On Thu, Jan 02, 2025 at 10:49:41AM +0100, Niklas Cassel wrote:
> > > > > from below information, it seems an 'ahci' to me. but since I have limited
> > > > > knowledge about storage driver, maybe I'm wrong. if you want more information,
> > > > > please let us know. thanks a lot!
> > > > 
> > > > Yes, this looks like ahci.  Thanks a lot!
> > > 
> > > Did this ever get resolved?
> > > 
> > > I haven't seen a patch that seems to address this.
> > > 
> > > AHCI (ata_scsi_queuecmd()) only issues a single command, so if there is any
> > > reordering when issuing a batch of commands, my guess is that the problem
> > > also affects SCSI / the problem is in upper layers above AHCI, i.e. SCSI lib
> > > or block layer.
> > 
> > I started looking into this before the holidays.  blktrace shows perfectly
> > sequential writes without any reordering using ahci, directly on the
> > block device or using xfs and btrfs when using dd.  I also started
> > looking into what the test does and got as far as checking out the
> > stress-ng source tree and looking at stress-aiol.c.  AFAICS the default
> > submission does simple reads and writes using increasing offsets.
> > So if the test result isn't a fluke either the aio code does some
> > weird reordering or btrfs does.
> > 
> > Oliver, did the test also show any interesting results on non-btrfs
> > setups?
> > 
> 
> One thing that came to mind.
> Some distros (e.g. Fedora and openSUSE) ship with an udev rule that sets
> the I/O scheduler to BFQ for single-queue HDDs.
> 
> It could very well be the I/O scheduler that reorders.
> 
> Oliver, which I/O scheduler are you using?
> $ cat /sys/block/sdb/queue/scheduler 
> none mq-deadline kyber [bfq]

while our test running:

# cat /sys/block/sdb/queue/scheduler
none [mq-deadline] kyber bfq

> 
> 
> Kind regards,
> Niklas

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [linus:master] [block]  e70c301fae: stress-ng.aiol.ops_per_sec 49.6% regression
  2025-01-07  8:27               ` Oliver Sang
@ 2025-01-08 10:39                 ` Niklas Cassel
  2025-01-10  6:53                   ` Oliver Sang
  2025-01-14  6:45                   ` Oliver Sang
  0 siblings, 2 replies; 11+ messages in thread
From: Niklas Cassel @ 2025-01-08 10:39 UTC (permalink / raw)
  To: Oliver Sang
  Cc: Christoph Hellwig, oe-lkp, lkp, linux-kernel, Jens Axboe,
	linux-block, virtualization, linux-nvme, Damien Le Moal,
	linux-btrfs, linux-aio

On Tue, Jan 07, 2025 at 04:27:44PM +0800, Oliver Sang wrote:
> hi, Niklas,
> 
> On Fri, Jan 03, 2025 at 10:09:14AM +0100, Niklas Cassel wrote:
> > On Fri, Jan 03, 2025 at 07:49:25AM +0100, Christoph Hellwig wrote:
> > > On Thu, Jan 02, 2025 at 10:49:41AM +0100, Niklas Cassel wrote:
> > > > > > from below information, it seems an 'ahci' to me. but since I have limited
> > > > > > knowledge about storage driver, maybe I'm wrong. if you want more information,
> > > > > > please let us know. thanks a lot!
> > > > > 
> > > > > Yes, this looks like ahci.  Thanks a lot!
> > > > 
> > > > Did this ever get resolved?
> > > > 
> > > > I haven't seen a patch that seems to address this.
> > > > 
> > > > AHCI (ata_scsi_queuecmd()) only issues a single command, so if there is any
> > > > reordering when issuing a batch of commands, my guess is that the problem
> > > > also affects SCSI / the problem is in upper layers above AHCI, i.e. SCSI lib
> > > > or block layer.
> > > 
> > > I started looking into this before the holidays.  blktrace shows perfectly
> > > sequential writes without any reordering using ahci, directly on the
> > > block device or using xfs and btrfs when using dd.  I also started
> > > looking into what the test does and got as far as checking out the
> > > stress-ng source tree and looking at stress-aiol.c.  AFAICS the default
> > > submission does simple reads and writes using increasing offsets.
> > > So if the test result isn't a fluke either the aio code does some
> > > weird reordering or btrfs does.
> > > 
> > > Oliver, did the test also show any interesting results on non-btrfs
> > > setups?
> > > 
> > 
> > One thing that came to mind.
> > Some distros (e.g. Fedora and openSUSE) ship with an udev rule that sets
> > the I/O scheduler to BFQ for single-queue HDDs.
> > 
> > It could very well be the I/O scheduler that reorders.
> > 
> > Oliver, which I/O scheduler are you using?
> > $ cat /sys/block/sdb/queue/scheduler 
> > none mq-deadline kyber [bfq]
> 
> while our test running:
> 
> # cat /sys/block/sdb/queue/scheduler
> none [mq-deadline] kyber bfq

The stddev numbers you showed is all over the place, so are we certain
if this is a regression caused by commit e70c301faece ("block:
don't reorder requests in blk_add_rq_to_plug") ?

Do you know if the stddev has such big variation for this test even before
the commit?


If it is not too much to ask... It might be interesting to know if we see
a regression when comparing before/after e70c301faece with scheduler none
instead of mq-deadline.


Kind regards,
Niklas

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [linus:master] [block]  e70c301fae: stress-ng.aiol.ops_per_sec 49.6% regression
  2025-01-08 10:39                 ` Niklas Cassel
@ 2025-01-10  6:53                   ` Oliver Sang
  2025-01-15 11:42                     ` Niklas Cassel
  2025-01-14  6:45                   ` Oliver Sang
  1 sibling, 1 reply; 11+ messages in thread
From: Oliver Sang @ 2025-01-10  6:53 UTC (permalink / raw)
  To: Niklas Cassel
  Cc: Christoph Hellwig, oe-lkp, lkp, linux-kernel, Jens Axboe,
	linux-block, virtualization, linux-nvme, Damien Le Moal,
	linux-btrfs, linux-aio, oliver.sang

hi, Niklas,

On Wed, Jan 08, 2025 at 11:39:28AM +0100, Niklas Cassel wrote:
> On Tue, Jan 07, 2025 at 04:27:44PM +0800, Oliver Sang wrote:
> > hi, Niklas,
> > 
> > On Fri, Jan 03, 2025 at 10:09:14AM +0100, Niklas Cassel wrote:
> > > On Fri, Jan 03, 2025 at 07:49:25AM +0100, Christoph Hellwig wrote:
> > > > On Thu, Jan 02, 2025 at 10:49:41AM +0100, Niklas Cassel wrote:
> > > > > > > from below information, it seems an 'ahci' to me. but since I have limited
> > > > > > > knowledge about storage driver, maybe I'm wrong. if you want more information,
> > > > > > > please let us know. thanks a lot!
> > > > > > 
> > > > > > Yes, this looks like ahci.  Thanks a lot!
> > > > > 
> > > > > Did this ever get resolved?
> > > > > 
> > > > > I haven't seen a patch that seems to address this.
> > > > > 
> > > > > AHCI (ata_scsi_queuecmd()) only issues a single command, so if there is any
> > > > > reordering when issuing a batch of commands, my guess is that the problem
> > > > > also affects SCSI / the problem is in upper layers above AHCI, i.e. SCSI lib
> > > > > or block layer.
> > > > 
> > > > I started looking into this before the holidays.  blktrace shows perfectly
> > > > sequential writes without any reordering using ahci, directly on the
> > > > block device or using xfs and btrfs when using dd.  I also started
> > > > looking into what the test does and got as far as checking out the
> > > > stress-ng source tree and looking at stress-aiol.c.  AFAICS the default
> > > > submission does simple reads and writes using increasing offsets.
> > > > So if the test result isn't a fluke either the aio code does some
> > > > weird reordering or btrfs does.
> > > > 
> > > > Oliver, did the test also show any interesting results on non-btrfs
> > > > setups?
> > > > 
> > > 
> > > One thing that came to mind.
> > > Some distros (e.g. Fedora and openSUSE) ship with an udev rule that sets
> > > the I/O scheduler to BFQ for single-queue HDDs.
> > > 
> > > It could very well be the I/O scheduler that reorders.
> > > 
> > > Oliver, which I/O scheduler are you using?
> > > $ cat /sys/block/sdb/queue/scheduler 
> > > none mq-deadline kyber [bfq]
> > 
> > while our test running:
> > 
> > # cat /sys/block/sdb/queue/scheduler
> > none [mq-deadline] kyber bfq
> 
> The stddev numbers you showed is all over the place, so are we certain
> if this is a regression caused by commit e70c301faece ("block:
> don't reorder requests in blk_add_rq_to_plug") ?
> 
> Do you know if the stddev has such big variation for this test even before
> the commit?

in order to address your concern, we rebuild kernels for e70c301fae and its
parent a3396b9999, also for v6.12-rc4. the config is still same as shared
in our original report:
https://download.01.org/0day-ci/archive/20241212/202412122112.ca47bcec-lkp@intel.com/config-6.12.0-rc4-00120-ge70c301faece

(
ok, with a small diff

@@ -19,7 +19,7 @@ CONFIG_GCC_ASM_GOTO_OUTPUT_BROKEN=y
 CONFIG_TOOLS_SUPPORT_RELR=y
 CONFIG_CC_HAS_ASM_INLINE=y
 CONFIG_CC_HAS_NO_PROFILE_FN_ATTR=y
-CONFIG_PAHOLE_VERSION=127
+CONFIG_PAHOLE_VERSION=128
 CONFIG_IRQ_WORK=y
 CONFIG_BUILDTIME_TABLE_SORT=y
 CONFIG_THREAD_INFO_IN_TASK=y

but anyway, the configs for e70c301fae, a3396b9999 and v6.12-rc4 for runs this
time are same
)

then we rerun tests more times than before. (normally we run tests for each
commit 6 times at least, this time, 15 times for each commit. but due to our
bot run some tests more times for various purpose, so we got 16 results for
a3396b9999 and 24 results for v6.12-rc4).

summary results are as below:

=========================================================================================
compiler/cpufreq_governor/disk/fs/kconfig/nr_threads/rootfs/tbox_group/test/testcase/testtime:
  gcc-12/performance/1HDD/btrfs/x86_64-rhel-9.4/100%/debian-12-x86_64-20240206.cgz/lkp-icl-2sp8/aiol/stress-ng/60s

commit:
  v6.12-rc4
  a3396b9999 ("block: add a rq_list type")
  e70c301fae ("block: don't reorder requests in blk_add_rq_to_plug")

       v6.12-rc4 a3396b99990d8b4e5797e7b16fd e70c301faece15b618e54b613b1
---------------- --------------------------- ---------------------------
         %stddev     %change         %stddev     %change         %stddev
             \          |                \          |                \
    187.64 ±  5%      -0.6%     186.48 ±  7%     -47.6%      98.29 ± 17%  stress-ng.aiol.ops_per_sec

yes, the %stddev is not small, which means the data is not very stable, but
still much better than ext4 or xfs I shared in another mail.

a3396b9999 has very similar results as v6.12-rc4, both stress-ng.aiol.ops_per_sec
score and %stddev, e70c301fae has even bigger %stddev, but since the %change is
bigger, we still think the data is valid.

also list the raw data as below FYI.

e70c301faece15b618e54b613b1fd6ece3dd05b4/matrix.json:  "stress-ng.aiol.ops_per_sec": [
e70c301faece15b618e54b613b1fd6ece3dd05b4/matrix.json-    112.31,
e70c301faece15b618e54b613b1fd6ece3dd05b4/matrix.json-    76.2,
e70c301faece15b618e54b613b1fd6ece3dd05b4/matrix.json-    111.71,
e70c301faece15b618e54b613b1fd6ece3dd05b4/matrix.json-    109.43,
e70c301faece15b618e54b613b1fd6ece3dd05b4/matrix.json-    106.02,
e70c301faece15b618e54b613b1fd6ece3dd05b4/matrix.json-    101.38,
e70c301faece15b618e54b613b1fd6ece3dd05b4/matrix.json-    109.94,
e70c301faece15b618e54b613b1fd6ece3dd05b4/matrix.json-    103.79,
e70c301faece15b618e54b613b1fd6ece3dd05b4/matrix.json-    116.88,
e70c301faece15b618e54b613b1fd6ece3dd05b4/matrix.json-    61.9,
e70c301faece15b618e54b613b1fd6ece3dd05b4/matrix.json-    104.32,
e70c301faece15b618e54b613b1fd6ece3dd05b4/matrix.json-    100.19,
e70c301faece15b618e54b613b1fd6ece3dd05b4/matrix.json-    87.52,
e70c301faece15b618e54b613b1fd6ece3dd05b4/matrix.json-    64.11,
e70c301faece15b618e54b613b1fd6ece3dd05b4/matrix.json-    108.66
e70c301faece15b618e54b613b1fd6ece3dd05b4/matrix.json-  ],


a3396b99990d8b4e5797e7b16fdeb64c15ae97bb/matrix.json:  "stress-ng.aiol.ops_per_sec": [
a3396b99990d8b4e5797e7b16fdeb64c15ae97bb/matrix.json-    175.57,
a3396b99990d8b4e5797e7b16fdeb64c15ae97bb/matrix.json-    182.85,
a3396b99990d8b4e5797e7b16fdeb64c15ae97bb/matrix.json-    192.2,
a3396b99990d8b4e5797e7b16fdeb64c15ae97bb/matrix.json-    191.0,
a3396b99990d8b4e5797e7b16fdeb64c15ae97bb/matrix.json-    178.72,
a3396b99990d8b4e5797e7b16fdeb64c15ae97bb/matrix.json-    174.45,
a3396b99990d8b4e5797e7b16fdeb64c15ae97bb/matrix.json-    196.39,
a3396b99990d8b4e5797e7b16fdeb64c15ae97bb/matrix.json-    196.96,
a3396b99990d8b4e5797e7b16fdeb64c15ae97bb/matrix.json-    142.27,
a3396b99990d8b4e5797e7b16fdeb64c15ae97bb/matrix.json-    196.54,
a3396b99990d8b4e5797e7b16fdeb64c15ae97bb/matrix.json-    193.73,
a3396b99990d8b4e5797e7b16fdeb64c15ae97bb/matrix.json-    193.85,
a3396b99990d8b4e5797e7b16fdeb64c15ae97bb/matrix.json-    194.63,
a3396b99990d8b4e5797e7b16fdeb64c15ae97bb/matrix.json-    184.75,
a3396b99990d8b4e5797e7b16fdeb64c15ae97bb/matrix.json-    196.38,
a3396b99990d8b4e5797e7b16fdeb64c15ae97bb/matrix.json-    193.44
a3396b99990d8b4e5797e7b16fdeb64c15ae97bb/matrix.json-  ],


v6.12-rc4/matrix.json:  "stress-ng.aiol.ops_per_sec": [
v6.12-rc4/matrix.json-    193.49,
v6.12-rc4/matrix.json-    185.16,
v6.12-rc4/matrix.json-    187.78,
v6.12-rc4/matrix.json-    187.25,
v6.12-rc4/matrix.json-    193.65,
v6.12-rc4/matrix.json-    195.93,
v6.12-rc4/matrix.json-    194.48,
v6.12-rc4/matrix.json-    190.68,
v6.12-rc4/matrix.json-    195.61,
v6.12-rc4/matrix.json-    188.66,
v6.12-rc4/matrix.json-    181.88,
v6.12-rc4/matrix.json-    195.75,
v6.12-rc4/matrix.json-    187.21,
v6.12-rc4/matrix.json-    194.72,
v6.12-rc4/matrix.json-    159.46,
v6.12-rc4/matrix.json-    188.29,
v6.12-rc4/matrix.json-    189.42,
v6.12-rc4/matrix.json-    194.79,
v6.12-rc4/matrix.json-    192.25,
v6.12-rc4/matrix.json-    153.43,
v6.12-rc4/matrix.json-    196.16,
v6.12-rc4/matrix.json-    168.24,
v6.12-rc4/matrix.json-    193.78,
v6.12-rc4/matrix.json-    195.33
v6.12-rc4/matrix.json-  ],


the full comparison is as beloe [1] FYI.

> 
> 
> If it is not too much to ask... It might be interesting to know if we see
> a regression when comparing before/after e70c301faece with scheduler none
> instead of mq-deadline.

ok, we can do this. but due to resource constraint and our current priority,
please don't expect that we can supply results soon. thanks

> 
> 
> Kind regards,
> Niklas
> 


[1]
=========================================================================================
compiler/cpufreq_governor/disk/fs/kconfig/nr_threads/rootfs/tbox_group/test/testcase/testtime:
  gcc-12/performance/1HDD/btrfs/x86_64-rhel-9.4/100%/debian-12-x86_64-20240206.cgz/lkp-icl-2sp8/aiol/stress-ng/60s

commit:
  v6.12-rc4
  a3396b9999 ("block: add a rq_list type")
  e70c301fae ("block: don't reorder requests in blk_add_rq_to_plug")

       v6.12-rc4 a3396b99990d8b4e5797e7b16fd e70c301faece15b618e54b613b1
---------------- --------------------------- ---------------------------
         %stddev     %change         %stddev     %change         %stddev
             \          |                \          |                \
    642.17 ± 27%     -14.3%     550.12 ± 39%     -56.2%     281.53 ± 47%  perf-c2c.HITM.local
     45.74            +0.1%      45.79 ±  2%     -10.1%      41.12 ±  2%  iostat.cpu.idle
     53.09            -0.2%      52.99            +8.9%      57.80        iostat.cpu.iowait
     44.17 ±  2%      +0.0       44.20 ±  2%      -4.8       39.36 ±  2%  mpstat.cpu.all.idle%
      0.46 ±  4%      +0.0        0.48 ±  9%      -0.1        0.32 ±  8%  mpstat.cpu.all.sys%
     14022 ± 33%      +5.7%      14817 ± 21%     -57.5%       5953 ± 15%  perf-sched.wait_and_delay.count.schedule_preempt_disabled.rwsem_down_read_slowpath.down_read.btrfs_tree_read_lock_nested
      3698 ± 32%     +11.6%       4126 ± 30%     -63.0%       1367 ± 27%  perf-sched.wait_and_delay.count.schedule_preempt_disabled.rwsem_down_write_slowpath.down_write.btrfs_tree_lock_nested
     14683 ±  5%      -0.2%      14651 ±  7%     -46.3%       7886 ± 17%  vmstat.io.bi
     16122 ±  5%      -0.2%      16087 ±  7%     -45.4%       8796 ± 16%  vmstat.io.bo
      7237 ± 22%      -7.4%       6699 ± 20%     -54.5%       3295 ± 22%  meminfo.Dirty
     24305 ± 15%      -1.1%      24025 ± 17%     -40.6%      14427 ± 14%  meminfo.Inactive
     24305 ± 15%      -1.1%      24025 ± 17%     -40.6%      14427 ± 14%  meminfo.Inactive(file)
   1997820 ±  6%      -1.2%    1974059 ±  7%     -47.9%    1040100 ± 16%  time.file_system_inputs
   2008181 ±  6%      -1.2%    1984688 ±  7%     -47.5%    1054950 ± 16%  time.file_system_outputs
      1893 ±  9%      -2.6%       1844 ±  8%     -25.9%       1403 ± 14%  time.involuntary_context_switches
      0.37 ±  6%      +2.6%       0.38 ±  9%     -42.9%       0.21 ± 14%  time.user_time
    125.95 ±  5%      -0.6%     125.18 ±  7%     -47.2%      66.52 ± 17%  stress-ng.aiol.async_I/O_events_completed_per_sec
     11574 ±  6%      -1.2%      11430 ±  7%     -48.5%       5955 ± 17%  stress-ng.aiol.ops
    187.64 ±  5%      -0.6%     186.48 ±  7%     -47.6%      98.29 ± 17%  stress-ng.aiol.ops_per_sec
   1997820 ±  6%      -1.2%    1974059 ±  7%     -47.9%    1040100 ± 16%  stress-ng.time.file_system_inputs
   2008181 ±  6%      -1.2%    1984688 ±  7%     -47.5%    1054950 ± 16%  stress-ng.time.file_system_outputs
      4333 ± 24%     -10.5%       3877 ± 20%     -57.2%       1853 ± 19%  numa-meminfo.node0.Dirty
     14414 ± 15%      -5.4%      13632 ± 20%     -44.4%       8019 ± 19%  numa-meminfo.node0.Inactive
     14414 ± 15%      -5.4%      13632 ± 20%     -44.4%       8019 ± 19%  numa-meminfo.node0.Inactive(file)
      2916 ± 22%      -2.9%       2833 ± 24%     -50.7%       1439 ± 28%  numa-meminfo.node1.Dirty
      9940 ± 18%      +4.8%      10419 ± 17%     -35.0%       6462 ± 21%  numa-meminfo.node1.Inactive
      9940 ± 18%      +4.8%      10419 ± 17%     -35.0%       6462 ± 21%  numa-meminfo.node1.Inactive(file)
      1.15 ±  4%      -1.0%       1.14 ±  3%     +17.0%       1.35 ±  6%  perf-stat.i.MPKI
  14638106 ±  3%      +1.9%   14923264 ±  3%     -10.8%   13053409 ±  8%  perf-stat.i.cache-references
      4.25 ±  4%      +0.0        4.27            +0.4        4.63 ±  2%  perf-stat.overall.branch-miss-rate%
      0.95            +0.7%       0.95 ±  2%      -4.8%       0.90        perf-stat.overall.cpi
      1.06            -0.6%       1.05 ±  2%      +5.0%       1.11        perf-stat.overall.ipc
  14448948 ±  3%      +2.0%   14733547 ±  3%     -10.8%   12885674 ±  8%  perf-stat.ps.cache-references
 3.675e+08 ± 23%     -12.5%  3.215e+08 ± 38%    +119.8%  8.077e+08 ± 14%  sched_debug.cfs_rq:/.avg_vruntime.avg
 8.117e+08 ± 23%     -14.5%  6.942e+08 ± 38%    +111.1%  1.714e+09 ±  9%  sched_debug.cfs_rq:/.avg_vruntime.max
 2.135e+08 ± 23%     -11.3%  1.893e+08 ± 38%     +94.6%  4.155e+08 ±  7%  sched_debug.cfs_rq:/.avg_vruntime.stddev
 3.675e+08 ± 23%     -12.5%  3.215e+08 ± 38%    +119.8%  8.077e+08 ± 14%  sched_debug.cfs_rq:/.min_vruntime.avg
 8.117e+08 ± 23%     -14.5%  6.942e+08 ± 38%    +111.1%  1.714e+09 ±  9%  sched_debug.cfs_rq:/.min_vruntime.max
 2.135e+08 ± 23%     -11.3%  1.893e+08 ± 38%     +94.6%  4.155e+08 ±  7%  sched_debug.cfs_rq:/.min_vruntime.stddev
     10720 ± 16%      -7.9%       9870 ± 19%     -48.9%       5475 ± 18%  numa-vmstat.node0.nr_dirtied
      1086 ± 24%     -10.6%     972.03 ± 20%     -57.2%     464.99 ± 19%  numa-vmstat.node0.nr_dirty
    124767 ± 19%      +8.2%     134943 ± 25%     -48.8%      63821 ± 25%  numa-vmstat.node0.nr_foll_pin_acquired
    124590 ± 19%      +8.1%     134739 ± 25%     -48.9%      63722 ± 25%  numa-vmstat.node0.nr_foll_pin_released
      3627 ± 14%      -5.5%       3428 ± 20%     -44.5%       2014 ± 19%  numa-vmstat.node0.nr_inactive_file
      6842 ± 18%      -5.7%       6453 ± 27%     -44.0%       3829 ± 23%  numa-vmstat.node0.nr_written
      3627 ± 14%      -5.5%       3428 ± 20%     -44.5%       2014 ± 19%  numa-vmstat.node0.nr_zone_inactive_file
      1101 ± 23%     -10.6%     985.18 ± 20%     -57.1%     472.33 ± 18%  numa-vmstat.node0.nr_zone_write_pending
    728.88 ± 22%      -2.4%     711.19 ± 24%     -50.5%     361.14 ± 28%  numa-vmstat.node1.nr_dirty
    132261 ± 21%     -13.7%     114207 ± 24%     -50.6%      65275 ± 24%  numa-vmstat.node1.nr_foll_pin_acquired
    132076 ± 21%     -13.7%     114026 ± 24%     -50.7%      65176 ± 24%  numa-vmstat.node1.nr_foll_pin_released
      2502 ± 18%      +4.9%       2624 ± 17%     -35.1%       1623 ± 21%  numa-vmstat.node1.nr_inactive_file
      2502 ± 18%      +4.9%       2624 ± 17%     -35.1%       1623 ± 21%  numa-vmstat.node1.nr_zone_inactive_file
    738.83 ± 22%      -2.5%     720.39 ± 24%     -50.4%     366.25 ± 28%  numa-vmstat.node1.nr_zone_write_pending
     17946 ± 11%      -1.0%      17775 ± 16%     -43.7%      10111 ± 19%  proc-vmstat.nr_dirtied
      1813 ± 22%      -7.4%       1679 ± 20%     -54.6%     823.72 ± 22%  proc-vmstat.nr_dirty
    256770 ± 14%      -3.1%     248901 ± 13%     -49.7%     129104 ± 12%  proc-vmstat.nr_foll_pin_acquired
    256411 ± 14%      -3.1%     248510 ± 13%     -49.7%     128908 ± 12%  proc-vmstat.nr_foll_pin_released
      6098 ± 14%      -1.3%       6022 ± 17%     -40.6%       3623 ± 14%  proc-vmstat.nr_inactive_file
     47060            -0.1%      47015            -2.7%      45813        proc-vmstat.nr_slab_unreclaimable
     11219 ± 16%      +1.6%      11404 ± 24%     -38.2%       6928 ± 25%  proc-vmstat.nr_written
      6098 ± 14%      -1.3%       6022 ± 17%     -40.6%       3623 ± 14%  proc-vmstat.nr_zone_inactive_file
      1838 ± 22%      -7.4%       1702 ± 20%     -54.6%     834.16 ± 22%  proc-vmstat.nr_zone_write_pending
    420018            +0.2%     420980            -3.6%     404817        proc-vmstat.numa_hit
    353786            +0.3%     354765 ±  2%      -4.3%     338592 ±  2%  proc-vmstat.numa_local
    464103            +0.3%     465694            -4.0%     445644        proc-vmstat.pgalloc_normal
   1000691 ±  6%      -1.2%     989162 ±  7%     -47.8%     522520 ± 17%  proc-vmstat.pgpgin
   1094318 ±  6%      -1.0%    1083461 ±  8%     -46.7%     582829 ± 16%  proc-vmstat.pgpgout
     19.24 ± 19%      -2.2       17.01 ± 29%     -10.7        8.50 ± 17%  perf-profile.calltrace.cycles-pp.btrfs_lookup_file_extent.btrfs_drop_extents.insert_reserved_file_extent.btrfs_finish_one_ordered.btrfs_work_helper
     19.22 ± 19%      -2.2       16.99 ± 29%     -10.7        8.49 ± 17%  perf-profile.calltrace.cycles-pp.btrfs_search_slot.btrfs_lookup_file_extent.btrfs_drop_extents.insert_reserved_file_extent.btrfs_finish_one_ordered
     15.59 ± 22%      -1.9       13.74 ± 30%      -9.2        6.38 ± 20%  perf-profile.calltrace.cycles-pp.rwsem_down_write_slowpath.down_write.btrfs_tree_lock_nested.btrfs_lock_root_node.btrfs_search_slot
     15.21 ± 22%      -1.8       13.44 ± 31%      -8.9        6.32 ± 21%  perf-profile.calltrace.cycles-pp.btrfs_lock_root_node.btrfs_search_slot.btrfs_lookup_file_extent.btrfs_drop_extents.insert_reserved_file_extent
     15.16 ± 22%      -1.8       13.40 ± 31%      -8.9        6.29 ± 21%  perf-profile.calltrace.cycles-pp.btrfs_tree_lock_nested.btrfs_lock_root_node.btrfs_search_slot.btrfs_lookup_file_extent.btrfs_drop_extents
     15.16 ± 22%      -1.8       13.40 ± 31%      -8.9        6.29 ± 21%  perf-profile.calltrace.cycles-pp.down_write.btrfs_tree_lock_nested.btrfs_lock_root_node.btrfs_search_slot.btrfs_lookup_file_extent
     15.32 ± 22%      -1.7       13.59 ± 30%      -9.0        6.28 ± 20%  perf-profile.calltrace.cycles-pp.rwsem_optimistic_spin.rwsem_down_write_slowpath.down_write.btrfs_tree_lock_nested.btrfs_lock_root_node
     11.15 ± 26%      -1.4        9.72 ± 34%      -6.7        4.41 ± 24%  perf-profile.calltrace.cycles-pp.osq_lock.rwsem_optimistic_spin.rwsem_down_write_slowpath.down_write.btrfs_tree_lock_nested
      5.03 ± 15%      -0.5        4.48 ± 24%      -2.9        2.15 ± 21%  perf-profile.calltrace.cycles-pp.rwsem_spin_on_owner.rwsem_optimistic_spin.rwsem_down_write_slowpath.down_write.btrfs_tree_lock_nested
      1.64 ± 19%      -0.3        1.39 ± 29%      -1.0        0.62 ± 42%  perf-profile.calltrace.cycles-pp.btrfs_tree_lock_nested.btrfs_search_slot.btrfs_lookup_file_extent.btrfs_drop_extents.insert_reserved_file_extent
      1.64 ± 19%      -0.3        1.39 ± 29%      -1.0        0.62 ± 42%  perf-profile.calltrace.cycles-pp.down_write.btrfs_tree_lock_nested.btrfs_search_slot.btrfs_lookup_file_extent.btrfs_drop_extents
      3.07 ± 15%      -0.2        2.82 ± 21%      +2.1        5.21 ± 22%  perf-profile.calltrace.cycles-pp.__schedule.schedule.worker_thread.kthread.ret_from_fork
      1.61 ± 20%      -0.2        1.37 ± 29%      -1.0        0.58 ± 52%  perf-profile.calltrace.cycles-pp.rwsem_down_write_slowpath.down_write.btrfs_tree_lock_nested.btrfs_search_slot.btrfs_lookup_file_extent
      1.63 ± 18%      -0.2        1.39 ± 27%      -1.1        0.56 ± 52%  perf-profile.calltrace.cycles-pp.rwsem_optimistic_spin.rwsem_down_write_slowpath.down_write.btrfs_tree_lock_nested.btrfs_search_slot
      3.10 ± 14%      -0.2        2.86 ± 21%      +2.2        5.26 ± 22%  perf-profile.calltrace.cycles-pp.schedule.worker_thread.kthread.ret_from_fork.ret_from_fork_asm
      2.39 ± 21%      -0.2        2.17 ± 29%      +1.4        3.78 ± 21%  perf-profile.calltrace.cycles-pp.sched_balance_newidle.pick_next_task_fair.__pick_next_task.__schedule.schedule
      2.27 ± 15%      -0.2        2.08 ± 22%      +1.7        3.94 ± 21%  perf-profile.calltrace.cycles-pp.__pick_next_task.__schedule.schedule.worker_thread.kthread
      2.24 ± 16%      -0.2        2.06 ± 21%      +1.7        3.91 ± 21%  perf-profile.calltrace.cycles-pp.pick_next_task_fair.__pick_next_task.__schedule.schedule.worker_thread
      1.25 ± 15%      -0.2        1.10 ± 33%      +0.9        2.15 ± 22%  perf-profile.calltrace.cycles-pp.__blk_mq_do_dispatch_sched.__blk_mq_sched_dispatch_requests.blk_mq_sched_dispatch_requests.blk_mq_run_work_fn.process_one_work
      2.84 ± 15%      -0.1        2.70 ± 22%      +2.0        4.82 ± 23%  perf-profile.calltrace.cycles-pp.submit_bio_noacct_nocheck.btrfs_submit_chunk.btrfs_submit_bbio.iomap_dio_bio_iter.__iomap_dio_rw
      2.34 ± 17%      -0.1        2.20 ± 26%      +1.7        4.05 ± 23%  perf-profile.calltrace.cycles-pp.__blk_mq_alloc_requests.blk_mq_submit_bio.__submit_bio.submit_bio_noacct_nocheck.btrfs_submit_chunk
      2.81 ± 15%      -0.1        2.67 ± 22%      +2.0        4.78 ± 23%  perf-profile.calltrace.cycles-pp.blk_mq_submit_bio.__submit_bio.submit_bio_noacct_nocheck.btrfs_submit_chunk.btrfs_submit_bbio
      2.82 ± 15%      -0.1        2.68 ± 22%      +2.0        4.79 ± 23%  perf-profile.calltrace.cycles-pp.__submit_bio.submit_bio_noacct_nocheck.btrfs_submit_chunk.btrfs_submit_bbio.iomap_dio_bio_iter
      2.28 ± 17%      -0.1        2.18 ± 26%      +1.8        4.03 ± 23%  perf-profile.calltrace.cycles-pp.blk_mq_get_tag.__blk_mq_alloc_requests.blk_mq_submit_bio.__submit_bio.submit_bio_noacct_nocheck
      1.72 ± 15%      -0.1        1.65 ± 22%      +1.4        3.10 ± 21%  perf-profile.calltrace.cycles-pp.sched_balance_find_src_group.sched_balance_rq.sched_balance_newidle.pick_next_task_fair.__pick_next_task
      1.69 ± 15%      -0.1        1.62 ± 22%      +1.4        3.05 ± 21%  perf-profile.calltrace.cycles-pp.update_sd_lb_stats.sched_balance_find_src_group.sched_balance_rq.sched_balance_newidle.pick_next_task_fair
      0.99 ± 11%      -0.1        0.92 ± 27%      +0.3        1.29 ± 15%  perf-profile.calltrace.cycles-pp.__schedule.schedule_idle.do_idle.cpu_startup_entry.start_secondary
      1.04 ± 11%      -0.1        0.98 ± 27%      +0.3        1.37 ± 15%  perf-profile.calltrace.cycles-pp.schedule_idle.do_idle.cpu_startup_entry.start_secondary.common_startup_64
      1.87 ± 15%      -0.1        1.81 ± 26%      +1.4        3.29 ± 21%  perf-profile.calltrace.cycles-pp.sched_balance_rq.sched_balance_newidle.pick_next_task_fair.__pick_next_task.__schedule
      1.88 ± 12%      -0.1        1.83 ± 21%      +1.3        3.16 ± 19%  perf-profile.calltrace.cycles-pp.btrfs_submit_bbio.iomap_dio_bio_iter.__iomap_dio_rw.btrfs_direct_write.btrfs_do_write_iter
      1.88 ± 12%      -0.0        1.83 ± 21%      +1.3        3.15 ± 19%  perf-profile.calltrace.cycles-pp.btrfs_submit_chunk.btrfs_submit_bbio.iomap_dio_bio_iter.__iomap_dio_rw.btrfs_direct_write
      1.53 ± 15%      -0.0        1.48 ± 23%      +1.2        2.76 ± 21%  perf-profile.calltrace.cycles-pp.update_sg_lb_stats.update_sd_lb_stats.sched_balance_find_src_group.sched_balance_rq.sched_balance_newidle
      0.64 ± 80%      +0.1        0.70 ± 70%      +1.3        1.95 ± 27%  perf-profile.calltrace.cycles-pp.io_schedule.blk_mq_get_tag.__blk_mq_alloc_requests.blk_mq_submit_bio.__submit_bio
      0.41 ±103%      +0.2        0.57 ± 76%      +0.8        1.17 ± 15%  perf-profile.calltrace.cycles-pp._nohz_idle_balance.do_idle.cpu_startup_entry.start_secondary.common_startup_64
     46.71 ±  8%      +0.7       47.37 ± 20%     -13.4       33.31 ±  4%  perf-profile.calltrace.cycles-pp.kthread.ret_from_fork.ret_from_fork_asm
     46.71 ±  8%      +0.7       47.37 ± 20%     -13.4       33.31 ±  4%  perf-profile.calltrace.cycles-pp.ret_from_fork.ret_from_fork_asm
     46.71 ±  8%      +0.7       47.37 ± 20%     -13.4       33.31 ±  4%  perf-profile.calltrace.cycles-pp.ret_from_fork_asm
     31.82 ± 13%      +0.9       32.73 ± 36%     -14.2       17.66 ± 12%  perf-profile.calltrace.cycles-pp.btrfs_work_helper.process_one_work.worker_thread.kthread.ret_from_fork
     31.74 ± 13%      +0.9       32.66 ± 36%     -14.1       17.59 ± 12%  perf-profile.calltrace.cycles-pp.btrfs_finish_one_ordered.btrfs_work_helper.process_one_work.worker_thread.kthread
     22.58 ± 17%      -2.4       20.19 ± 26%     -12.0       10.53 ± 15%  perf-profile.children.cycles-pp.btrfs_search_slot
     19.26 ± 19%      -2.2       17.02 ± 29%     -10.7        8.51 ± 17%  perf-profile.children.cycles-pp.btrfs_lookup_file_extent
     18.23 ± 19%      -2.0       16.20 ± 28%     -10.4        7.78 ± 17%  perf-profile.children.cycles-pp.btrfs_tree_lock_nested
     18.28 ± 19%      -2.0       16.26 ± 27%     -10.4        7.85 ± 17%  perf-profile.children.cycles-pp.down_write
     18.06 ± 19%      -2.0       16.07 ± 28%     -10.3        7.72 ± 17%  perf-profile.children.cycles-pp.rwsem_down_write_slowpath
     17.92 ± 19%      -2.0       15.95 ± 28%     -10.3        7.64 ± 17%  perf-profile.children.cycles-pp.rwsem_optimistic_spin
     16.20 ± 21%      -1.8       14.40 ± 30%      -9.3        6.88 ± 19%  perf-profile.children.cycles-pp.btrfs_lock_root_node
     11.86 ± 24%      -1.4       10.46 ± 32%      -7.0        4.87 ± 21%  perf-profile.children.cycles-pp.osq_lock
      5.44 ± 13%      -0.5        4.94 ± 22%      -3.0        2.49 ± 14%  perf-profile.children.cycles-pp.rwsem_spin_on_owner
      3.63 ± 11%      -0.3        3.31 ± 21%      -1.2        2.43 ± 18%  perf-profile.children.cycles-pp.setup_items_for_insert
      2.61 ± 10%      -0.3        2.34 ± 22%      -0.9        1.74 ± 23%  perf-profile.children.cycles-pp.__memmove
      6.25 ±  9%      -0.2        6.01 ± 16%      +2.7        8.90 ± 10%  perf-profile.children.cycles-pp.__schedule
      4.94 ±  5%      -0.2        4.71 ± 15%      +1.1        6.03 ±  8%  perf-profile.children.cycles-pp.__irq_exit_rcu
      3.13 ± 11%      -0.2        2.93 ± 19%      +1.4        4.56 ± 16%  perf-profile.children.cycles-pp.sched_balance_rq
      5.29 ± 10%      -0.2        5.09 ± 16%      +2.3        7.61 ± 13%  perf-profile.children.cycles-pp.schedule
      3.66 ± 12%      -0.2        3.48 ± 18%      +1.7        5.38 ± 15%  perf-profile.children.cycles-pp.__pick_next_task
      3.48 ± 13%      -0.2        3.30 ± 19%      +1.7        5.14 ± 16%  perf-profile.children.cycles-pp.pick_next_task_fair
      1.70 ± 18%      -0.2        1.53 ± 26%      -0.7        0.95 ± 30%  perf-profile.children.cycles-pp.btrfs_del_items
      2.77 ± 10%      -0.2        2.61 ± 19%      +1.4        4.15 ± 18%  perf-profile.children.cycles-pp.sched_balance_find_src_group
      3.10 ± 13%      -0.2        2.93 ± 19%      +1.6        4.69 ± 18%  perf-profile.children.cycles-pp.sched_balance_newidle
      1.20 ± 14%      -0.2        1.04 ± 21%      -0.5        0.65 ± 24%  perf-profile.children.cycles-pp.btrfs_set_token_32
      2.73 ± 10%      -0.2        2.58 ± 19%      +1.4        4.10 ± 18%  perf-profile.children.cycles-pp.update_sd_lb_stats
      2.85 ± 15%      -0.1        2.70 ± 22%      +2.0        4.82 ± 23%  perf-profile.children.cycles-pp.submit_bio_noacct_nocheck
      2.82 ± 15%      -0.1        2.68 ± 22%      +2.0        4.78 ± 23%  perf-profile.children.cycles-pp.blk_mq_submit_bio
      2.26 ± 20%      -0.1        2.12 ± 22%      -1.0        1.28 ± 23%  perf-profile.children.cycles-pp.btrfs_insert_empty_items
      2.82 ± 15%      -0.1        2.69 ± 22%      +2.0        4.79 ± 23%  perf-profile.children.cycles-pp.__submit_bio
      2.55 ± 11%      -0.1        2.41 ± 19%      +1.2        3.78 ± 18%  perf-profile.children.cycles-pp.update_sg_lb_stats
      1.97 ± 12%      -0.1        1.85 ± 17%      +0.8        2.75 ± 13%  perf-profile.children.cycles-pp._raw_spin_lock_irqsave
      2.34 ± 17%      -0.1        2.23 ± 22%      +1.7        4.05 ± 23%  perf-profile.children.cycles-pp.__blk_mq_alloc_requests
      0.82 ± 14%      -0.1        0.71 ± 30%      -0.2        0.57 ± 22%  perf-profile.children.cycles-pp.read_block_for_search
      0.69 ± 19%      -0.1        0.59 ± 26%      -0.3        0.40 ± 16%  perf-profile.children.cycles-pp.up_write
      1.31 ± 17%      -0.1        1.22 ± 22%      +1.0        2.30 ± 23%  perf-profile.children.cycles-pp.handle_edge_irq
      1.26 ± 17%      -0.1        1.18 ± 22%      +1.0        2.23 ± 23%  perf-profile.children.cycles-pp.__handle_irq_event_percpu
      1.25 ± 17%      -0.1        1.18 ± 22%      +1.0        2.23 ± 23%  perf-profile.children.cycles-pp.ahci_single_level_irq_intr
      1.36 ± 17%      -0.1        1.29 ± 22%      +1.1        2.42 ± 22%  perf-profile.children.cycles-pp.__sysvec_posted_msi_notification
      1.30 ± 17%      -0.1        1.22 ± 22%      +1.0        2.29 ± 22%  perf-profile.children.cycles-pp.handle_irq_event
      2.29 ± 17%      -0.1        2.22 ± 22%      +1.8        4.04 ± 23%  perf-profile.children.cycles-pp.blk_mq_get_tag
      0.60 ± 18%      -0.1        0.53 ± 21%      -0.2        0.39 ± 24%  perf-profile.children.cycles-pp.aio_complete_rw
      0.90 ± 15%      -0.1        0.84 ± 27%      +0.8        1.65 ± 23%  perf-profile.children.cycles-pp.scsi_mq_get_budget
      0.51 ± 21%      -0.1        0.45 ± 27%      -0.2        0.28 ± 25%  perf-profile.children.cycles-pp.rwsem_wake
      0.39 ± 21%      -0.1        0.34 ± 21%      -0.2        0.19 ± 35%  perf-profile.children.cycles-pp.pwq_dec_nr_in_flight
      1.15 ± 15%      -0.0        1.10 ± 26%      +0.9        2.08 ± 23%  perf-profile.children.cycles-pp.sbitmap_find_bit
      0.95 ± 15%      -0.0        0.91 ± 21%      +0.3        1.30 ±  5%  perf-profile.children.cycles-pp.raw_spin_rq_lock_nested
      0.48 ± 17%      -0.0        0.44 ± 25%      -0.2        0.30 ± 19%  perf-profile.children.cycles-pp.btrfs_unlock_up_safe
      0.18 ± 30%      -0.0        0.15 ± 29%      -0.1        0.07 ± 71%  perf-profile.children.cycles-pp.node_activate_pending_pwq
      0.57 ± 26%      -0.0        0.55 ± 27%      +0.5        1.10 ± 33%  perf-profile.children.cycles-pp.blk_mq_dispatch_plug_list
      1.03 ± 20%      -0.0        1.01 ± 24%      +1.0        1.99 ± 25%  perf-profile.children.cycles-pp.io_schedule
      0.57 ± 26%      -0.0        0.55 ± 27%      +0.5        1.11 ± 33%  perf-profile.children.cycles-pp.blk_mq_flush_plug_list
      0.58 ± 26%      -0.0        0.56 ± 27%      +0.5        1.11 ± 32%  perf-profile.children.cycles-pp.__blk_flush_plug
      0.89 ± 13%      -0.0        0.87 ± 21%      +0.4        1.25 ± 12%  perf-profile.children.cycles-pp.sched_balance_update_blocked_averages
      0.09 ± 34%      -0.0        0.08 ± 55%      +0.1        0.19 ± 26%  perf-profile.children.cycles-pp.prepare_to_wait_exclusive
      1.65 ± 17%      -0.0        1.64 ± 26%      +0.8        2.41 ±  9%  perf-profile.children.cycles-pp._nohz_idle_balance
      0.46 ± 17%      -0.0        0.45 ± 23%      +0.2        0.69 ± 15%  perf-profile.children.cycles-pp.__get_next_timer_interrupt
      0.61 ± 14%      -0.0        0.61 ± 17%      +0.2        0.82 ± 11%  perf-profile.children.cycles-pp.dequeue_entity
      0.56 ± 14%      +0.0        0.57 ± 23%      +0.2        0.78 ± 11%  perf-profile.children.cycles-pp.update_load_avg
      0.37 ± 16%      +0.0        0.40 ± 33%      +0.2        0.53 ± 10%  perf-profile.children.cycles-pp.tick_nohz_next_event
      0.47 ± 15%      +0.1        0.52 ± 28%      +0.2        0.67 ± 11%  perf-profile.children.cycles-pp.tick_nohz_get_sleep_length
     46.71 ±  8%      +0.7       47.37 ± 20%     -13.4       33.31 ±  4%  perf-profile.children.cycles-pp.kthread
     46.73 ±  8%      +0.7       47.40 ± 20%     -13.4       33.35 ±  4%  perf-profile.children.cycles-pp.ret_from_fork
     46.74 ±  8%      +0.7       47.41 ± 20%     -13.4       33.36 ±  4%  perf-profile.children.cycles-pp.ret_from_fork_asm
     31.82 ± 13%      +0.9       32.73 ± 36%     -14.2       17.66 ± 12%  perf-profile.children.cycles-pp.btrfs_work_helper
     31.74 ± 13%      +0.9       32.66 ± 36%     -14.2       17.59 ± 12%  perf-profile.children.cycles-pp.btrfs_finish_one_ordered
      2.44 ± 12%      +3.7        6.16 ±239%      -0.9        1.51 ± 18%  perf-profile.children.cycles-pp.native_queued_spin_lock_slowpath
     11.82 ± 24%      -1.4       10.42 ± 32%      -7.0        4.85 ± 21%  perf-profile.self.cycles-pp.osq_lock
      5.31 ± 13%      -0.5        4.82 ± 22%      -2.9        2.44 ± 14%  perf-profile.self.cycles-pp.rwsem_spin_on_owner
      2.59 ± 10%      -0.3        2.33 ± 22%      -0.9        1.73 ± 23%  perf-profile.self.cycles-pp.__memmove
      1.09 ± 14%      -0.1        0.97 ± 21%      -0.5        0.60 ± 27%  perf-profile.self.cycles-pp.btrfs_set_token_32
      1.77 ± 12%      -0.1        1.66 ± 17%      +0.8        2.55 ± 14%  perf-profile.self.cycles-pp._raw_spin_lock_irqsave
      0.23 ± 22%      -0.0        0.19 ± 27%      -0.1        0.10 ± 44%  perf-profile.self.cycles-pp.__set_extent_bit
      0.41 ± 25%      -0.0        0.38 ± 23%      -0.2        0.21 ± 30%  perf-profile.self.cycles-pp.btrfs_search_slot
      0.34 ± 29%      -0.0        0.30 ± 24%      -0.1        0.20 ± 27%  perf-profile.self.cycles-pp.btrfs_get_32
      0.09 ± 40%      -0.0        0.08 ± 59%      +0.1        0.17 ± 33%  perf-profile.self.cycles-pp.fold_diff
      0.25 ± 29%      -0.0        0.25 ± 26%      +0.2        0.46 ± 26%  perf-profile.self.cycles-pp.ahci_single_level_irq_intr
      2.44 ± 12%      +3.7        6.14 ±239%      -0.9        1.50 ± 18%  perf-profile.self.cycles-pp.native_queued_spin_lock_slowpath



^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [linus:master] [block]  e70c301fae: stress-ng.aiol.ops_per_sec 49.6% regression
  2025-01-08 10:39                 ` Niklas Cassel
  2025-01-10  6:53                   ` Oliver Sang
@ 2025-01-14  6:45                   ` Oliver Sang
  1 sibling, 0 replies; 11+ messages in thread
From: Oliver Sang @ 2025-01-14  6:45 UTC (permalink / raw)
  To: Niklas Cassel
  Cc: Christoph Hellwig, oe-lkp, lkp, linux-kernel, Jens Axboe,
	linux-block, virtualization, linux-nvme, Damien Le Moal,
	linux-btrfs, linux-aio, oliver.sang

hi, Niklas,

On Wed, Jan 08, 2025 at 11:39:28AM +0100, Niklas Cassel wrote:
> On Tue, Jan 07, 2025 at 04:27:44PM +0800, Oliver Sang wrote:
> > hi, Niklas,
> > 
> > On Fri, Jan 03, 2025 at 10:09:14AM +0100, Niklas Cassel wrote:
> > > On Fri, Jan 03, 2025 at 07:49:25AM +0100, Christoph Hellwig wrote:
> > > > On Thu, Jan 02, 2025 at 10:49:41AM +0100, Niklas Cassel wrote:
> > > > > > > from below information, it seems an 'ahci' to me. but since I have limited
> > > > > > > knowledge about storage driver, maybe I'm wrong. if you want more information,
> > > > > > > please let us know. thanks a lot!
> > > > > > 
> > > > > > Yes, this looks like ahci.  Thanks a lot!
> > > > > 
> > > > > Did this ever get resolved?
> > > > > 
> > > > > I haven't seen a patch that seems to address this.
> > > > > 
> > > > > AHCI (ata_scsi_queuecmd()) only issues a single command, so if there is any
> > > > > reordering when issuing a batch of commands, my guess is that the problem
> > > > > also affects SCSI / the problem is in upper layers above AHCI, i.e. SCSI lib
> > > > > or block layer.
> > > > 
> > > > I started looking into this before the holidays.  blktrace shows perfectly
> > > > sequential writes without any reordering using ahci, directly on the
> > > > block device or using xfs and btrfs when using dd.  I also started
> > > > looking into what the test does and got as far as checking out the
> > > > stress-ng source tree and looking at stress-aiol.c.  AFAICS the default
> > > > submission does simple reads and writes using increasing offsets.
> > > > So if the test result isn't a fluke either the aio code does some
> > > > weird reordering or btrfs does.
> > > > 
> > > > Oliver, did the test also show any interesting results on non-btrfs
> > > > setups?
> > > > 
> > > 
> > > One thing that came to mind.
> > > Some distros (e.g. Fedora and openSUSE) ship with an udev rule that sets
> > > the I/O scheduler to BFQ for single-queue HDDs.
> > > 
> > > It could very well be the I/O scheduler that reorders.
> > > 
> > > Oliver, which I/O scheduler are you using?
> > > $ cat /sys/block/sdb/queue/scheduler 
> > > none mq-deadline kyber [bfq]
> > 
> > while our test running:
> > 
> > # cat /sys/block/sdb/queue/scheduler
> > none [mq-deadline] kyber bfq
> 
> The stddev numbers you showed is all over the place, so are we certain
> if this is a regression caused by commit e70c301faece ("block:
> don't reorder requests in blk_add_rq_to_plug") ?
> 
> Do you know if the stddev has such big variation for this test even before
> the commit?
> 
> 
> If it is not too much to ask... It might be interesting to know if we see
> a regression when comparing before/after e70c301faece with scheduler none
> instead of mq-deadline.

we also finished the test for scheduler none, run v6.12-rc4, before/after
e70c301faece 15 times for each. it seems the data is not stable enough under
scheduler none, only can say there is a regression trend if comparing
e70c301faece to its parent.

=========================================================================================
compiler/cpufreq_governor/debug-setup/disk/fs/kconfig/nr_threads/rootfs/tbox_group/test/testcase/testtime:
  gcc-12/performance/none-scheduler/1HDD/btrfs/x86_64-rhel-9.4/100%/debian-12-x86_64-20240206.cgz/lkp-icl-2sp8/aiol/stress-ng/60s

commit:
  v6.12-rc4
  a3396b9999 ("block: add a rq_list type")
  e70c301fae ("block: don't reorder requests in blk_add_rq_to_plug")

       v6.12-rc4 a3396b99990d8b4e5797e7b16fd e70c301faece15b618e54b613b1
---------------- --------------------------- ---------------------------
         %stddev     %change         %stddev     %change         %stddev
             \          |                \          |                \
    114.62 ± 19%      -1.9%     112.49 ± 17%     -32.4%      77.47 ± 21%  stress-ng.aiol.ops_per_sec


raw data is as below:

v6.12-rc4/matrix.json:  "stress-ng.aiol.ops_per_sec": [
v6.12-rc4/matrix.json-    108.03,
v6.12-rc4/matrix.json-    108.4,
v6.12-rc4/matrix.json-    109.11,
v6.12-rc4/matrix.json-    109.58,
v6.12-rc4/matrix.json-    194.21,
v6.12-rc4/matrix.json-    111.53,
v6.12-rc4/matrix.json-    107.99,
v6.12-rc4/matrix.json-    115.29,
v6.12-rc4/matrix.json-    105.75,
v6.12-rc4/matrix.json-    113.62,
v6.12-rc4/matrix.json-    96.51,
v6.12-rc4/matrix.json-    110.53,
v6.12-rc4/matrix.json-    108.71,
v6.12-rc4/matrix.json-    98.06,
v6.12-rc4/matrix.json-    121.95
v6.12-rc4/matrix.json-  ],


a3396b99990d8b4e5797e7b16fdeb64c15ae97bb/matrix.json:  "stress-ng.aiol.ops_per_sec": [
a3396b99990d8b4e5797e7b16fdeb64c15ae97bb/matrix.json-    116.65,
a3396b99990d8b4e5797e7b16fdeb64c15ae97bb/matrix.json-    106.51,
a3396b99990d8b4e5797e7b16fdeb64c15ae97bb/matrix.json-    119.23,
a3396b99990d8b4e5797e7b16fdeb64c15ae97bb/matrix.json-    108.91,
a3396b99990d8b4e5797e7b16fdeb64c15ae97bb/matrix.json-    111.79,
a3396b99990d8b4e5797e7b16fdeb64c15ae97bb/matrix.json-    111.81,
a3396b99990d8b4e5797e7b16fdeb64c15ae97bb/matrix.json-    114.94,
a3396b99990d8b4e5797e7b16fdeb64c15ae97bb/matrix.json-    99.49,
a3396b99990d8b4e5797e7b16fdeb64c15ae97bb/matrix.json-    106.13,
a3396b99990d8b4e5797e7b16fdeb64c15ae97bb/matrix.json-    124.99,
a3396b99990d8b4e5797e7b16fdeb64c15ae97bb/matrix.json-    174.15,
a3396b99990d8b4e5797e7b16fdeb64c15ae97bb/matrix.json-    92.65,
a3396b99990d8b4e5797e7b16fdeb64c15ae97bb/matrix.json-    113.05,
a3396b99990d8b4e5797e7b16fdeb64c15ae97bb/matrix.json-    75.97,
a3396b99990d8b4e5797e7b16fdeb64c15ae97bb/matrix.json-    111.05
a3396b99990d8b4e5797e7b16fdeb64c15ae97bb/matrix.json-  ],


e70c301faece15b618e54b613b1fd6ece3dd05b4/matrix.json:  "stress-ng.aiol.ops_per_sec": [
e70c301faece15b618e54b613b1fd6ece3dd05b4/matrix.json-    85.2,
e70c301faece15b618e54b613b1fd6ece3dd05b4/matrix.json-    72.6,
e70c301faece15b618e54b613b1fd6ece3dd05b4/matrix.json-    73.49,
e70c301faece15b618e54b613b1fd6ece3dd05b4/matrix.json-    69.03,
e70c301faece15b618e54b613b1fd6ece3dd05b4/matrix.json-    66.9,
e70c301faece15b618e54b613b1fd6ece3dd05b4/matrix.json-    90.24,
e70c301faece15b618e54b613b1fd6ece3dd05b4/matrix.json-    66.88,
e70c301faece15b618e54b613b1fd6ece3dd05b4/matrix.json-    71.53,
e70c301faece15b618e54b613b1fd6ece3dd05b4/matrix.json-    56.86,
e70c301faece15b618e54b613b1fd6ece3dd05b4/matrix.json-    63.49,
e70c301faece15b618e54b613b1fd6ece3dd05b4/matrix.json-    97.99,
e70c301faece15b618e54b613b1fd6ece3dd05b4/matrix.json-    69.28,
e70c301faece15b618e54b613b1fd6ece3dd05b4/matrix.json-    58.52,
e70c301faece15b618e54b613b1fd6ece3dd05b4/matrix.json-    114.23,
e70c301faece15b618e54b613b1fd6ece3dd05b4/matrix.json-    105.79
e70c301faece15b618e54b613b1fd6ece3dd05b4/matrix.json-  ],


since not sure if it's valuable, I didn't list the full comparison table here.
if you want it, please let us know. thanks!

> 
> 
> Kind regards,
> Niklas
> 

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [linus:master] [block]  e70c301fae: stress-ng.aiol.ops_per_sec 49.6% regression
  2025-01-10  6:53                   ` Oliver Sang
@ 2025-01-15 11:42                     ` Niklas Cassel
  2025-01-16  6:37                       ` Oliver Sang
  0 siblings, 1 reply; 11+ messages in thread
From: Niklas Cassel @ 2025-01-15 11:42 UTC (permalink / raw)
  To: Oliver Sang
  Cc: Christoph Hellwig, oe-lkp, lkp, linux-kernel, Jens Axboe,
	linux-block, virtualization, linux-nvme, Damien Le Moal,
	linux-btrfs, linux-aio

Hello Oliver,

On Fri, Jan 10, 2025 at 02:53:08PM +0800, Oliver Sang wrote:
> On Wed, Jan 08, 2025 at 11:39:28AM +0100, Niklas Cassel wrote:
> > > > Oliver, which I/O scheduler are you using?
> > > > $ cat /sys/block/sdb/queue/scheduler 
> > > > none mq-deadline kyber [bfq]
> > > 
> > > while our test running:
> > > 
> > > # cat /sys/block/sdb/queue/scheduler
> > > none [mq-deadline] kyber bfq
> > 
> > The stddev numbers you showed is all over the place, so are we certain
> > if this is a regression caused by commit e70c301faece ("block:
> > don't reorder requests in blk_add_rq_to_plug") ?
> > 
> > Do you know if the stddev has such big variation for this test even before
> > the commit?
> 
> in order to address your concern, we rebuild kernels for e70c301fae and its
> parent a3396b9999, also for v6.12-rc4. the config is still same as shared
> in our original report:
> https://download.01.org/0day-ci/archive/20241212/202412122112.ca47bcec-lkp@intel.com/config-6.12.0-rc4-00120-ge70c301faece

Thank you for putting in the work to do some extra tests.

(Doing performance regression testing is really important IMO,
as without it you are essentially in the blind.
Thank you guys for taking on the role of this important work!)


Looking at the extended number of iterations that you've in this email,
it is quite clear that e70c301faece, at least with the workload provided
by stress-ng + mq-deadline, introduced a regression:

       v6.12-rc4 a3396b99990d8b4e5797e7b16fd e70c301faece15b618e54b613b1
---------------- --------------------------- ---------------------------
         %stddev     %change         %stddev     %change         %stddev
             \          |                \          |                \
    187.64 ±  5%      -0.6%     186.48 ±  7%     -47.6%      98.29 ± 17%  stress-ng.aiol.ops_per_sec




Looking at your results from stress-ng + none scheduler:

         %stddev     %change         %stddev     %change         %stddev
             \          |                \          |                \
    114.62 ± 19%      -1.9%     112.49 ± 17%     -32.4%      77.47 ± 21%  stress-ng.aiol.ops_per_sec


Which shows a change, but -32% rather than -47%, also seems to suggest a
regression for the stress-ng workload.




Looking closer at the raw number for stress-ng + none scheduler, in your
other email, it seems clear that the raw values from the stress-ng workload
can vary quite a lot. In the long run, I wonder if we perhaps can find a
workload that has less variation. E.g. fio test for IOPS and fio test for
throughout. But perhaps such workloads are already part of lkp-tests?


Kind regards,
Niklas

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [linus:master] [block]  e70c301fae: stress-ng.aiol.ops_per_sec 49.6% regression
  2025-01-15 11:42                     ` Niklas Cassel
@ 2025-01-16  6:37                       ` Oliver Sang
  2025-01-16 10:04                         ` Niklas Cassel
  0 siblings, 1 reply; 11+ messages in thread
From: Oliver Sang @ 2025-01-16  6:37 UTC (permalink / raw)
  To: Niklas Cassel
  Cc: Christoph Hellwig, oe-lkp, lkp, linux-kernel, Jens Axboe,
	linux-block, virtualization, linux-nvme, Damien Le Moal,
	linux-btrfs, linux-aio, oliver.sang

hi, Niklas,

On Wed, Jan 15, 2025 at 12:42:33PM +0100, Niklas Cassel wrote:
> Hello Oliver,
> 
> On Fri, Jan 10, 2025 at 02:53:08PM +0800, Oliver Sang wrote:
> > On Wed, Jan 08, 2025 at 11:39:28AM +0100, Niklas Cassel wrote:
> > > > > Oliver, which I/O scheduler are you using?
> > > > > $ cat /sys/block/sdb/queue/scheduler 
> > > > > none mq-deadline kyber [bfq]
> > > > 
> > > > while our test running:
> > > > 
> > > > # cat /sys/block/sdb/queue/scheduler
> > > > none [mq-deadline] kyber bfq
> > > 
> > > The stddev numbers you showed is all over the place, so are we certain
> > > if this is a regression caused by commit e70c301faece ("block:
> > > don't reorder requests in blk_add_rq_to_plug") ?
> > > 
> > > Do you know if the stddev has such big variation for this test even before
> > > the commit?
> > 
> > in order to address your concern, we rebuild kernels for e70c301fae and its
> > parent a3396b9999, also for v6.12-rc4. the config is still same as shared
> > in our original report:
> > https://download.01.org/0day-ci/archive/20241212/202412122112.ca47bcec-lkp@intel.com/config-6.12.0-rc4-00120-ge70c301faece
> 
> Thank you for putting in the work to do some extra tests.
> 
> (Doing performance regression testing is really important IMO,
> as without it you are essentially in the blind.
> Thank you guys for taking on the role of this important work!)
> 
> 
> Looking at the extended number of iterations that you've in this email,
> it is quite clear that e70c301faece, at least with the workload provided
> by stress-ng + mq-deadline, introduced a regression:
> 
>        v6.12-rc4 a3396b99990d8b4e5797e7b16fd e70c301faece15b618e54b613b1
> ---------------- --------------------------- ---------------------------
>          %stddev     %change         %stddev     %change         %stddev
>              \          |                \          |                \
>     187.64 ±  5%      -0.6%     186.48 ±  7%     -47.6%      98.29 ± 17%  stress-ng.aiol.ops_per_sec
> 
> 
> 
> 
> Looking at your results from stress-ng + none scheduler:
> 
>          %stddev     %change         %stddev     %change         %stddev
>              \          |                \          |                \
>     114.62 ± 19%      -1.9%     112.49 ± 17%     -32.4%      77.47 ± 21%  stress-ng.aiol.ops_per_sec
> 
> 
> Which shows a change, but -32% rather than -47%, also seems to suggest a
> regression for the stress-ng workload.
> 
> 
> 
> 
> Looking closer at the raw number for stress-ng + none scheduler, in your
> other email, it seems clear that the raw values from the stress-ng workload
> can vary quite a lot. In the long run, I wonder if we perhaps can find a
> workload that has less variation. E.g. fio test for IOPS and fio test for
> throughout. But perhaps such workloads are already part of lkp-tests?

yes, we have fio tests [1].
as in [2], we get it from https://github.com/axboe/fio
not sure if it's just the fio you mentioned?

our framework is basically automatic. bot merged repo/branches it monitors
into so-called hourly kernel, then if found performance difference with base,
bisect will be triggered to capture which commit causes the change.

due to resource constraint, we cannot allot all testsuites (we have around 80)
to all platforms, and there are other various reasons which could cause us to
miss some performance differences.

if you have interests, could you help check those fio-basic-*.yaml files under
[3]? if you can spot out the correct case, we could do more tests to check
e70c301fae and its parent. thanks!

[1] https://github.com/intel/lkp-tests/tree/master/programs/fio
[2] https://github.com/intel/lkp-tests/blob/master/programs/fio/pkg/PKGBUILD
[3] https://github.com/intel/lkp-tests/tree/master/jobs

> 
> 
> Kind regards,
> Niklas

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [linus:master] [block]  e70c301fae: stress-ng.aiol.ops_per_sec 49.6% regression
  2025-01-16  6:37                       ` Oliver Sang
@ 2025-01-16 10:04                         ` Niklas Cassel
  0 siblings, 0 replies; 11+ messages in thread
From: Niklas Cassel @ 2025-01-16 10:04 UTC (permalink / raw)
  To: Oliver Sang
  Cc: Christoph Hellwig, oe-lkp, lkp, linux-kernel, Jens Axboe,
	linux-block, virtualization, linux-nvme, Damien Le Moal,
	linux-btrfs, linux-aio

On Thu, Jan 16, 2025 at 02:37:08PM +0800, Oliver Sang wrote:
> On Wed, Jan 15, 2025 at 12:42:33PM +0100, Niklas Cassel wrote:
> > 
> > Looking closer at the raw number for stress-ng + none scheduler, in your
> > other email, it seems clear that the raw values from the stress-ng workload
> > can vary quite a lot. In the long run, I wonder if we perhaps can find a
> > workload that has less variation. E.g. fio test for IOPS and fio test for
> > throughout. But perhaps such workloads are already part of lkp-tests?
> 
> yes, we have fio tests [1].
> as in [2], we get it from https://github.com/axboe/fio
> not sure if it's just the fio you mentioned?

Yes, that's the one :)


> 
> our framework is basically automatic. bot merged repo/branches it monitors
> into so-called hourly kernel, then if found performance difference with base,
> bisect will be triggered to capture which commit causes the change.
> 
> due to resource constraint, we cannot allot all testsuites (we have around 80)
> to all platforms, and there are other various reasons which could cause us to
> miss some performance differences.
> 
> if you have interests, could you help check those fio-basic-*.yaml files under
> [3]? if you can spot out the correct case, we could do more tests to check
> e70c301fae and its parent. thanks!
> 
> [1] https://github.com/intel/lkp-tests/tree/master/programs/fio
> [2] https://github.com/intel/lkp-tests/blob/master/programs/fio/pkg/PKGBUILD
> [3] https://github.com/intel/lkp-tests/tree/master/jobs

I'm probably not the best qualified person to review this, would be nice if e.g.
Jens himself (or others block layer folks) could have a look at these.

What I can see is:
https://github.com/intel/lkp-tests/blob/master/jobs/fio-basic-local-disk.yaml

seems to do:
    - randrw

but only on for SSDs, not HDDs, and only on ext4.



https://github.com/intel/lkp-tests/blob/master/jobs/fio-basic-1hdd-write.yaml

does test ext4, btrfs, and xfs,
but it does not do randrw.


What are the thresholds for these tests counting as a regression?
Are you comparing BW, or IOPS, or both?

Looking at:
https://github.com/intel/lkp-tests/blob/master/programs/fio/parse

It seems to produce points for:
bw_MBps
iops
total_ios
clat_mean_ns
clat_stddev
slat_mean_us
slat_stddev
and more.

So it does seem to compare BW, IOPS, total IOs, which is what I was looking
for.

Possibly even too much, as enabling too much logging will actually affect
the results, since you need to write way more output to the logs.

But again, Jens (and other block layer folks) are the experts.


Kind regards,
Niklas

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2025-01-16 10:04 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <202412122112.ca47bcec-lkp@intel.com>
     [not found] ` <20241213143224.GA16111@lst.de>
     [not found]   ` <20241217045527.GA16091@lst.de>
     [not found]     ` <Z2EgW8/WNfzZ28mn@xsang-OptiPlex-9020>
     [not found]       ` <20241217065614.GA19113@lst.de>
     [not found]         ` <Z3ZhNYHKZPMpv8Cz@ryzen>
2025-01-03  6:49           ` [linus:master] [block] e70c301fae: stress-ng.aiol.ops_per_sec 49.6% regression Christoph Hellwig
2025-01-03  9:09             ` Niklas Cassel
2025-01-06  7:21               ` Christoph Hellwig
2025-01-07  8:27               ` Oliver Sang
2025-01-08 10:39                 ` Niklas Cassel
2025-01-10  6:53                   ` Oliver Sang
2025-01-15 11:42                     ` Niklas Cassel
2025-01-16  6:37                       ` Oliver Sang
2025-01-16 10:04                         ` Niklas Cassel
2025-01-14  6:45                   ` Oliver Sang
2025-01-07  8:26             ` Oliver Sang

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox