Changelog

Changelog

Doesn't matter

V1 & V2:

1. Kernel Base  

  1. Synced selected changes from `4.19.325-cip123` (xx backports).


2. Build & Tool-chain  

  1. Enabled GCC Link-Time Optimization (LTO) and raised the inlining/auto-inline limit to 1,000 instructions, giving the compiler more freedom to merge code across files and shrink the kernel.  

  2. Fixed LTO section-mismatch warnings and vDSO link issues so the build still succeeds.


3. ARM64 / CPU / Idle  

  1. Made the stack-canary symbol visible so the kernel still boots with LTO enabled.  

  2. Disabled PASR by deleting the device-tree mem-offline nodes to prevent unexpected RAM power-downs and slowdowns.  

  3. Switched cpuidle lpm-levels lock from a regular spinlock to a raw spinlock, cutting a few µs off every idle entry/exit.  

  4. Kept the device-tree phandle cache alive after boot for faster DT lookups.


4. IRQ / Power / QoS  

  1. Disabled driver-level IRQ affinity so the sbalance governor stays in control.  

  2. Blocked user-space IRQ migration and applied PM-QoS only to the CPU that services MMC interrupts.


5. Memory / Performance Paths  

  1. Aligned clear-page and clear-user routines to 16 bytes for better cache usage.  

  2. Replaced dynamic allocations in SDE, ALSA, kernfs, SELinux and BPF helpers with small on-stack buffers when safe.  

  3. Off-loaded commit cleanup to an unbound work-queue and removed redundant memory barriers.


6. Display / DRM / SDE  

  1. Skip clearing VBIF error registers and dim layers when not needed → saves a few µs per kickoff.  

  2. Clamp CPU latency to 100 µs during atomic IOCTL, commits, and kick-offs, keeping the big core awake just long enough to finish.  

  3. Fixed swapped DSI panel hooks.  

  4. Offloaded final cleanup to an unbound workqueue so big cores return to idle faster.  

  5. Removed unnecessary snprintf() calls from hot paths.


7. Block / CFQ – “fast-storage” preset  

  1. Switched back to CFQ (from Zen) with tuned fast-storage values:  

   - quantum = 32  

   - back_max = 32 MB  

   - slice_idle = 0 ns  

   - group_idle = 1 ns  

   - max_async_dispatch = 8  

   - back_penalty = 1  

   - rt_idle_only = 0  

   - target_latency = 100 ms  

  2. Defaults to IOPS mode on SSDs, optimized for UFS/NVMe, uses ktime_get_ns() for timing, and has debug logging disabled.  

  3. Applied Samsung-style dispatch tweaks (ported from SM-N986B) for extra UFS responsiveness.


8. cpufreq: schedutil  

  1. Default up/down rate limits set to 500 µs / 1,000 µs for smoother frequency ramps and reduced bouncing.  

  2. Rate-limit sysfs knobs are now read-only to prevent accidental changes.


9. Security / KernelSU / Misc  

  1. Fixed cond_syscall aliases for LTO compatibility.  

  2. Added the missing filter_count atomic field in struct seccomp to fix latest KernelSU builds on non-GKI kernels.  

  3. Removed a duplicate syscall stub to silence compiler warnings.

Report Page