Skip to content

Releases: tytydraco/android_kernel_oneplus_sm8150

Release #126

20 Feb 07:38
Compare
Choose a tag to compare
  • 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

16 Feb 09:29
Compare
Choose a tag to compare
  • 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

13 Feb 05:57
Compare
Choose a tag to compare
Beta #80 Pre-release
Pre-release
  • 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

10 Feb 05:31
Compare
Choose a tag to compare
Beta #70 Pre-release
Pre-release
  • 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

06 Feb 03:19
Compare
Choose a tag to compare
Beta #59 Pre-release
Pre-release
  • 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

04 Feb 06:15
Compare
Choose a tag to compare
Beta #47 Pre-release
Pre-release
  • 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

02 Feb 23:53
Compare
Choose a tag to compare
Beta #30 Pre-release
Pre-release
  • 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

02 Feb 07:37
Compare
Choose a tag to compare
Beta #23 Pre-release
Pre-release
  • 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