[Samsung Galaxy S 5 Unified Development] Cuzeg Spiked:
Still using tuned-kernel-20201030-klte so far and it's good. Still managing 10+ Hour SoT after all these years with my S5. Actually have a 2nd S5 since the first one died. I was able to achieve 12-14 hrs or even 16 when I underclock (including GPU) but this isn't bad for stock. I rolled back a version or two to May 2020 version before adjusting the 20201030-klte version.

Basically using this as backup phone to Oneplus 3 as I've not found the need to upgrade. Removable battery swapping really keeps the battery last a while. Even thought of getting a Pinephone for Linux testing and usage, as running PostmarketOS isn't fully viable for this one. Interactive tunables and CPU/GPU clocks and cores can be changd by a command or script though.

Fixed the Screen flickers well but I use the OLED Saver app anyway as flickers do still make it through sometimes. Especially when its cold or when I open the phone from a long idle. The fix is something I would have wished 2 years ago. Thanks.

I changed the interactive tunables from default to achieve said SoT, better idles and keep the performance or slightly improve gaming performance. By reducing stuttering while not underclocking. Also latency where possible. I did undervolt , this one even better than last and stability tested.

Above Hispeed delay: 40000 729600:40000 1190400:40000 1574400:50000 1728000:80000

I've also experimented with 200,000 delay to 1,000,000, this without the 729600 value, top speed at 1497600, 1574400, 1958400 to like 2265600-2611200 with the 79000/80000 delay. One part i tried with 39000, 50000, 79000.

Hispeed frequency: 1190400

Tried 729600, 1267200, 1497600, mainly the lower freqs.

Boostpulse: 80000. Noticed the default was too high and lowering it improved things. Also tested 100k instead of 1,000,000. As well as 200,000. Or 60,000.

Go_hispeed load or target loads: 90-100%. Settled with 100.

Target loads also but I went with similar tunables to default after much trial and error. With nominal frequency for idle/low load, gaming, video, loading, reducing bursts while typing.

Target loads: 100 268800:34 422400:52 729600:66 1190400:85 1574400:93 1728000:97

I did try 34 to 10% or 20%, 52 could be 34-42, and so on. Could up these below 50%-75 frequencies depending on your CPU load and if you game a little. Like for 97, i once did maximum frequency or close to it. Before I did 90/100% without targeting specific frequencies at certain loads as well. Could up these lower frequencies aa well.

Timer slack: 40000 ,,Timer Rate: 10000 . could try 80000 to 20000 or 30000-40000, or timer slack 60000. Wanted to go lower but not too Low. I think even 20k-30k timer slack is fine.

Align windows: either 1 or 0. Did 0 myself. Not sure.

Min_sample_time: 40000. Also try 60000-80000 or even 20000.

Max freq hysterisis: not sure, went with 80000 anyway to keep max freq longer but i was with 40000 or even low as 10000.

Freq calc threshold: 268800. Not sure, guess keep it there.

Input boosts; Disabled them but you could keep 1497MHz and 1728MHz Sync frequency. Disabled so interactive tunables were more effective and save battery when I quickly type. Boosting to max frequency isn't needed for typing or mid frequency. Lower frequencies are ok

Multicore powersaving aggressive, Schedule workqueues on/off.

Wasn't a fan of the new defaults so I thought I'd suggest to improve it. Ran these for several months now. At least for Tuned while also working with Tuned hotplugger and for overall interactive tunable. Similar to the ones I used for Snapdragon 820 but frequency differences and without Big.Little. I feel even mine could be way better for tunables.

As for other battery tweaks, changed heap size to 256MB, growth size at 96MB, startsize 8MB, minfree 512K to 1M, Max free 8MB and target utilisation 0.75. Alternative being 384MB, 144Mb growth. Specificallly for better using memory without running out as fast or swapping. More relevant in android Q.

Personally I'm running /e/ OS Android P Rom which gets updates, and A good rom for privacy, or using microG if its your thing. I debloated mine to a real minimal state however but it may not make a huge difference.

Virtual memory:

Swap 0 , or put swappiness at like 1-3, or 5-12%. Vnswap. Still seem to work even when i put 0 probably.

Dirty ratio and background ratio: didn't change, not that I could this time. 20,10. I could run 40,20 or 10,5/ 20,5.

Dirty Writeback centisecs: 500 (or do 3000?)

Dirty Expire centisecs: 3000

Vfs cache pressure: 100 but I put 200 for some reason and it worked out well. Or you can go below.

Overcommit memory: 0. In some ways wantes to mimmick my Linux system since that also uses low memory. To conserve.

Min_free kbytes: 3008 was the lowest i ran.

Extra_free kbytes: lowered this from 24300 to 18125 or 12150. To try and trigger it less but a balance. Also used the lowest possible LMK values I get away with.

Compact memory: 1, drop caches 3. You can enable or disable this but not by default on here. Android Q seem to have this at 0 whereas below its like this. Not sure, keep. If it working, then good.

Another tweak I quite liked was ro.config.low_ram=true , wifi_supplicant_scan_interval=180 or 360, 500, as high you like? Wish this was default as I thought it already was with scan throttling in Pie or android 10.

Additionally ro.ril.power_collapse=true, pm.sleep_mode=true, persist.sys.purgeable_assets=1 , debug.egl.hw=1 (if it even works or necessary, wanted to aee if gpu acceleration could help battery by offloading cpu load in certain cases)? Did use adreno mod 330 which may or may not affect anything as its old. One problem is every update I have to rewrite those build props or put this in a script. Its annoying but the reality, unless i !ade my own rom.

Lastly ro.config.hw_quickpoweron=true for faster boot , really works. Other build.props are all ROM Defaults.

I/O scheduler was Noop but BFQ is alright too. Zen or row, or FIOPS. Disabled file lease but keeping it on is for the best i bet. Autosync off obviously and generaly no notifications except calls. Do not disturb almost. As far as other battery tweaks go, low brightness sometimes, wifi vs 4G LTE, disable autorotate , maybe run Battery Saver. I restrict many apps, prevent almost all from booting up at all to save precious memory and cpu.

Primarily still use this phone for web browsing, youtube via Newpipe but watch Videos through VLC or MPV for longer battery life, some light gaming like Minecraft, Dungeon Quest, tux kart/racer as a test, several emulators from megadrive, NES, to PSP. Even some DS. Tried to test as many workloads that I tend to do a bit. Some more intensive games , will use 100% no matter what which I expect or wanted , especially the gpu. I do still use GLTools for e.g, run in 720p sometimes or 960x540 but 1080p is ok. Also GTA series, Half life Xash3D. Anything the S5 is capable of.

Possibly the best kernel for this phone , come a long way. Wouldn't mind source of current kernel to possibly use on own kernel for other phones or linux in general with ncurses kernel Menu or so. Don't know much programming with that said but I do like foss. I can have a look with this current version in ncurses as well.

The geekbench scores: those are what i get with default speed + the tweaks. Overclock can easily get 1200+ in geekbench 4, or 172-180, 585 on geekbench 5. The best I've seen was 1210, 3106 once. Androbench was my best I/O Bench i could think of.