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.