Releases: tytydraco/android_kernel_oneplus_sm8150
Releases · tytydraco/android_kernel_oneplus_sm8150
Release #126
- Revert shallow idle state commit (back to deep sleep)
- Process forked child process BEFORE parent process (lower latency on fork)
- Disable WALT task boosting
- Lock dirty background ratio to exactly half of the dirty ratio
- Process read requests on their origin CPU (if idle) for upwards of threefold performance gain in iozone reader and re-reader tests
- Remove arter's old urandom commit
- Route random fops to urandom (refactored version of arter's; no warnings and no poll)
- Fix compiler warnings
- Use a bitmask for rq_affinity (COMP | FORCE | READ)
- Compile DTB separate from Image.gz
- Fix DTS changes not taking effect
- Adreno 640 napping
- CMA size increase
- Do not expedite RCU
- Remove AVB checks
- Disable TESTMODE for netlink
- Internal rebase and cleanup
Release #105
- 250 Hz timer (4 ms)
- Batch multiple times in Anxiety I/O scheduler
- Use exponential frequency selection in schedutil
- Smooth WALT predicted load
- Use shallow idle state (in testing)
- Normal RCU grace periods after boot
- Heavy rebase
- 7T / 7T Pro support added
Beta #80
- Add custom rom support (use the corresponding build)
- Do extended merges (was off before; turns out RedHat says its still viable for flash)
- Disable autogrouping since Android does a better job
- Patch potential future issue with Anxiety I/O scheduler
- Use 300hz timer for lower latencies (3.33... ms jiffy)
- EXPERIMENTAL: Align scheduling periods with our kernel timer
Without Experimental Commit
- Every 3.33ms, the scheduler gets an interrupt
- If 10ms had passed from the previous cycle, check if we should load balance
Result: ~6.67ms of times where the scheduler could have moved tasks around, but didn't
With Experimental Commit
- Every 3.33ms, the scheduler gets an interrupt
- Perform a load balance check
Result: Scheduler can take advantage of new loadavg information and reduce load balancing latency three-fold
Beta #70
- Garbage collect wakelocks
- Reduce number of wakelocks to lock before scanning for idle ones
- Start killing wakelocks right away if the current CPU is idle
- Update Anxiety I/O scheduler
-- Reduce looping
-- Remove redundant checks - Remove high priority flag for thermal ADC
- Use LMKd instead of LMK
- Reduce I/O latency by limiting max requests
Beta #59
- Remove hispeed frequency boosting in schedutil
- Disable RCU expedition
- Remove high priority flags from thermal and dwc3 drivers
- Disable readahead (proven 70% improvement in perf / power)
- Update WiFi to latest CAF
- Halve SCHED_RR (round robin) timeslices
Beta #47
- Disable msm_performance and core_ctl
- Activate schedutil's hispeed frequency at 80% usage instead of 90% (lower direct input latency)
- Process I/O on the origin CPU to score a cache hit
- Set readahead to 128KiB instead of 512KiB (flash memory suffers higher latency with higher readahead)
- Check dirty writebacks every 1MiB rather than every 128 KiB (less jitter and keep cache valid longer)
- Reduce cache pressure to 50% (our RAM size can handle it)
- Load balance less tasks per scheduling cycle (lower latency)
- Compile DTBO in the kernel
- Remove iowait boosting from schedutil
CUSTOM ROMS ARE FIXED
Huge thanks to Podagee and also @Kaz205 for helping me test the builds.
Beta #30
- Removed some commits that could be problematic
- Preserve magisk on install
- Pair a companion module to disable OnePlus brain service on Stock ROM. This fixes the CPU frequency issues.
Why?
The max frequency issue is a result of disabling the Houston kernel driver that is part of OnePlus. I had the option of either sucking it up and keeping the OnePlus bloat, or I could kill the service in userspace. I opted for the latter.
The kernel will now add a magisk module to the device. To use this module, Magisk must be installed prior to the kernel installation.
Beta #23
- Remove AVB checks
- Disable SECCOMP (faster syscalls)
- Disable Audit (expensive in Android)
- Use non-blocking random pool
- Target small cluster in Makefile
- Disable usb_ban and rmnet logging
- 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)
- Do not attempt extended merge requests since they are CPU heavy
- Make input boosting consistent instead of flickering
- Disable ESD check for panels
- 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)
- TCP Fastopen (lower net latency) (kdrag0n)
- Disable binder logging
- Do not print UFS debug information
- Force block requests to execute on their origin cpu (better cache locality)
- Increase haptic strength
- Allow GPU to sleep / nap
- Allow TCP connections to be reused
- Do not compile zRAM (unnecessary for this kernels MM settings)
- Do not compile OnePlus-specific features (memplus, smartboost, etc.) (interferes with kernel)
- Do not perform readahead unless we exceed a read of 64 KiB (do not waste time on trivial reads)
- Configure CFS to allow equal thread timeslices for ten threads at once (in testing)
- Overcommit memory for faster Android start times (allow LMKd to clean up the mess)
- Remove a bunch of debug and tracing that is unnecessary for the kernel
- More that I forgot