Re: [ANNOUNCE] v5.10-rc2-rt4

From: Daniel Wagner
Date: Mon Nov 09 2020 - 09:37:09 EST


On Mon, Nov 09, 2020 at 01:47:18PM +0100, Sebastian Andrzej Siewior wrote:
> So it is the new migrate-disable code? If you have stable 100us you
> should be able bisect it within the few commits between rt13 and rt14.

Okay, I'll start a bissect in this range.

> this looks odd. So rt1 has 415, rt2 has 399 and rt3 has 420 so lets say
> it is the same. And then rt4 should reduce it to 340. The only part that
> could have some influence is the are the highmem/kmap patches. But for
> ARM64 these are still a nop and in both cases kmap_atomic() disables
> migrate & page-fault.
>
> Are you sure those numbers always reproducible and not something that
> goes wrong and sometimes it is captured at 300us and sometimes 400us.

These test run only very short with hackbench as worlkload (5 minutes).
Though I running these tests now for more than year with v4.4-rt and
some times the newer -rt releases and I've never seen the latency
numbers above 200us unless something was broken. Given that 5 minutes is
not really long, I'll let those test run for longer to see if I get the
same results when they run for one hour.

> I've been staring at the code of signaltest on Friday and I might need
> to stare longer to figure out what it does.

I hear you. Anyway, I gave the current head a run with lazy preemption
disabled as you asked for.

I had to add two ifdefs to get it compiling first:

diff --git a/kernel/sched/core.c b/kernel/sched/core.c
index 3fce6bbbeb5b..5a58ead3cf00 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -1800,7 +1800,9 @@ void migrate_disable(void)
preempt_disable();
this_rq()->nr_pinned++;
p->migration_disabled = 1;
+#ifdef CONFIG_PREEMPT_LAZY
preempt_lazy_disable();
+#endif
preempt_enable();
}
EXPORT_SYMBOL_GPL(migrate_disable);
@@ -1829,7 +1831,9 @@ void migrate_enable(void)
barrier();
p->migration_disabled = 0;
this_rq()->nr_pinned--;
+#ifdef CONFIG_PREEMPT_LAZY
preempt_lazy_enable();
+#endif
preempt_enable();

trace_sched_migrate_enable_tp(p);


5.10.0-rc2-rt4 vs 5.10.0-rc2-rt4(lazy preemption disabled)

