Re: [PATCH v3 0/7] sched: Flatten the pick

Szabina Korbai <[email protected]>
Newsgroups org.kernel.vger.cgroups,org.kernel.vger.linux-kernel
Message-ID <[email protected]>
On Tue, 2026-08-18 at 11:16 +0200, Peter Zijlstra wrote:
> On Tue, Aug 18, 2026 at 10:04:57AM +0100, Szabina Korbai wrote:
> > On Mon, 2026-08-17 at 22:05 +0530, K Prateek Nayak wrote:
> > > Hello Szabina,
> > > 
> > > On 8/17/2026 9:35 PM, Szabina Korbai wrote:
> > > > Hello Peter,
> > > > 
> > > > We ran the same benchmarks (schbench, sysbench, hackbench) as
> > > > Shubhang
> > > > has on s390 on an LPAR running fedora 43 with 32 vCPUs.
> > > > 
> > > > We ran the benchmarks for each of the cgroup modes, and for the
> > > > baseline, we chose the commit prior to the patches
> > > > (f666241e6bd5 -
> > > > sched/fair: Unify cfs_rq throttling via
> > > > account_cfs_rq_runtime() ).
> > > > 
> > > > We have also tried running stress-ng in parallel with the
> > > > benchmarks
> > > > (set to generate 50% or 90% utilization for each vCPU).
> > > > 
> > > > Compared to simply running the benchmarks on their own, this
> > > > has
> > > > revealed some performance trade-offs that the move to a single
> > > > runqueue
> > > > can introduce.
> > > 
> > > Are you using tip:sched/core at commit 68e3748781 ("sched/fair:
> > > Fix
> > > flat
> > > hierarchy") for the flat_cg numbers or did you checkout at
> > > 85570f10a4c6
> > > ("sched/eevdf: Move to a single runqueue")?
> > > 
> > > There are a couple fixes for vruntime update and Vincent's
> > > optimizations
> > > for preemption bits which might make a difference to the overall
> > > results.
> > 
> > 
> > Hi Prateek,
> > 
> > thank you, that's a good call. I did checkout at "Move to a single
> > runqueue". Let me try it with the fix included, see how the results
> > are
> > affected.
> 
> I've not yet managed to digest your various benchmark results, but
> also
> double check that patch 6/7 from this series is not to 'blame' for
> the
> some of the changes.
> 
> The 0day robot fingered that patch for at least one issue.
> 
> In that case the benchmark threads ended up 'heavier' than before,
> which
> resulted in less preemptions. Probably ksoftirqd getting ran less and
> causing a regression in network throughput for that thing.
> 
> I did suggest trying to change the slice of ksoftirqd down, such that
> it
> might be ran more readily, but I'm not sure that ever got tried.

Hello Peter,

I've repeated the benchmark runs by checking out at tip:sched/core
85570f10a4c6 - "sched/eevdf: Move to a single runqueue" and cherry-
picking the fix (tip:sched/core at commit 68e3748781 - "sched/fair: Fix
flat hierarchy") on top of it. The baseline was 4f166adb5cb0 -
sched/fair: Fix overflow in update_tg_cfs_runnable().

It does look like most of the regressions/inconsistencies I saw earlier
were addressed by applying Vincent's fix.

Overall the effect of the patch series on system performance is now
more positive than negative, though there are still some
regressions in some cases. (Up mode remains something of an outlier in
this regard.)

At this time I haven't yet applied Jake Steinman's patch (sched/fair:
floor tg_cpus() at 1), but neither did the system experience a kernel
panic.

Observations by benchmark:

HACKBENCH

More parallel threads/processes benefit more from the patch, while
fewer ones show regression - without an additional stress-ng workload.
This is the same trend that Shubhang's benchmark results showed.

With an additional stress-ng workload running in parallel, there is
regression in the hackbench benchmark, but the bogo-ops/second metric
of stress-ng does improve to a much greater degree (for example 1.30%
regression with 32 threads for concur mode - and a 66.22% improvement
to the stress-ng workload).

There was quite a high variance to the stress-ng results though,
especially to the baseline: worst was the 32 processes case where the
CV was 15.83%.

SCHBENCH

The improvement in p99.9 tail latency is now more consistent even at
90% CPU utilization. One exception is the 32 threads with no locking
case, which shows a ~5% regression in concur mode without the stress-ng
workload.

Additionally, with the stress-ng load set to 90% the p50 and p90
latency of the hackbench workload still does show regression under some
conditions.

Aside from up mode, schbench RPS and stress-ng bogo-ops/s values showed
more minor changes (<2% difference) individually, and usually balanced
each other out.

SYSBENCH

The two (sysbench and stress-ng) workloads together showed overall
performance improvement (~2%), but not sysbench on its own.


Numbers below:

=======================================================================
  HACKBENCH RESULTS
=======================================================================

* - CV over 5%

(lower = better)

Hackbench % diff from baseline by mode:

[s-00] Hackbench — % diff from baseline by mode
+-------------------+---------+---------+---------+---------+---------+
| Argument          | concur  | max     | smp     | tasks   | up      |
+-------------------+---------+---------+---------+---------+---------+
| 1 thread          | +2.07%  | +2.55%  | +2.14%  | +3.11%  | -5.10%  |
| 2 thread          | +2.65%  | +2.84%  | +2.16%  | +1.34%  | -1.37%  |
| 4 thread          | -1.98%  | -1.63%  | -1.62%  | -2.55%  | -5.29%  |
| 8 thread          | -5.71%  | -5.09%  | -5.19%  | -6.46%  | -8.83%  |
| 16 thread         | -9.62%  | -8.66%  | -9.09%  | -10.38% | -10.75% |
| 32 thread         | -7.47%  | -6.08%  | -6.11%  | -7.94%  | -1.15%* |
| 1 process         | +3.00%  | +3.28%  | +3.39%  | +2.61%  | -1.95%  |
| 2 process         | +2.22%  | +2.46%  | +2.70%  | +2.49%  | -0.51%  |
| 4 process         | -1.65%  | -0.90%  | -1.65%  | -2.28%  | -3.50%  |
| 8 process         | -4.45%  | -3.76%  | -4.66%  | -5.49%  | -8.01%  |
| 16 process        | -8.58%  | -7.75%  | -8.81%  | -9.53%  | -9.59%  |
| 32 process        | -6.56%  | -5.26%  | -5.86%  | -7.53%  | -0.57%  |
+-------------------+---------+---------+---------+---------+---------+


[s-50] Hackbench — % diff from baseline by mode
+-------------------+---------+---------+---------+---------+---------+
| Argument          | concur  | max     | smp     | tasks   | up      |
+-------------------+---------+---------+---------+---------+---------+
| 1 thread          | +2.88%  | +3.44%  | +3.23%  | +3.25%  | +2.29%  |
| 2 thread          | -0.57%  | +0.16%  | -0.26%  | -0.88%  | +1.35%  |
| 4 thread          | +1.38%  | +1.77%  | +1.57%  | +1.08%  | -2.44%  |
| 8 thread          | +7.57%  | +8.20%  | +8.69%  | +7.22%  | +2.94%  |
| 16 thread         | -0.32%  | +0.36%  | +1.54%  | -1.13%  | +8.17%  |
| 32 thread         | -1.65%  | -0.61%  | -0.70%  | -2.50%  | +12.28% |
| 1 process         | +3.27%  | +2.87%  | +2.83%  | +3.11%  | +2.24%  |
| 2 process         | +0.09%  | +0.46%  | -0.10%  | -0.40%  | +1.80%  |
| 4 process         | +1.03%  | +1.66%  | +1.24%  | +0.79%  | -2.38%  |
| 8 process         | +7.82%  | +8.33%  | +9.05%  | +7.89%  | +4.85%* |
| 16 process        | +0.80%  | +1.55%  | +3.47%  | +0.23%  | +6.80%* |
| 32 process        | -1.09%  | +0.06%  | -0.12%  | -1.86%  | +17.00% |
+-------------------+---------+---------+---------+---------+---------+


[s-90] Hackbench — % diff from baseline by mode
+------------------+---------+---------+---------+---------+----------+
| Argument         | concur  | max     | smp     | tasks   | up       |
+------------------+---------+---------+---------+---------+----------+
| 1 thread         | +7.32%  | +7.55%  | +7.03%  | +5.90%  | +15.32%  |
| 2 thread         | +9.16%  | +9.38%  | +8.95%  | +8.19%  | +13.79%  |
| 4 thread         | +18.34% | +18.44% | +18.34% | +17.76% | +21.62%  |
| 8 thread         | +17.14% | +17.64% | +19.50% | +16.86% | +21.07%* |
| 16 thread        | +7.39%  | +8.01%  | +10.73% | +6.20%  | +26.18%  |
| 32 thread        | +0.14%  | +0.58%  | +0.87%  | -0.55%  | +22.58%* |
| 1 process        | +6.12%  | +7.08%  | +6.46%  | +5.84%  | +19.06%  |
| 2 process        | +8.79%  | +8.31%  | +8.60%  | +8.09%  | +14.79%  |
| 4 process        | +18.76% | +19.15% | +20.63% | +18.46% | +21.42%  |
| 8 process        | +17.55% | +17.99% | +19.75% | +16.96% | +19.02%* |
| 16 process       | +7.49%  | +8.22%  | +10.65% | +6.81%  | +25.28%  |
| 32 process       | +1.30%  | +2.95%  | +1.77%  | +0.50%  | +23.78%* |
+------------------+---------+---------+---------+---------+----------+


stress-ng (int64 stressor) mean % diff from baseline by stress level
(Hackbench):

(higher = better)

[s-50] Hackbench — stress-ng mean % diff from baseline
+----------------+---------+----------+----------+---------+----------+
| Argument       | concur  | max      | smp      | tasks   | up       |
+----------------+---------+----------+----------+---------+----------+
| 1 thread       | -3.16%  | -2.78%   | -3.38%   | -2.90%  | -2.76%   |
| 2 thread       | -0.32%  | -0.48%   | -0.64%   | -0.23%  | -0.61%   |
| 4 thread       | +14.47% | +14.50%  | +14.76%  | +14.82% | +14.61%  |
| 8 thread       | +38.73% | +38.45%  | +39.97%  | +39.00% | +41.90%  |
| 16 thread      | +42.93% | +44.01%  | +46.30%* | +42.41% | +71.38%* |
| 32 thread      | +47.79% | +50.61%* | +50.44%* | +49.75% | +129.7…* |
| 1 process      | -2.19%  | -2.80%   | -2.94%   | -2.56%  | -2.72%   |
| 2 process      | -0.30%  | -0.58%   | -0.76%   | -0.61%  | -0.49%   |
| 4 process      | +12.84% | +12.70%  | +12.97%  | +12.98% | +12.90%  |
| 8 process      | +37.22% | +36.93%  | +38.34%  | +37.60% | +40.19%  |
| 16 process     | +44.33% | +44.00%  | +48.00%* | +44.04% | +61.75%* |
| 32 process     | +51.70% | +51.24%* | +50.52%* | +51.62% | +142.8…* |
+----------------+---------+----------+----------+---------+----------+


[s-90] Hackbench — stress-ng mean % diff from baseline
+--------------+----------+----------+----------+----------+----------+
| Argument     | concur   | max      | smp      | tasks    | up       |
+----- --------+----------+----------+----------+----------+----------+
| 1 thread     | +2.68%   | +2.61%   | +2.63%   | +2.48%   | +5.19%   |
| 2 thread     | +5.85%   | +6.20%*  | +6.06%   | +5.92%   | +10.09%  |
| 4 thread     | +23.55%* | +23.53%* | +23.64%* | +23.79%* | +34.50%* |
| 8 thread     | +47.11%  | +47.47%* | +49.44%  | +47.59%  | +61.43%  |
| 16 thread    | +56.40%  | +58.08%* | +63.22%* | +55.92%  | +102.2…* |
| 32 thread    | +58.54%  | +59.72%* | +60.52%* | +58.75%* | +164.9…* |
| 1 process    | +2.16%   | +2.50%   | +2.44%   | +2.46%   | +5.99%   |
| 2 process    | +5.48%   | +5.37%   | +5.58%   | +5.70%   | +10.38%* |
| 4 process    | +23.87%* | +23.74%* | +25.94%* | +24.97%* | +33.32%* |
| 8 process    | +45.77%  | +46.32%  | +48.47%  | +46.12%  | +57.70%  |
| 16 process   | +56.41%  | +57.84%  | +62.58%* | +56.79%  | +100.9…* |
| 32 process   | +66.22%  | +72.01%* | +65.52%* | +68.43%* | +178.1…* |
+--------------+----------+----------+----------+----------+----------+


=======================================================================
  SCHBENCH 16T -- LOCKING: NO
=======================================================================

Schbench % diff from baseline by mode:

(Latency: lower = better, RPS: higher = better)

[s-00] Schbench 16t -- Locking: No
+-------------------+---------+---------+---------+---------+---------+
| Metric            | concur  | max     | smp     | tasks   | up      |
+-------------------+---------+---------+---------+---------+---------+
| Req p50  (us)     | +0.00%  | +0.00%  | +0.00%  | +0.00%  | +0.00%  |
| Req p90  (us)     | +0.23%  | +0.23%  | +0.23%  | +0.23%  | -0.45%  |
| Req p99.9(us)     | -9.57%  | -6.84%  | -4.79%  | -6.84%  | -7.18%  |
| RPS p50  (req)    | +0.00%  | +0.00%  | +0.00%  | +0.00%  | +0.35%  |
+-------------------+---------+---------+---------+---------+---------+


[s-50] Schbench 16t -- Locking: No
+-------------------+---------+---------+---------+---------+---------+
| Metric            | concur  | max     | smp     | tasks   | up      |
+-------------------+---------+---------+---------+---------+---------+
| Req p50  (us)     | -3.54%  | -3.81%  | -2.99%  | -3.27%  | -3.54%  |
| Req p90  (us)     | -2.19%  | -1.97%  | -1.75%  | -2.41%  | -3.29%  |
| Req p99.9(us)     | -3.11%  | -2.59%  | -0.52%  | -3.63%  | +1.82%  |
| RPS p50  (req)    | +0.96%  | +0.96%  | +1.28%  | +0.96%  | +0.64%  |
+-------------------+---------+---------+---------+---------+---------+


[s-90] Schbench 16t -- Locking: No
+-------------------+---------+---------+---------+---------+---------+
| Metric            | concur  | max     | smp     | tasks   | up      |
+-------------------+---------+---------+---------+---------+---------+
| Req p50  (us)     | +3.52%  | +3.52%  | +3.52%  | +3.52%  | +3.52%  |
| Req p90  (us)     | +6.04%  | +6.24%  | +6.24%  | +6.04%  | +25.91% |
| Req p99.9(us)     | -16.82% | -14.59% | -14.18% | -17.63% | -3.24%  |
| RPS p50  (req)    | +0.37%  | +0.37%  | +0.37%  | +0.37%  | -4.08%  |
+-------------------+---------+---------+---------+---------+---------+


stress-ng (int64 stressor) bogo-ops/s statistics by stress level
(schbench):

(higher = better)

[s-50] Schbench 16t -- Locking: No — stress-ng vs baseline
+----------+------------+---------+-------+
| Variant  | Mean %diff | StdDev± | CV    |
+----------+------------+---------+-------+
| baseline | 442.34     | ±0.48%  | 0.48% |
+----------+------------+---------+-------+
| concur   | -1.32%     | ±0.76%  | 0.76% |
| max      | -1.28%     | ±0.86%  | 0.86% |
| smp      | -1.37%     | ±0.77%  | 0.77% |
| tasks    | -1.23%     | ±0.75%  | 0.75% |
| up       | -1.07%     | ±0.45%  | 0.45% |
+----------+------------+---------+-------+


[s-90] Schbench 16t -- Locking: No — stress-ng vs baseline
+----------+------------+---------+--------+
| Variant  | Mean %diff | StdDev± | CV     |
+----------+------------+---------+--------+
| baseline | 524.18     | ±1.51%  | 1.50%  |
+----------+------------+---------+--------+
| concur   | +0.03%     | ±1.19%  | 1.19%  |
| max      | +0.17%     | ±1.57%  | 1.57%  |
| smp      | +0.18%     | ±1.16%  | 1.16%  |
| tasks    | +0.14%     | ±1.25%  | 1.25%  |
| up       | +4.94%     | ±13.42% | 13.42% |
+----------+------------+---------+--------+


=======================================================================
  SCHBENCH 16T -- LOCKING: YES
=======================================================================

Schbench % diff from baseline by mode:

(Latency: lower = better, RPS: higher = better)

[s-00] Schbench 16t -- Locking: Yes
+-------------------+---------+---------+---------+---------+---------+
| Metric            | concur  | max     | smp     | tasks   | up      |
+-------------------+---------+---------+---------+---------+---------+
| Req p50  (us)     | +0.00%  | +0.00%  | +0.00%  | +0.00%  | +0.00%  |
| Req p90  (us)     | +0.23%  | +0.23%  | +0.00%  | +0.23%  | -0.23%  |
| Req p99.9(us)     | -10.29% | -13.01% | -10.59% | -13.92% | -17.55% |
| RPS p50  (req)    | +0.00%  | +0.00%  | +0.00%  | +0.00%  | +0.35%  |
+-------------------+---------+---------+---------+---------+---------+


[s-50] Schbench 16t -- Locking: Yes
+-------------------+---------+---------+---------+---------+---------+
| Metric            | concur  | max     | smp     | tasks   | up      |
+-------------------+---------+---------+---------+---------+---------+
| Req p50  (us)     | -3.21%  | -2.95%  | -2.68%  | -2.95%  | -5.35%  |
| Req p90  (us)     | -3.33%  | -3.33%  | -2.22%  | -3.70%  | -6.56%  |
| Req p99.9(us)     | -3.15%  | -5.15%  | -5.72%  | -5.72%  | -9.44%  |
| RPS p50  (req)    | +1.37%  | +1.37%  | +1.03%  | +1.37%  | +2.39%  |
+-------------------+---------+---------+---------+---------+---------+


[s-90] Schbench 16t -- Locking: Yes
+-------------------+---------+---------+---------+---------+---------+
| Metric            | concur  | max     | smp     | tasks   | up      |
+-------------------+---------+---------+---------+---------+---------+
| Req p50  (us)     | +3.51%  | +3.51%  | +3.26%  | +3.51%  | +2.01%  |
| Req p90  (us)     | -0.76%  | -0.38%  | -0.38%  | -0.76%  | +9.56%  |
| Req p99.9(us)     | -7.08%  | -2.10%  | -0.26%  | -6.82%  | +32.77% |
| RPS p50  (req)    | +0.77%  | +0.77%  | +0.77%  | +0.77%  | -3.56%  |
+-------------------+---------+---------+---------+---------+---------+

stress-ng (int64 stressor) bogo-ops/s statistics by stress level
(schbench):

(higher = better)

[s-50] Schbench 16t -- Locking: Yes — stress-ng vs baseline
+----------+------------+---------+-------+
| Variant  | Mean %diff | StdDev± | CV    |
+----------+------------+---------+-------+
| baseline | 453.53     | ±0.38%  | 0.38% |
+----------+------------+---------+-------+
| concur   | -1.54%     | ±0.53%  | 0.53% |
| max      | -1.57%     | ±0.60%  | 0.60% |
| smp      | -1.59%     | ±0.68%  | 0.68% |
| tasks    | -1.59%     | ±0.55%  | 0.55% |
| up       | -1.92%     | ±0.58%  | 0.59% |
+----------+------------+---------+-------+


[s-90] Schbench 16t -- Locking: Yes — stress-ng vs baseline
+----------+------------+---------+--------+
| Variant  | Mean %diff | StdDev± | CV     |
+----------+------------+---------+--------+
| baseline | 531.40     | ±1.73%  | 1.73%  |
+----------+------------+---------+--------+
| concur   | -0.26%     | ±1.14%  | 1.14%  |
| max      | -0.16%     | ±1.71%  | 1.71%  |
| smp      | -0.13%     | ±1.49%  | 1.49%  |
| tasks    | -0.32%     | ±1.19%  | 1.19%  |
| up       | +1.91%     | ±10.60% | 10.60% |
+----------+------------+---------+--------+

=======================================================================
  SCHBENCH 32T -- LOCKING: NO
=======================================================================

Schbench % diff from baseline by mode:

(Latency: lower = better, RPS: higher = better)

[s-00] Schbench 32t -- Locking: No
+-------------------+---------+---------+---------+---------+---------+
| Metric            | concur  | max     | smp     | tasks   | up      |
+-------------------+---------+---------+---------+---------+---------+
| Req p50  (us)     | +0.00%  | +0.00%  | +0.00%  | +0.00%  | +0.00%  |
| Req p90  (us)     | -0.23%  | +0.00%  | +0.00%  | -0.45%  | -0.23%  |
| Req p99.9(us)     | +5.14%  | +1.47%  | +6.97%  | +3.30%  | -1.10%  |
| RPS p50  (req)    | +0.00%  | +0.00%  | -0.35%  | +0.00%  | +0.00%  |
+-------------------+---------+---------+---------+---------+---------+


[s-50] Schbench 32t -- Locking: No
+-------------------+---------+---------+---------+---------+---------+
| Metric            | concur  | max     | smp     | tasks   | up      |
+-------------------+---------+---------+---------+---------+---------+
| Req p50  (us)     | -2.70%  | -2.70%  | -2.43%  | -2.16%  | -1.62%  |
| Req p90  (us)     | -2.20%  | -1.98%  | -2.20%  | -2.20%  | -3.51%  |
| Req p99.9(us)     | -3.40%  | -1.05%  | -1.57%  | -2.61%  | +0.00%  |
| RPS p50  (req)    | +1.27%  | +1.27%  | +1.27%  | +1.27%  | +1.58%  |
+-------------------+---------+---------+---------+---------+---------+


[s-90] Schbench 32t -- Locking: No
+-------------------+---------+---------+---------+---------+---------+
| Metric            | concur  | max     | smp     | tasks   | up      |
+-------------------+---------+---------+---------+---------+---------+
| Req p50  (us)     | +3.27%  | +3.27%  | +3.02%  | +3.27%  | +3.27%  |
| Req p90  (us)     | +12.35% | +12.35% | +12.13% | +12.13% | +32.08% |
| Req p99.9(us)     | -16.45% | -16.06% | -17.04% | -16.06% | -6.07%  |
| RPS p50  (req)    | +1.11%  | +1.11%  | +1.11%  | +1.11%  | -3.34%  |
+-------------------+---------+---------+---------+---------+---------+

stress-ng (int64 stressor) bogo-ops/s statistics by stress level
(schbench):

(higher = better)

[s-50] Schbench 32t -- Locking: No — stress-ng vs baseline
+----------+------------+---------+-------+
| Variant  | Mean %diff | StdDev± | CV    |
+----------+------------+---------+-------+
| baseline | 438.90     | ±0.49%  | 0.48% |
+----------+------------+---------+-------+
| concur   | -1.55%     | ±0.63%  | 0.63% |
| max      | -1.59%     | ±0.71%  | 0.71% |
| smp      | -1.50%     | ±0.79%  | 0.79% |
| tasks    | -1.49%     | ±0.63%  | 0.63% |
| up       | -1.86%     | ±0.62%  | 0.62% |
+----------+------------+---------+-------+


[s-90] Schbench 32t -- Locking: No — stress-ng vs baseline
+----------+------------+---------+--------+
| Variant  | Mean %diff | StdDev± | CV     |
+----------+------------+---------+--------+
| baseline | 523.09     | ±1.70%  | 1.70%  |
+----------+------------+---------+--------+
| concur   | -0.33%     | ±1.21%  | 1.21%  |
| max      | -0.29%     | ±1.36%  | 1.36%  |
| smp      | -0.40%     | ±1.24%  | 1.24%  |
| tasks    | -0.27%     | ±1.31%  | 1.31%  |
| up       | +3.62%     | ±11.49% | 11.49% |
+----------+------------+---------+--------+

=======================================================================
  SCHBENCH 32T -- LOCKING: YES
=======================================================================

Schbench % diff from baseline by mode:

(Latency: lower = better, RPS: higher = better)

[s-00] Schbench 32t -- Locking: Yes
+-------------------+---------+---------+---------+---------+---------+
| Metric            | concur  | max     | smp     | tasks   | up      |
+-------------------+---------+---------+---------+---------+---------+
| Req p50  (us)     | +0.00%  | +0.00%  | +0.00%  | +0.00%  | +0.00%  |
| Req p90  (us)     | +0.00%  | +0.23%  | +0.23%  | +0.23%  | -0.45%  |
| Req p99.9(us)     | -19.66% | -11.98% | -18.98% | -24.41% | -36.38% |
| RPS p50  (req)    | +0.00%  | +0.00%  | +0.00%  | +0.00%  | +0.35%  |
+-------------------+---------+---------+---------+---------+---------+


[s-50] Schbench 32t -- Locking: Yes
+-------------------+---------+---------+---------+---------+---------+
| Metric            | concur  | max     | smp     | tasks   | up      |
+-------------------+---------+---------+---------+---------+---------+
| Req p50  (us)     | -3.18%  | -3.18%  | -3.44%  | -3.18%  | -3.18%  |
| Req p90  (us)     | -2.59%  | -2.22%  | -1.85%  | -2.96%  | -5.45%  |
| Req p99.9(us)     | -2.97%  | -1.49%  | -2.38%  | -3.27%  | -6.54%  |
| RPS p50  (req)    | +1.70%  | +1.36%  | +1.36%  | +1.36%  | +3.06%  |
+-------------------+---------+---------+---------+---------+---------+


[s-90] Schbench 32t -- Locking: Yes
+-------------------+---------+---------+---------+---------+---------+
| Metric            | concur  | max     | smp     | tasks   | up      |
+-------------------+---------+---------+---------+---------+---------+
| Req p50  (us)     | +3.27%  | +3.27%  | +3.02%  | +3.27%  | +1.76%  |
| Req p90  (us)     | +2.69%  | +2.69%  | +2.69%  | +2.69%  | +47.36% |
| Req p99.9(us)     | -8.60%  | -8.60%  | -2.28%  | -8.60%  | +41.34% |
| RPS p50  (req)    | +1.54%  | +1.54%  | +1.54%  | +1.54%  | -7.39%  |
+-------------------+---------+---------+---------+---------+---------+

stress-ng (int64 stressor) bogo-ops/s statistics by stress level
(schbench):

(higher = better)

[s-50] Schbench 32t -- Locking: Yes — stress-ng vs baseline
+----------+------------+---------+-------+
| Variant  | Mean %diff | StdDev± | CV    |
+----------+------------+---------+-------+
| baseline | 451.63     | ±0.40%  | 0.40% |
+----------+------------+---------+-------+
| concur   | -1.82%     | ±0.45%  | 0.45% |
| max      | -1.80%     | ±0.45%  | 0.45% |
| smp      | -1.72%     | ±0.55%  | 0.55% |
| tasks    | -1.76%     | ±0.46%  | 0.47% |
| up       | -2.61%     | ±0.87%  | 0.87% |
+----------+------------+---------+-------+


[s-90] Schbench 32t -- Locking: Yes — stress-ng vs baseline
+----------+------------+---------+--------+
| Variant  | Mean %diff | StdDev± | CV     |
+----------+------------+---------+--------+
| baseline | 529.80     | ±1.78%  | 1.78%  |
+----------+------------+---------+--------+
| concur   | -0.75%     | ±1.12%  | 1.12%  |
| max      | -0.72%     | ±1.14%  | 1.14%  |
| smp      | -0.66%     | ±0.96%  | 0.96%  |
| tasks    | -0.67%     | ±1.19%  | 1.19%  |
| up       | +5.03%     | ±15.81% | 15.81% |
+----------+------------+---------+--------+


=======================================================================
  SYSBENCH RESULTS
=======================================================================


Sysbench throughput % diff from baseline by mode:

(higher = better)

[s-00] Sysbench — % diff from baseline by mode
+-------------------+---------+---------+---------+---------+---------+
| Argument          | concur  | max     | smp     | tasks   | up      |
+-------------------+---------+---------+---------+---------+---------+
| memory            | -0.18%  | +0.12%  | -0.36%  | -0.18%  | +0.00%  |
+-------------------+---------+---------+---------+---------+---------+


[s-50] Sysbench — % diff from baseline by mode
+-------------------+---------+---------+---------+---------+---------+
| Argument          | concur  | max     | smp     | tasks   | up      |
+-------------------+---------+---------+---------+---------+---------+
| memory            | -1.71%  | -0.43%  | -0.71%  | -1.07%  | -2.21%  |
+-------------------+---------+---------+---------+---------+---------+


[s-90] Sysbench — % diff from baseline by mode
+-------------------+---------+---------+---------+---------+---------+
| Argument          | concur  | max     | smp     | tasks   | up      |
+-------------------+---------+---------+---------+---------+---------+
| memory            | +2.94%  | +3.97%  | +3.46%  | +4.34%  | -6.76%  |
+-------------------+---------+---------+---------+---------+---------+



stress-ng (int64 stressor) mean % diff from baseline by stress level
(Sysbench):

(higher = better)

[s-50] Sysbench — stress-ng mean % diff from baseline
+-------------------+---------+---------+---------+---------+---------+
| Argument          | concur  | max     | smp     | tasks   | up      |
+-------------------+---------+---------+---------+---------+---------+
| memory            | +3.59%  | +2.78%  | +4.36%  | +3.60%  | +1.46%  |
+-------------------+---------+---------+---------+---------+---------+


[s-90] Sysbench — stress-ng mean % diff from baseline
+-------------------+---------+---------+---------+---------+---------+
| Argument          | concur  | max     | smp     | tasks   | up      |
+-------------------+---------+---------+---------+---------+---------+
| memory            | +0.85%  | -1.35%  | -0.00%  | -1.79%  | +18.47% |
+-------------------+---------+---------+---------+---------+---------+


Regards,

-- 
Szabina Korbai

Linux on Z development
Software Labs Campus Unlimited Company
25 North Wall Quay,
Dublin 1,
D01 H104,
Ireland

[email protected]


IBM
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.