• Introducing XDA Computing: Discussion zones for Hardware, Software, and more!    Check it out!

[Kernel] [CAF-Rebased] Horizon Kernel [Android R] [OOS/Custom]

Search This thread

brashmadcap

Senior Member
May 22, 2010
467
161
Texas
I dont see how a benchmark utility can quantify the battery life saved by allowing 300mhz minimum. It is clearly not for performance. Our devices have more than enough performance, but many people are wanting to improve battery life. Perhaps it doesnt help, I cant say if it does or not, but the option is nice to have.
It literally shows iterations per second per millijoule and the <10mw delta between 300/691

Just because you "don't see how" doesn't mean it's wrong, and you still have the option, just set the minimum CPU to 300 if you're the type of user who prefers a poor experience with considerably more lag for the extra probably 20 minutes per charge cycle of standby you'll get between screen on and deep sleep
 

lottarake

Senior Member
Dec 14, 2010
101
40
Manchester
OnePlus 8T
Curious what version of wireguard the latest is built with? Wireguard app says kernel has 1.0.0, but not sure how accurate it is.

Regardless, the newest version is running better than the last for me on custom. Appreciate the constant support!
 

xzr467706992

Senior Member
Jul 16, 2016
155
517
  • Like
Reactions: lottarake

xenoglyph

Member
Jun 9, 2009
49
19
I have an IN2025, running 11.0.5.5.IN11AA.

I've tried every kernel here for OOS, and they all work fine. However, USB tethering doesn't work on this kernel. Sucks, cuz this is the kernel I want to use.
 

xenoglyph

Member
Jun 9, 2009
49
19
lol, yes I'm sure. usb tethering is my main source of internet. I've tried everything i can think of, clean OOS with a freshly patched boot, using the horizon flasher instead of EXKM. This is the only kernel that breaks USB tethering for me. If I get it figured out I'll reply with what the incompatibility was.
 

jac0b

Senior Member
Aug 23, 2009
254
261
Edgewater, FL
OnePlus 8 Pro
Is the first core supposed to only have 2 frequencies?
 

Attachments

  • Screenshot_20210604-111815.jpg
    Screenshot_20210604-111815.jpg
    297.2 KB · Views: 123

kumar akarsh

Senior Member
Dec 21, 2012
364
90
A small thing I've noticed with horizon kernel on OOS on 8pro is it makes switching camera lenses in gcam very slow. It's fine with other kernels. It's really niche and not really anything serious but I would appreciate if you could look into it
 

Phalanx7621

Senior Member
Jul 17, 2011
5,021
2,272
Delaware
OnePlus 8 Pro
It literally shows iterations per second per millijoule and the <10mw delta between 300/691

Just because you "don't see how" doesn't mean it's wrong, and you still have the option, just set the minimum CPU to 300 if you're the type of user who prefers a poor experience with considerably more lag for the extra probably 20 minutes per charge cycle of standby you'll get between screen on and deep sleep
ROFL I used to be like that when I was younger. After being in this thing of ours for 10 years I've learned it really isn't that big a deal. Android nowadays does a great job of battery management.
 