0_cyclicdeadline t2-max-latency pass/pass 274.00/ 61.00 349.18%
0_cyclicdeadline t2-avg-latency pass/pass 217.00/ 19.00 1042.11%
0_cyclicdeadline t2-min-latency pass/pass 11.00/ 1.00 1000.00%
0_cyclicdeadline t1-max-latency pass/pass 113.00/ 132.00 -14.39%
0_cyclicdeadline t1-avg-latency pass/pass 21.00/ 24.00 -12.50%
0_cyclicdeadline t1-min-latency pass/pass 1.00/ 1.00 0.00%
0_cyclicdeadline t0-max-latency pass/pass 258.00/ 110.00 134.55%
0_cyclicdeadline t0-avg-latency pass/pass 140.00/ 19.00 636.84%
0_cyclicdeadline t0-min-latency pass/pass 5.00/ 1.00 400.00%
0_cyclictest t3-max-latency pass/pass 90.00/ 118.00 -23.73%
0_cyclictest t3-avg-latency pass/pass 33.00/ 30.00 10.00%
0_cyclictest t3-min-latency pass/pass 11.00/ 11.00 0.00%
0_cyclictest t2-max-latency pass/pass 93.00/ 96.00 -3.12%
0_cyclictest t2-avg-latency pass/pass 28.00/ 29.00 -3.45%
0_cyclictest t2-min-latency pass/pass 11.00/ 11.00 0.00%
0_cyclictest t1-max-latency pass/pass 125.00/ 138.00 -9.42%
0_cyclictest t1-avg-latency pass/pass 30.00/ 29.00 3.45%
0_cyclictest t1-min-latency pass/pass 11.00/ 11.00 0.00%
0_cyclictest t0-max-latency pass/pass 95.00/ 97.00 -2.06%
0_cyclictest t0-avg-latency pass/pass 30.00/ 30.00 0.00%
0_cyclictest t0-min-latency pass/pass 11.00/ 11.00 0.00%
0_pi-stress pi-stress fail/fail 0.00/ 0.00 0.00%
0_pmqtest t7-6-max-latency pass/pass 69.00/ 76.00 -9.21%
0_pmqtest t7-6-avg-latency pass/pass 20.00/ 19.00 5.26%
0_pmqtest t7-6-min-latency pass/pass 15.00/ 14.00 7.14%
0_pmqtest t5-4-max-latency pass/pass 90.00/ 95.00 -5.26%
0_pmqtest t5-4-avg-latency pass/pass 20.00/ 19.00 5.26%
0_pmqtest t5-4-min-latency pass/pass 15.00/ 14.00 7.14%
0_pmqtest t3-2-max-latency pass/pass 71.00/ 74.00 -4.05%
0_pmqtest t3-2-avg-latency pass/pass 20.00/ 18.00 11.11%
0_pmqtest t3-2-min-latency pass/pass 15.00/ 14.00 7.14%
0_pmqtest t1-0-max-latency pass/pass 113.00/ 110.00 2.73%
0_pmqtest t1-0-avg-latency pass/pass 24.00/ 22.00 9.09%
0_pmqtest t1-0-min-latency pass/pass 16.00/ 14.00 14.29%
0_ptsematest t7-6-max-latency pass/pass 66.00/ 67.00 -1.49%
0_ptsematest t7-6-avg-latency pass/pass 15.00/ 15.00 0.00%
0_ptsematest t7-6-min-latency pass/pass 11.00/ 11.00 0.00%
0_ptsematest t5-4-max-latency pass/pass 75.00/ 67.00 11.94%
0_ptsematest t5-4-avg-latency pass/pass 15.00/ 15.00 0.00%
0_ptsematest t5-4-min-latency pass/pass 11.00/ 11.00 0.00%
0_ptsematest t3-2-max-latency pass/pass 68.00/ 78.00 -12.82%
0_ptsematest t3-2-avg-latency pass/pass 15.00/ 15.00 0.00%
0_ptsematest t3-2-min-latency pass/pass 11.00/ 11.00 0.00%
0_ptsematest t1-0-max-latency pass/pass 116.00/ 106.00 9.43%
0_ptsematest t1-0-avg-latency pass/pass 17.00/ 17.00 0.00%
0_ptsematest t1-0-min-latency pass/pass 11.00/ 11.00 0.00%
0_rt-migrate-test t4-p55-avg pass/pass 121.00/ 127.00 -4.72%
0_rt-migrate-test t4-p55-tot pass/pass 6076.00/ 6369.00 -4.60%
0_rt-migrate-test t4-p55-min pass/pass 31.00/ 28.00 10.71%
0_rt-migrate-test t4-p55-max pass/pass 234.00/ 230.00 1.74%
0_rt-migrate-test t3-p54-avg pass/pass 121.00/ 119.00 1.68%
0_rt-migrate-test t3-p54-tot pass/pass 6082.00/ 5968.00 1.91%
0_rt-migrate-test t3-p54-min pass/pass 33.00/ 33.00 0.00%
0_rt-migrate-test t3-p54-max pass/pass 262.00/ 211.00 24.17%
0_rt-migrate-test t2-p53-avg pass/pass 123.00/ 126.00 -2.38%
0_rt-migrate-test t2-p53-tot pass/pass 6161.00/ 6302.00 -2.24%
0_rt-migrate-test t2-p53-min pass/pass 35.00/ 34.00 2.94%
0_rt-migrate-test t2-p53-max pass/pass 228.00/ 204.00 11.76%
0_rt-migrate-test t1-p52-avg pass/pass 159.00/ 172.00 -7.56%
0_rt-migrate-test t1-p52-tot pass/pass 7990.00/ 8636.00 -7.48%
0_rt-migrate-test t1-p52-min pass/pass 40.00/ 43.00 -6.98%
0_rt-migrate-test t1-p52-max pass/pass 253.00/ 273.00 -7.33%
0_rt-migrate-test t0-p51-avg pass/pass 7374.00/ 8583.00 -14.09%
0_rt-migrate-test t0-p51-tot pass/pass 368726.00/ 429192.00 -14.09%
0_rt-migrate-test t0-p51-min pass/pass 59.00/ 55.00 7.27%
0_rt-migrate-test t0-p51-max pass/pass 20208.00/ 20227.00 -0.09%
0_signaltest t0-max-latency pass/pass 340.00/ 385.00 -11.69%
0_signaltest t0-avg-latency pass/pass 53.00/ 55.00 -3.64%
0_signaltest t0-min-latency pass/pass 24.00/ 24.00 0.00%
0_sigwaittest t7-6-max-latency pass/pass 347.00/ 322.00 7.76%
0_sigwaittest t7-6-avg-latency pass/pass 27.00/ 26.00 3.85%
0_sigwaittest t7-6-min-latency pass/pass 17.00/ 17.00 0.00%
0_sigwaittest t5-4-max-latency pass/pass 248.00/ 288.00 -13.89%
0_sigwaittest t5-4-avg-latency pass/pass 26.00/ 25.00 4.00%
0_sigwaittest t5-4-min-latency pass/pass 17.00/ 17.00 0.00%
0_sigwaittest t3-2-max-latency pass/pass 197.00/ 226.00 -12.83%
0_sigwaittest t3-2-avg-latency pass/pass 25.00/ 24.00 4.17%
0_sigwaittest t3-2-min-latency pass/pass 18.00/ 17.00 5.88%
0_sigwaittest t1-0-max-latency pass/pass 179.00/ 213.00 -15.96%
0_sigwaittest t1-0-avg-latency pass/pass 29.00/ 28.00 3.57%
0_sigwaittest t1-0-min-latency pass/pass 18.00/ 17.00 5.88%
0_svsematest t7-6-max-latency pass/pass 85.00/ 76.00 11.84%
0_svsematest t7-6-avg-latency pass/pass 17.00/ 16.00 6.25%
0_svsematest t7-6-min-latency pass/pass 13.00/ 12.00 8.33%
0_svsematest t5-4-max-latency pass/pass 66.00/ 70.00 -5.71%
0_svsematest t5-4-avg-latency pass/pass 17.00/ 16.00 6.25%
0_svsematest t5-4-min-latency pass/pass 13.00/ 12.00 8.33%
0_svsematest t3-2-max-latency pass/pass 99.00/ 73.00 35.62%
0_svsematest t3-2-avg-latency pass/pass 17.00/ 15.00 13.33%
0_svsematest t3-2-min-latency pass/pass 13.00/ 12.00 8.33%
0_svsematest t1-0-max-latency pass/pass 121.00/ 127.00 -4.72%
0_svsematest t1-0-avg-latency pass/pass 19.00/ 18.00 5.56%
0_svsematest t1-0-min-latency pass/pass 13.00/ 12.00 8.33%


cyclicdeadline seems heavily affected by the change.