As has been demonstrated 3 weeks ago after enabling dmc and defaulting to dmc_ondemand as governor by Radxa Rock5B’s idle consumption dropped by 500-600mW but also performance is harmed. See the Geekbench comparison above or compare sbc-bench scores. With dmc disabled or performance dmc governor performance is significantly higher than compared to dmc_ondemand.
Can this be changed? Of course.
There’s a few tunables below /sys/devices/platform/dmc/devfreq/dmc/ and upthreshold for example defaults to 40. This whole dmc thing (Dynamic Memory Interface) is all about clocking the RAM between 528 MHz and 2112 MHz based on ‘need’. But as we’ve seen defaults end up with RAM clocks not ramping up fast enough with benchmarks (and real-world tasks as well).
Quick loop with 7z b through 10-40 and listing the 7-ZIP MIPS for compression and decompression individually. Also measuring idle consumption for 3 minutes with each setting and reporting the averaged value:
upthreshold |
compression | decompression | idle |
|---|---|---|---|
| 40 | 12685 | 15492 | 1280mW |
| 30 | 15032 | 15111 | 1280mW |
| 20 | 14672 | 16297 | 1280mW |
| 10 | 15503 | 17252 | 1910mW |
| (performance) | 15370 | 17786 | 1920mW |
Looks like smart people (or smart distro maintainers) add this to some start script or service: echo 20 > /sys/devices/platform/dmc/devfreq/dmc/upthreshold ![]()
Full 7-zip MIPS list of all upthreshold values between 10 and 40:
| upthreshold | compression MIPS | decompression MIPS |
|---|---|---|
| 40 | 12685 | 15492 |
| 39 | 12327 | 15559 |
| 38 | 12349 | 15638 |
| 37 | 12356 | 15525 |
| 36 | 12362 | 15560 |
| 35 | 12183 | 15472 |
| 34 | 13809 | 15216 |
| 33 | 14373 | 15055 |
| 32 | 14978 | 14962 |
| 31 | 14658 | 15307 |
| 30 | 15032 | 15111 |
| 29 | 15127 | 14986 |
| 28 | 14960 | 14953 |
| 27 | 14888 | 15244 |
| 26 | 15190 | 15281 |
| 25 | 14727 | 15320 |
| 24 | 14819 | 15799 |
| 23 | 14710 | 14618 |
| 22 | 14847 | 16332 |
| 21 | 14964 | 16200 |
| 20 | 14672 | 16297 |
| 19 | 15125 | 16244 |
| 18 | 14972 | 16406 |
| 17 | 15373 | 16587 |
| 16 | 14985 | 16962 |
| 15 | 15372 | 17076 |
| 14 | 15403 | 17121 |
| 13 | 15282 | 17144 |
| 12 | 15139 | 17165 |
| 11 | 15185 | 17204 |
| 10 | 15503 | 17252 |
As can be seen each run needs to be repeated at least 5 times and then take an average value to get rid of result variation caused by side effects. But I’ll leave this for someone else as an excercise…