diff options
| author | myfluxi <linflux@arcor.de> | 2015-11-11 20:33:49 +0100 |
|---|---|---|
| committer | doc HD <doc.divxm@gmail.com> | 2015-11-12 13:29:04 +0200 |
| commit | e9f7aea63e4761f7bafbda76cb42ca7a6a4747c7 (patch) | |
| tree | c06d4be9cd98e3a2ea5cd0d57dbd451dd997e75e | |
| parent | 998aa6c93d213e358fcfc3cecfb3f410bd9254c0 (diff) | |
hammerheadcaf: Disable cpu-boost sync_threshold to recover from regressionlp5.1
Load based syncs successfully avoid boosting of lightweight threads.
Unfortunately, cpus with high frequencies over sync_threshold will
be unnaturally throttled which becomes appearant in hackbench with
its high number of thread migrations. None of the newer targets sets
sync_threshold, either.
Pre patch:
root@hammerhead:/ # perf stat --repeat 10 hackbench 10
Running in process mode with 10 groups using 40 file descriptors each (== 400 tasks)
Each sender will pass 100 messages of 100 bytes
Time: 0.923
Running in process mode with 10 groups using 40 file descriptors each (== 400 tasks)
Each sender will pass 100 messages of 100 bytes
Time: 1.106
Running in process mode with 10 groups using 40 file descriptors each (== 400 tasks)
Each sender will pass 100 messages of 100 bytes
Time: 0.934
Running in process mode with 10 groups using 40 file descriptors each (== 400 tasks)
Each sender will pass 100 messages of 100 bytes
Time: 0.917
Running in process mode with 10 groups using 40 file descriptors each (== 400 tasks)
Each sender will pass 100 messages of 100 bytes
Time: 0.765
Running in process mode with 10 groups using 40 file descriptors each (== 400 tasks)
Each sender will pass 100 messages of 100 bytes
Time: 0.807
Running in process mode with 10 groups using 40 file descriptors each (== 400 tasks)
Each sender will pass 100 messages of 100 bytes
Time: 0.930
Running in process mode with 10 groups using 40 file descriptors each (== 400 tasks)
Each sender will pass 100 messages of 100 bytes
Time: 0.937
Running in process mode with 10 groups using 40 file descriptors each (== 400 tasks)
Each sender will pass 100 messages of 100 bytes
Time: 0.858
Running in process mode with 10 groups using 40 file descriptors each (== 400 tasks)
Each sender will pass 100 messages of 100 bytes
Time: 0.808
Performance counter stats for 'hackbench 10 ' (10 runs):
3575.129450 task-clock#3.498 CPUs utilized
( +- 3.95% )
42637 context-switches #0.012 M/sec
( +- 12.54% )
6152 CPU-migrations#0.002 M/sec
( +- 9.98% )
37874 page-faults #0.011 M/sec
( +- 0.02% )
6208354174 cycles#1.737 GHz <--- should not happen!
( +- 1.78% ) [90.87%]
0 stalled-cycles-frontend #0.00% frontend cycles idle
( +- 0.00% ) [88.02%]
0 stalled-cycles-backend#0.00% backend cycles idle
( +- 0.00% ) [87.13%]
1948037598 instructions #0.31 insns per cycle
( +- 1.53% ) [89.32%]
203196136 branches # 56.836 M/sec
( +- 1.46% ) [90.70%]
5345440 branch-misses #2.63% of all branches
( +- 4.62% ) [85.52%]
1.022038466 seconds time elapsed
( +- 4.09% )
Post patch:
root@hammerhead:/ # perf stat --repeat 10 hackbench 10
Running in process mode with 10 groups using 40 file descriptors each (== 400 tasks)
Each sender will pass 100 messages of 100 bytes
Time: 0.735
Running in process mode with 10 groups using 40 file descriptors each (== 400 tasks)
Each sender will pass 100 messages of 100 bytes
Time: 0.815
Running in process mode with 10 groups using 40 file descriptors each (== 400 tasks)
Each sender will pass 100 messages of 100 bytes
Time: 0.754
Running in process mode with 10 groups using 40 file descriptors each (== 400 tasks)
Each sender will pass 100 messages of 100 bytes
Time: 0.721
Running in process mode with 10 groups using 40 file descriptors each (== 400 tasks)
Each sender will pass 100 messages of 100 bytes
Time: 0.770
Running in process mode with 10 groups using 40 file descriptors each (== 400 tasks)
Each sender will pass 100 messages of 100 bytes
Time: 0.767
Running in process mode with 10 groups using 40 file descriptors each (== 400 tasks)
Each sender will pass 100 messages of 100 bytes
Time: 0.762
Running in process mode with 10 groups using 40 file descriptors each (== 400 tasks)
Each sender will pass 100 messages of 100 bytes
Time: 0.689
Running in process mode with 10 groups using 40 file descriptors each (== 400 tasks)
Each sender will pass 100 messages of 100 bytes
Time: 0.748
Running in process mode with 10 groups using 40 file descriptors each (== 400 tasks)
Each sender will pass 100 messages of 100 bytes
Time: 0.679
Performance counter stats for 'hackbench 10 ' (10 runs):
2838.930889 task-clock#3.343 CPUs utilized
( +- 1.81% )
22301 context-switches #0.008 M/sec
( +- 11.18% )
3641 CPU-migrations#0.001 M/sec
( +- 11.13% )
37950 page-faults #0.013 M/sec
( +- 0.09% )
5714558403 cycles#2.013 GHz
( +- 1.59% ) [91.42%]
0 stalled-cycles-frontend #0.00% frontend cycles idle
( +- 0.00% ) [89.07%]
0 stalled-cycles-backend#0.00% backend cycles idle
( +- 0.00% ) [89.74%]
1868219180 instructions #0.33 insns per cycle
( +- 0.82% ) [90.90%]
193711678 branches # 68.234 M/sec
( +- 1.44% ) [91.41%]
4927373 branch-misses #2.54% of all branches
( +- 3.57% ) [87.20%]
0.849242812 seconds time elapsed
( +- 1.58% )
Change-Id: I8744cc1f96fefa81149ded1c2dc54ff4d3b76665
(cherry picked from commit 8f45a2d638ec7f1511de06ebea84ed96f2b6cde7)
| -rw-r--r-- | init.hammerhead.power.rc | 1 |
1 files changed, 0 insertions, 1 deletions
diff --git a/init.hammerhead.power.rc b/init.hammerhead.power.rc index 709ea19..bbd021c 100644 --- a/init.hammerhead.power.rc +++ b/init.hammerhead.power.rc @@ -100,7 +100,6 @@ on property:init.svc.bootanim=stopped # cpu-boost write /sys/module/cpu_boost/parameters/boost_ms 20 - write /sys/module/cpu_boost/parameters/sync_threshold 1728000 write /sys/module/cpu_boost/parameters/input_boost_freq 1190400 write /sys/module/cpu_boost/parameters/input_boost_ms 500 write /sys/module/cpu_boost/parameters/load_based_syncs 1 |
