Messages in this thread | | | Date | Fri, 2 Aug 2019 11:37:15 -0400 | From | Julien Desfossez <> | Subject | Re: [RFC PATCH v3 00/16] Core scheduling v3 |
| |
We tested both Aaron's and Tim's patches and here are our results.
Test setup: - 2 1-thread sysbench, one running the cpu benchmark, the other one the mem benchmark - both started at the same time - both are pinned on the same core (2 hardware threads) - 10 30-seconds runs - test script: https://paste.debian.net/plainh/834cf45c - only showing the CPU events/sec (higher is better) - tested 4 tag configurations: - no tag - sysbench mem untagged, sysbench cpu tagged - sysbench mem tagged, sysbench cpu untagged - both tagged with a different tag - "Alone" is the sysbench CPU running alone on the core, no tag - "nosmt" is both sysbench pinned on the same hardware thread, no tag - "Tim's full patchset + sched" is an experiment with Tim's patchset combined with Aaron's "hack patch" to get rid of the remaining deep idle cases - In all test cases, both tasks can run simultaneously (which was not the case without those patches), but the standard deviation is a pretty good indicator of the fairness/consistency.
No tag ------ Test Average Stdev Alone 1306.90 0.94 nosmt 649.95 1.44 Aaron's full patchset: 828.15 32.45 Aaron's first 2 patches: 832.12 36.53 Aaron's 3rd patch alone: 864.21 3.68 Tim's full patchset: 852.50 4.11 Tim's full patchset + sched: 852.59 8.25
Sysbench mem untagged, sysbench cpu tagged ------------------------------------------ Test Average Stdev Alone 1306.90 0.94 nosmt 649.95 1.44 Aaron's full patchset: 586.06 1.77 Aaron's first 2 patches: 630.08 47.30 Aaron's 3rd patch alone: 1086.65 246.54 Tim's full patchset: 852.50 4.11 Tim's full patchset + sched: 390.49 15.76
Sysbench mem tagged, sysbench cpu untagged ------------------------------------------ Test Average Stdev Alone 1306.90 0.94 nosmt 649.95 1.44 Aaron's full patchset: 583.77 3.52 Aaron's first 2 patches: 513.63 63.09 Aaron's 3rd patch alone: 1171.23 3.35 Tim's full patchset: 564.04 58.05 Tim's full patchset + sched: 1026.16 49.43
Both sysbench tagged -------------------- Test Average Stdev Alone 1306.90 0.94 nosmt 649.95 1.44 Aaron's full patchset: 582.15 3.75 Aaron's first 2 patches: 561.07 91.61 Aaron's 3rd patch alone: 638.49 231.06 Tim's full patchset: 679.43 70.07 Tim's full patchset + sched: 664.34 210.14
So in terms of fairness, Aaron's full patchset is the most consistent, but only Tim's patchset performs better than nosmt in some conditions.
Of course, this is one of the worst case scenario, as soon as we have multithreaded applications on overcommitted systems, core scheduling performs better than nosmt.
Thanks,
Julien
| |