I just wanted to start off with the goal of my kernel. Draco Kernel isn't a feature-rich kernel, nor is it a performance-bias or power-bias kernel. Draco Kernel includes a collection of innovative commits (no backports or upstreams), designed to improve the efficiency of the device. Ideally, I will keep Draco Kernel up-to-date with the OnePlus official source code. The WiFi drivers will be imported from the latest 7.1-r1 CAF tag.
The reason I don't upstream is simply because I do not wish to risk instability in the kernel. Most people use their OnePlus as their daily driver, and I wouldn't want any potential panics or data loss due to a bad upstream. I'll leave the upstreaming to CAF and OnePlus, as they have the means for a more in-depth testing method.
- Minimal debugging and tracing - No messy upstreams / backports that might cause issues down the line - Latency focused - Anxiety I/O scheduler - Scheduler tweaks and hacks - CPU governor adjustments - ZERO in-kernel boosting while maintaining a smooth userspace
This is just from the first official beta, so this list may change in the future.
- Remove AVB checks - Disable SECCOMP (faster syscalls) - Disable Audit (expensive in Android) - Use non-blocking random pool - Target small cluster in Makefile - Disable IRQ debugging - Don't use high-priority workqueue for usb policy_engine - Disable profiling (kdrag0n) - Anxiety I/O scheduler (sync read priority) - Schedule last-woken task for better cache locality - Reduce cache pressure to keep cache valid for longer - Increase vmstat interval to reduce intermittent jitter - Adjust dirty ratios to writeback dirty pages later rather than sooner - Do not collect I/O stats from block subsystem - Don't dump oom_killed tasks - Do not use UFS for randomness - Disable ASLR fully by default (performance not benchmarked) - Disable JTAG debugging by default - Inform kcompact of fragmentation moreso than full RAM usage - Do not compile HIGHMEM (unused by our system) - Awaken kswapd at 1% (80mb free left) instead of 0.1% (8mb free left) - Do not compile watchdog (reduces jitter) - BFP JIT (better networking performance) - Force block requests to execute on their origin cpu (better cache locality) - Increase haptic strength - Allow GPU to sleep / nap - Do not compile zRAM (unnecessary for this kernels MM settings) - Do not perform readahead (proven to improve power and performance by 70%) - Align scheduler timeslices with jiffies - Overcommit memory for faster Android start times - Remove a bunch of debug and tracing that is unnecessary for the kernel - Remove schedutil hispeed boosting - Remove iowait boosting (saves a large amount of battery) - Do not expedite RCU - Halve round-robin timeslices - Expedite wakelock garbage collection - Lower I/O request limit for lower latency - More that I forgot
I will be releasing kernel versions on both GitHub Releases and on Telegram in the official group.
GitHub (no sign in): https://github.com/tytydraco/kernel_...amole/releases
Telegram (group): https://t.me/dracokernel
Source code: https://github.com/tytydraco/kernel_oneplus_guacamole
I am currently seventeen years old, and I am heading to college in the fall. If you appreciate my work and would like to give something back to me, I accept donations via PayPal
I love user feedback; it helps me improve my work for the better.
For kernel feedback or issues, please send a message in the official telegram chat for Draco Kernel: https://t.me/dracokernel.
For personal questions or if you are in need of an urgent response, you can contact me directly on telegram @tytydraco.
For anything else, please email me at [email protected] and we can chat!
- Toolchain: Clang r365631c (subject to updates)
- Toolchain (companion): GCC 4.9
- Main branch: Android-10.0
Please enjoy my kernel, and join us on the telegram channel!