Top Liked Posts

  • There are no posts matching your filters.
  • 21
    dSDoOx.png


    Horizon Kernel for Oneplus 8 & 8 Pro & 8T

    This kernel is mostly focus on daily experience and battery consumption

    Features:

    - Rebase on CAF "LA.UM.9.12.r1-12200-SMxx50.QSSI12.0"
    - Build with proton clang 12 + polly + O3 + A55 optimizations
    - Disable kernel module and build everything inline
    - Switch to lz4 for ZRAM
    - Remove lots of debug stuff
    - Remove unused drivers
    - BBR TCP congestion algorithms support
    - Use fq as default qdisc
    - Switch to 128kB readahead ( Optimize for UFS )
    - Stop collecting I/O statistics
    - Switch to urandom
    - Use schedhorizon as default cpufreq governor
    - GPU OC 670mhz ( Same as sd865plus)
    - Wireguard support
    - CIFS support
    - KCAL & Klapse support
    - .........................................

    Download

    Since R12, custom ROMs are supported
    -OOS = Oxygen OS
    -Lineage = Custom ROMs

    You can flash it via exkm, fkm or this free and opensource tool

    Note: See the thread below if you are looking for legacy builds

    Also, here's a control center software.
    You can control game mode, 240Hz touch sampling rate and UFS Turbo Write in it.

    BUG
    - You tell me


    Contributors
    xzr467706992

    Credits
    https://github.com/xzr467706992/android_kernel_oneplus_sm8250/graphs/contributors

    Source
    https://github.com/xzr467706992/android_kernel_oneplus_sm8250

    Channel & Group
    https://t.me/horizon_op8
    6
    Changelog:

    R17
    - Merge CAF LA.UM.9.12.r1-12500-SMxx50.0
    - Update dts to LA.UM.9.12.r1-12000-SMxx50.0
    - Update ion drivers
    - Update simple lmk drivers
    - touchscreen: Adapt PM QoS usage to incoherent OnePlus code
    - Slightly optimize performance on scrolling

    R16.3
    - Rebase on CAF msm-4.19 and remove all upstream linux stable changes ( Rollback to 4.19.157 )
    ( This could solve at least deep sleep issue and avoid a lot of potential issue )
    - Inline the spin lock function family to improve performance
    - Correct capacity value of big cluster in energy model

    R16.2
    - Merge Linux 4.19.198
    - Revert back to old scheduling policy

    R16.1
    - Merge CAF "LA.UM.9.12.r1-12200-SMxx50.QSSI12.0"
    - Further optimize on scheduling
    - May fix a wlan connection problem introduced in last build

    R16
    - Linux 4.19.197
    - Merge CAF "LA.UM.9.12.r1-12000-SMxx50.0"
    - Rework scheduling policy
    - Optimize touchscreen latency and interrupt CPU usage

    R15.1
    - Linux 4.19.196
    - Fix kernel panic when screen casting with "windows connect"
    - Fix UI lagging and inaccurate network speed when a proxy is running in the background
    ( This dropped BBR and set Westwood as default congestion algorithm )
    - Move back to Simple LMK as lowmemory killer

    Controller Update
    - Add a switch for BBR congestion algorithm for those who need it

    R15
    - Merge CAF "LA.UM.9.12.r1-11800-SMxx50.QSSI12.0"
    - Fix random lags on R14.3
    - Relax performance restrictions for schedhorizon
    - Move to 10ms for WALT window size for faster response
    - Cleanup and optimize fuel gauger driver

    R14.3
    - Linux 4.19.195
    - Fix google photos video lag on custom ROMs

    R14.2
    - Linux 4.19.193
    - Move back to userspace lmkd to improve multitasking experience
    - Synchronize oneplus changes from oss

    R14.1
    - Fix kernel panic when using terminal

    R14
    - Merge CAF "LA.UM.9.12.r1-11500-SMxx50.0"
    - Merge Linux 4.19.192
    - Optimize camera launching speed

    R13.3
    - Fix kernel panic when subsystems crash

    R13.2
    - Merge Linux 4.19.191
    - Fix modem unable to reset after a crash
    - Cleanup some more oneplus codes
    - Custom build: Synchronize changes with LineageOS kernel and apply new FOD patches
    Note: If you are facing disappeared fod, just wait for your maintainer to update fod on the ROM side.

    R13.1
    - Merge Linux 4.19.190
    - Fix zram compression algorithm not setting to lz4 on kebab
    - Perform PID map reads on the little CPU cluster

    R13
    - Merge CAF "LA.UM.9.12.r1-11300-SMxx50.0"
    - Implement fuse short circuit to improve i/o performance under /sdcard
    - Ignore modem crash event

    R12.4
    - Merge Linux 4.19.186 187 188 189
    - Fix unable to apply system update on kebab
    - 20X optimize PID map reads
    - Increase vmstat interval to reduce overhead
    - Fix kernel warning when triggering tri-state-key
    - Apply some backports to vmalloc & jump label
    - Enable jump label for branch optimization
    - Enable automatic compaction for ZRAM
    - Upstream Simple LMK
    - Some more I forgot

    R12.3
    - May fix some problems with pd charging
    - Fix kernel panic when modem crash sometimes

    R12.2
    - Merge Linux 4.19.184 185
    - Implement f2fs rapid gc from arter97
    - Shorten auto-hiberate idle timer
    - May fix kernel panic when modem crash sometimes

    R12.1
    - Fix random crash & reboot ( mostly happends on 8T )

    R12
    - Merge Linux 4.19.183
    - Merge CAF "LA.UM.9.12.r1-11000-SMxx50.0"
    - Update lots of codes from oneplus oss
    - Enable UFS HPB feature
    - Add support for custom ROMs

    R11.2
    - Merge Linux 4.19.180 181 182
    - Add haptic level adjustment
    - Add back 1.2GHz for big cluster
    - Move to rewritten ashmem driver by sultan

    R11.1
    - Merge CAF "LA.UM.9.12.r1-10800-SMxx50.0"
    - Merge Linux 4.19.179
    - Fix SurfaceFlinger spams errors in logcat

    R11
    - Merge CAF "LA.UM.9.12.r1-10700-SMxx50.0"
    ( Including kernel, wlan and audio, video techpacks )
    - Merge Linux 4.19.178
    - Upstream lz4 zram algorithm
    - Hardcode swappiness to 160 for more aggressive zram strategy
    - Enable 4GB ZRAM
    - Add back 691mhz for small cluster
    - Prevent EAS from affecting cpuidle
    - Apply some more optimization patches

    R10.5
    - Merge Linux 4.19.177
    - Remove cpu cooling & devfreq cooling drivers
    ( Fix big cluster being limit at min freq sometimes when playing genshin impact )
    - Improve deep sleep time under mobile data
    - Apply some more optimization patches

    R10.4
    - Merge Linux 4.19.176
    - Update kernel devicetree to "LA.UM.9.12.r1-10000-SMxx50.0"
    - Add back lowest frequencies for big & prime cluster
    - Fix broken energy model due to inappropriate optimizations

    R10.3
    - Merge Linux 4.19.175
    - Update display panel commands from qssi-user-11-RP1A.201005.001-2102011801-release-keys

    R10.2
    - Fix cyberpunk theme
    - Fix cloud service on hydrogen os

    R10.1
    - Merge Linux 4.19.174
    - Cleanup and optimize defconfig
    - Simplify dtbo building
    - Reduce zip size ~ 30%

    R10
    - Merge CAF "LA.UM.9.12.r1-10300-SMxx50.0"
    ( Including kernel, wlan and audio, display techpacks )
    - Cleanup unused debug codes in wlan drivers
    - Don't allow userspace trigger process reclaim
    - Remove cpuidle sleep_disable usage in haptic drivers, and remove sleep_disable node from userspace.

    R9.3
    - Merge Linux 4.19.173
    - Ship builds with zips

    R9.2.1
    - Fix blurred screen and crashes on some Oneplus 8P when playing videos with MEMC on.
    - Oneplus 8 Pro Only

    R9.2
    - Merge Linux 4.19.172
    - Fix ufs workqueue overheads
    - Optimize memcpy, memmove, memcmp, crc32, checksum, xor libraries
    - Affine unbound workqueues to little CPUs by default
    - Make the devfreq monitor workqueue high priority
    - Add automatic memory compaction mechanism
    - More I forgot
    - Theres no change in dtbo compared to R9.1, so no need to update

    R9.1
    - Merge Linux 4.19.168 169 170 171
    - Move to simplified frequency table
    - Fix wifi not working on new Chinese version of Oneplus 8T
    - Don't limit CPU frequency when gaming
    - Optimize GPU scheduling under high refresh rate
    - Theres no change in dtbo compared to R9, so no need to update

    R9
    - Merge CAF "LA.UM.9.12.r1-10000-SMxx50.0"
    ( Including kernel, wlan and audio, video, display techpacks )
    - Merge Linux 4.19.166
    - Merge Linux 4.19.167
    - Add support for checking cpu voltage via kernel logs
    - Theres no change in dtbo compared to R8.4, so no need to update

    R8.4
    - Merge Linux 4.19.165
    - Disable ZRAM & SWAP
    - Theres no change in dtbo compared to R8.3, so no need to update

    R8.3
    - Merge Linux 4.19.164
    - Theres no change in dtbo compared to R8.2, so no need to update

    R8.2
    - Don't force run display & touchscreen irqs and threads on big cluster to save power
    - Remove max boost for little cluster on switching apps to save power
    - Introduce dynamic cpuset for display group, migrating tasks to big cluster on switching apps to improve smoothness
    - Fix lags when little cluster is under heavy load
    - Relax touchscreen cpu latency requirement to save power
    - Relax UFS cpu latency requirement to save power
    - Align CPU latency requirements with kona C-States
    - Remove iowait boost from schedhorizon
    - Don't force 4k buffer allocations for ION
    - Update Magisk in the image to v21.2
    - Fix force 240hz fails after exiting a game
    - Theres no change in dtbo compared to R8.1, so no need to update

    R8.1
    - Merge CAF "LA.UM.9.12.r1-09500-SMxx50.0"
    ( Including kernel, wlan and audio, video, display techpacks )
    - Build oneplus param read/write drivers, cyberpunk theme should work now
    - Optimize pm_qos usage for touchscreen drivers on OP8 & OP8P
    - Re-enable pm_qos usage for UFS drivers
    - Use 100Hz timer frequency
    - Never allow irq affine on more than one cpu
    - Optimize pm_qos framework
    - Optimize pm_qos usage for UFS drivers
    - Optimize cpuidle framework
    - Force run important display & touchscreen & lmk irqs and threads on big cluster
    - Cleanup codes in kgsl & display techpack and optimize pm_qos usage
    - Move to rewritten iommu & ion drivers
    - ........... ( Check github for details )
    - Theres no change in dtbo compared to R7.2, so no need to update

    R7.2
    - Merge Linux 4.19.163
    - Theres no change in dtbo compared to R7.1, so no need to update

    R7.1
    - Merge Linux 4.19.162
    - Re-enable lpm idle prediction
    - Move to fq_codel qdisc
    - Enable TCP ECN negotiation by default
    - Don't force enable panel ULPS suspend
    - Theres no change in dtbo compared to R7, so no need to update

    R7
    - Merge CAF "LA.UM.9.12.r1-09300-SMxx50.0"
    ( Including kernel and audio, display techpacks and wlan drivers )
    - Merge Linux 4.19.161
    - Build and enable vDSO32
    - Don't force offline big & prime cluster on screen off ( Fix fp reject and lags on AOD )
    - Move back to mem deep sleep mode
    - Don't force 240Hz touchpanel sample rate on Oneplus 8T & 8Pro ( But you can still enable it by writing 1 to /proc/touchpanel/force_game_switch_enable )
    - Cleanup rx_wakelock codes in wlan drivers
    - Force enable ULPS(Ultra Low Power State) and ULPS suspend for display panel
    - Force allow panel phy power off on idle
    - Re-align gpu idle timeout & input boost duration with display panel ULPS delay
    - Enable Clang ThinLTO optimizations
    - Lower the priority of f2fs gc task
    - Disable expedited RCU grace periods for powersave
    - Remove display ramdump memory region (free 8MB of RAM)
    - Disable cpuidle idle prediction feature for powersave
    - Implement fast refcount checking for arm64
    - Prefetch operands to speed up atomic operations
    - More I forgot
    - Theres no change in dtbo compared to R6.4, so no need to update

    R6.4
    - Merge linux 4.19.160
    - Theres no change in dtbo compared to R6.3, so no need to update

    R6.3
    - Merge linux 4.19.159
    - Theres no change in dtbo compared to R6.2, so no need to update

    R6.2
    - Merge linux 4.19.158
    - Move to s2idle deep sleep mode
    - Apply some touchscreen drivers' simplifying and optimizations
    - Theres no change in dtbo compared to R6.1, so no need to update

    R6.1
    - Update Proton Clang version

    dtbo image has been updated:
    - Fix random kernel panic caused by freeing too much reserved memory

    R6
    - Merge Linux 4.19.157
    - Merge CAF “LA.UM.9.12.r1-09000-SMxx50.0”
    ( Include kernel, wlan and audio, video, display techpacks )
    - Update wireguard to v1.0.20201112
    - Merge Simple Lmk update
    - Force 240Hz touchpanel sample rate for Oneplus 8 Pro & Oneplus 8T
    - Touchpanel sample rate will no longer drop after switching to 60Hz screen refresh rate on Oneplus 8T & Oneplus 8Pro
    - Update magisk to v21.1

    dtbo image has been updated:
    - Remove unused reserved memory regions (~12MB)

    R5.5
    - Merge Linux 4.19.156
    - Move to Simple Lmk as lowmemorykiller
    - Disable userspace lmkd
    - Enable userspace CNTVCT_EL0 access for vDSO to accelerate request
    - Theres no change in dtbo compared to R5.4, so no need to update.

    R5.4
    - Merge Linux 4.19.155
    - Theres no change in dtbo compared to R5.3, so no need to update.

    R5.3
    - Fix cpu cores oscillationally on/off on aod fingerprint pressing
    - Fix logic of screen on/off detection
    - Improve speed of aod fingerprint
    - Theres no change in dtbo compared to R5.2, so no need to update.

    R5.2
    - Optimize logic of "Optimize fingerprint speed on aod mode"
    - Fix priority of fingerprint hal not changing successfully
    - Optimize smoothness when entering recent apps
    - Optimize smoothness when switching between apps
    - Optimize app launching speed
    - Theres no change in dtbo compared to R5.1, so no need to update.

    R5.1
    - Optimize fingerprint speed on aod mode
    - Theres no change in dtbo compared to R5, so no need to update.

    R5
    - Merge Linux 4.19.154
    - Fix camera on Oneplus 8T
    - Speed up mremap by 20x on large regions
    - Disable Privileged Access Never emulation, speed up syscalls 2x
    - Theres no change in dtbo compared to R4, so no need to update.

    R4
    - Merge Linux 4.19.153
    - Merge CAF "LA.UM.9.12.r1-08900-SMxx50.0"
    ( Including kernel and wifi drivers, audio, video, display techpacks )
    - Update boot image base to OOS OB3 for OP8 & OP8P
    - Camera on 8T havent been fixed on this build
    - Theres no change in dtbo compared to R3, so no need to update.

    R3
    - Merge oneplus oss update
    - Add support for Oneplus 8T
    - Enable 1.2GHz input boost for big cluster
    - Remove schedhorizon governor 1.6GHz(prime) 1.2GHz(big) efficient_freq
    - Allow foreground apps migrate to big cluster on touch
    - Relax boost duration on no input to 3s

    UI Bench Result
    - Jitter: ~0.3ms -> ~0.2ms
    - Total duration: ~4ms -> ~3ms

    - Dtbo image has been updated, reflashing is recommended

    R2
    - Merge Linux 4.19.152
    - Merge CAF "LA.UM.9.12.r1-08600-SMxx50.0"
    - Update wifi drivers to "LA.UM.9.12.r1-08600-SMxx50.0"
    - Update display & video techpacks to "LA.UM.9.12.r1-08600-SMxx50.0"
    - Theres no change in dtbo compared to R1.1, so no need to update.

    R1.1
    - Merge Linux 4.19.151
    - Theres no change in dtbo compared to R1, so no need to update.

    R1
    - Stable release is here
    ( Coz no one reports bug to me lol )
    - Merge Linux 4.19.150
    - Enable ntfs & exfat drivers
    - Theres no change on dtbo image compared to B2, so no need to update

    B2
    - Merge Linux 4.19.149
    - Update audio & video & display techpacks to CAF "LA.UM.9.12.r1-08300-SMxx50.0"
    - Add Klapse support
    ( Now you can turn brightness )
    - Disable unused arm64 errata
    - Disable wireless charging drivers for oneplus8
    - Disbale iris drivers for oneplus8
    - Start building dtbo image, flash it as you want.
    ( It could provide node /proc/touchpanel/glove_mode_enable for glove mode, you can write 1 to enable it )

    B1
    - Initial bring up
    3
    Download legacy builds (Before R9.3)
    https://dl.akr-developers.com/?dir=oneplus/horizon_kernel/R/images

    As we don't have a perfect TWRP for OOS 11 for now, I only provide boot images.
    op8=Oneplus 8 boot image
    op8p=Oneplus 8 Pro boot image
    dtbo=dtbo partition image
    Bx=Beta X

    Flashing dtbo is optional but recommended
    Note: Video frame insertion may be broken if you don't flash dtbo on Oneplus 8 Pro
    ( Report from a H2OS user )
    Also it could provide node /proc/touchpanel/glove_mode_enable for glove mode, you can write 1 to enable it

    Flash the images via fastboot
    fastboot flash boot xxx
    fastboot flash dtbo xxx
    Google for it if you don't know that

    Those boot images are tested on OOS OB3 & H2OS OB4.
    3
    you have an incredibly clean, and well-optimized kernel. and it isnt barebones. incredible, sir. incredible. fantastic work. thank you for this. keep it up.
    2
    Works in Android 11 full stable (uploaded in Franco Menager).

    However, I believe that the GPU clock speed could be higher than 670 MHz. Relax, these 750 MHz would be fully stable. And even 800 MHz. Maybe the author will consider adding Adreno clocks higher than 670 MHz to the current state of the kernel? e.g. 670, 700, 750 and 800 MHz. Although there is a kernel where you can set 900 MHz on the GPU (SmurfKernel 1.1.0) but here it is not guaranteed 100% stability.

    OnePlus 8 12/256 Antutu 8.5.2 scored:
    You can overclock it yourself with this tool