[KERNEL][AOSP/CM][mm6.0/N7.X] Arsenic Kernel-R46 (06/05/2017)

Search This thread

CheckYourScreen

Senior Member
Sep 19, 2012
978
3,035
Delhi
Hi Folks!
Here i present you Arsenic Kernel. Based on close to AOSP - Slim Kernel, Thanks to @Martinusbe for a perfect and stable base.
Started this project for unofficial builds of ROMS with keeping performance in mind without compromising on battery backup. It was supposed to be included in my personal builds of roms but some users requested to release it for other roms so here it is with anykernel method.
zip doesnt offer any module changes and doesnt mess with the ramdisk so you can feel free to dirty flash it over prebuilt kernel or Arsenic's previous versions(Dont forget to clear data of kernel adiutor or anyother kernel control app you're using before).
Keeping op short and simple and with keeping New users in mind, here is a brief description about kernel:


Features:
  • Supports all AOSP/CM based roms except OOS and OldDroid's AOSP.
  • Supports Sultanized roms.
  • Supports Both Android 6.0.x and 7.x.x
  • Built with Latest GCC 4.9 toolchain from Google.
  • Device and target flags enhancements and improvements, etc.
  • Kernel compressed with XZ.
  • Upstream CAF fixes and changes.
  • USB Fast Charge.
  • Switched to -O2 Optimization level.
  • Adreno idler.
  • Krait C-states customizations.
  • ExFat and F2FS support.
  • Disabled Lots of useless Debuggings and Redundant Code.
  • New Governors and I/O Schedulers.
  • Optimized sfck compression.
  • Various Upstream backports.
  • SOC Driver Tuneables.
  • Enabled Arch Power.
  • Optimized RWSEM Algorithm.
  • FiiO USB DAC driver for better input detection
  • Options to disable various wakelocks.(Use them wisely!)
  • TCP Congestion algos (like westwood,cubic etc).
  • CPU Input Boost.
  • Voltage Control.
  • Various under the hood Battery and performance improvement patches(Advance users can look at my git, each commit is there with proper explaination).
  • Stability and Battery backup at its Peak!
  • Available Govs: conservative, impulse, interactive, ondemand, performance, powersave, smartmax, userspace, wheatley, yankactive, zzmoove.
  • Available I/O Scheds: row, bfq, fiops, noop, cfq, ZEN and Tripndroid.
  • Keep an eye on the changelog for more/newly add features as this list wont be updated regularly so either have a look on Changelog or just flash Arsenic and explore yourself..! ;)

FROM R24, ONLY NEW MM BOOTLOADER WILL BE SUPPORTED!
MAKE SURE YOU ARE RUNNING A ROM WITH NEW MM BOOTLOADER FOR R24+

if you are still running roms with old bootloader then flash R23..!
Follow THIS GUIDE to Upgrade Bootloader for future support.

From R46, Builds are divided according to the gesture implementation of the ROM. READ THIS before downloading/flashing the builds!

Download links: https://www.arsenic-kernel.download
Mirror (AFH) : https://www.androidfilehost.com/?w=files&flid=82234
(Flash correct build depending on the ROM you are using)

For OOS Compatible Build : Head over to THIS THREAD

Keep in mind:
You can dirty flash it over prebuilt kernel of your rom or any previous version of Arsenic but its always prefered to flash stock kernel or dirty flash your rom if you are already running a custom kernel to avoid any conflicts or problems.

Compatible with both AOSP(Except OldDroid's AOSP) and CM Roms BASED ON Android 6.0 and 7.X

Bugs and issues:
Report if you find any.

Special Thanks and Credits to (in NO specific order):
@Krustak
@Martinusbe
@hurtsky
@Joshwin Aranha
@sultanxda
@eng.stk
@Lord Boeffla
@franciscofranco
@ZaneZam
@Exodusche
@nikowfreak

XDA:DevDB Information
[AOSP/CM] Arsenic Kernel , Kernel for the OnePlus X

Contributors
Nitzz
Source Code: https://github.com/CheckYourScreen/Arsenic.Kernel

Kernel Special Features: Battery backup (at its best) | Performance (30-40% more than aosp/stock kernel "atleast") | Stability - (what else do you expect from a kernel...?)

Version Information
Status: Stable
Current Stable Version: R31
Stable Release Date: 2016-07-20

Created 2016-07-19
Last Updated 2017-05-07
 

CheckYourScreen

Senior Member
Sep 19, 2012
978
3,035
Delhi
Changelogs:

R46 (06/05/2017) - (Separate build for lineage available from this release)
  • Merged Security Patches (ranging from 2014-2017)
  • REDUCED BOOT TIME DRASTICALLY!!! (Boots hell lot faster than any old builds)
  • Disabled Kernel Panic - Device will simply reboot instead of throwing White LED of Death.
  • Fixed VPN / L2TP kernel panic issue
  • Reduced Load Avg.
  • Merged/Updated Wlan prima driver upto latest patches from CAF
  • Fixed and Switched to Non Debug build of Wlan driver
  • Reduced PowerHAL related Log Spam
  • Disabled Entropy contributions for non rotational devices
  • optimized input count calculations
  • Reduced kernel and zip size.
  • Reduced kmsg and demsg log spam
  • Increase the buffer-head per-CPU LRU size
  • Removed CC wrapper
  • Replaced EXT2 and EXT3 drivers with EXT4 in kernel to reduce size without funtionality loss
  • Stipped debugging leftovers from modules
  • Compiling Sensitive modules with -Os
  • Fixed Audio Leak Issues (Infamous Porn bug from OP3 forum)
  • Removed rejected files
  • Updated Busybox
  • Optimized deadline io sched.
  • disabled kernel audit logs
  • Fixed various Null Pointer Dereferences
  • Fixed null pointer dereference in Fast Charging Driver
  • Reduced Network latencies
  • disabled slice idle for BFQ and CFQ
  • Removed kernel panic from bam_dmux
  • Fixed various memory leaks
  • Fixed various spin lock-ups
  • limited rate buffer msgs in camera driver
  • Merged/Updated latest F2FS upstream patches
  • Fixed F2FS default idle interval
  • Enabled Diag support - Network Signal Guru App Support
  • Nuked unwanted driver modules
  • Enabled NTFS R/W
  • Removed Timer Stats config
  • Reduced thermal related log spam
  • Disabled unwanted SCSI support configs
  • Disabled register dumps
  • USB related fixes
  • Added Nightmare Governor
  • Tuned Impulse Governor
  • Video buffer fixes and improvements
  • Fixed entropy depletion issue - generated entropy faster now
  • /Proc related fd permission fixes
  • MErged/Updated EXT4 Upstream patches
  • Fixed password mount issus on cifs
  • Prevent futex attaching to kernel threads
  • Blocked Netlink wakelock
  • Disabled all wakelocks out of the box
  • updated revision check for newer EMMC
  • Optimized ZEN I/O sched - upstreamed to V2
  • ZEN: set fifo batch to 16 to reduce overload on EMMC and CPU
  • Resolved stack corruption issues
  • Lineage specific separate build - switched to new gesture implementation
  • And more stuff which i dont remember . . . :silly:

R32 (21/12/2016) -
  • Fixed Tethering issues on ROMS with latest CM(trees) changes.
  • Minor Code Cleanup and Fixes

Old releases:

R31 (06/12/2016)-
  • December security patches (partial,left over patches will be merged in next release. Critical ones are merged already)
  • Permissive out of the box. Works on all roms now including DU (didn't hardcoded permissive so can be changed to enforcing via Kernel Adiutor but make sure your rom supports SElinux Enforcing mode-DU doesn't)
  • Nuked non-working GPU Govs from userspace (wont reboot when you select any broken governor)
  • Improved Responsiveness (literally 0 delay/latency while providing input)
  • Fixed lots of code errors/warnings with better indentatioin.
  • Nuked LP11 state of DSI lanes
  • Removed unwanted debuggings
  • Reduced resource utilizations
  • Fixed CVE-2015-8966
  • 20% increase in transactions per second on memory
  • Reject groups/events spanning multiple hardware PMUs
  • No more events which causes soft lockups to prevent device entering into sleep.

R29 (28/11/2016) -
* Optimized square root algorithm.
* Rowhammer vulnerability patch
* Security Patches
* CPU Boost interval improvements
* Fix off by one vulnerabilities
* l2tp: fix oops in l2tp_eth_create() error path
* Staging: android: binder: Allow using highmem for binder buffers
* Add and Enable Modified ElementalX Governor
* Enable DNS Resolver, NFS CIFS
* msm: vidc: add ion_handle checking before mapping buffers.
* Reverted Panic Prevention Measures (for now)-should fix black screen issues for some users who faced it.
* sdcardfs: Flag files as non-mappable
* lowmemorykiller: account for unevictable pages
* Fixed uninitialized variables
* Selinux fixes
* sched/loadavg: Fix loadavg artifacts on fully idle and fully loaded systems
* net: sch_generic: Allow devices to opt-out net watchdog
* msm_rmnet_bam: Actually disable watchdog for msm_rmnet

R26 (13/11/2016) -
* Merged November Patches (i might have missed some, will be included in next release if any)
* Backports of Extra Security Patches
* bam_dmux: increase wakeup timeout
* usb: mtp: increase RX transfer length to 1M (faster mtp transfer rate, yup for real!)
* usb: Avoid spammy warning due to misbehaving Apps
* Allow ignoring system restarts and prevent kernel panic when sub system restart isn't available
* Disable alot of unwanted debuggings
* Enabled L2TP Extensions
* Nuked TV Tuners and their redundant code
* Increased Stability!
* Prevent kernel from going for a panic for any abnormal condition and fill logs instead.
* Prevent kernel panic in case of abnormal ssr being issued by the system for a reboot/shutdown process.
* Decreased Boot Time!

R25 (30/10/2016) -
* Built with Latest GCC4.9 Upstream from Google.
* random: increase read and write entropy levels
* Add and Enable USB Fast Charge
* Add and Enable ZEN and Tripndroid I/O Scheduler
* vfs: Work around NULL pointer dereference in d_path()
* dts: Reduce panel wake/sleep delays
* mdss: move to a kthread for vsync_retire_work_handler (Backport from Pixel)
* kgsl: convert some workqueues to use kthreads (Backport from Pixel)
* drivers: vidc: Enable vidc debugging
* Fix Dirty CoW Vulnerability

R24 (11/10/2016) - ( FROM THIS RELEASE ONLY NEW MM BOOTLOADER WILL BE SUPPORTED!
MAKE SURE YOU ARE RUNNING A ROM WITH NEW MM BOOTLOADER FOR R24+
if you are still running roms with old bootloader then flash R23..! )

* Added support for new mm bootloader and roms.

R23 (10/10/2016) -
* Merged October Security Patches
* Removed alot of redundant code and unused drivers
* Disabled unecessary Debugging(s)
* PM / tracing: remove deprecated power trace API
* config: disable swap
* Update-binary: Remove scanning for deprecated libs
* soc: qcom: bam_dmux: Add and Enable fast-shutdown flag
* cpufreq: impulse: Do not consider min freq change as boost
* mm: set vm_swappiness to 0
* tcp_output: set initial TCP window size to 64K (speed improvement)
* wakeup: add toggle for msm_hsic_host wakelock
* Bluetooth: Remove unused hci_le_ltk_reply()
* Add full compatibility check and left over files for sultanized roms support
* Makefile: remove -g0 flag to decrease boot time.

R18 (17/09/2016) -
*Add support for SULTANIZED ROM's.
*Add support for Android 7.0 based roms.
*Add support for chinese and north american oneplus X
*Merge Driver specific September security patches!
*Add code for removal of deprecated binaries and libs (mm-pp-daemon, deprecated since jellybean known to be cause of heating and batery drain issues)
*Remove Deprecated code from kernel
*Switch to -O2 optimization level.
*GCC only builds from now on, farewell Uber.
Refer to THIS Post plz.

R12 (09/09/2016) -
*UPSTREAM: ppp: take reference on channels netns
*ASoC: check for null function pointer for dummy device read/write
*BACKPORT: Bluetooth: Fix potential NULL dereference in RFCOMM bind ..
*UPSTREAM: net: Fix use after free in the recvmmsg exit path
*UPSTREAM: ppp: defer netns reference release for ppp channel
*UPSTREAM: udp: fix behavior of wrong checksums
*Bump to R11..!
*fs: ext4: disable support for fallocate FALLOC_FL_PUNCH_HOLE
*UPSTREAM: ALSA: control: Fix replacing user controls
*msm: camera: Fix memory read by adding bounds check
*BACKPORT: netfilter: x_tables: validate e->target_offset early
*UPSTREAM: netfilter: x_tables: make sure e->next_offset covers remain�
*BACKPORT: KEYS: potential uninitialized variable
*msm8974-regulator.dtsi: further reduce CPU retention voltage
*Voltage Control: regulator: adjust values for have the full control
*Voltage Control: regulator: set retention-voltage to 600mV
*mmc: core: With great features come great spam
*diag: Reduce error message frequency
*mach-msm: disable smd debug
*audit: disable log spam msgs �
*Implement almighty compiler flags �
*Revert "PM / Wakeup: Use rcu callbacks for better performance" �
*block: disable add_random
*Bump to R9..!
*defconfig: Enable Voltage Control
*Voltage Control: added voltage control for DTS based kernels
*defconfig: Enable exfat support and refractor defconfig
*arm: irq: Tone down kernel logging
*msm: camera: suppress excessive logging - boot faster
*msm: vidc: disable debug logs
*audit: Imma let you finish, but shut up �
*usb: ks_bridge: disable debugging �
*msm: mpm: disable debugging �
*selinux: just shut up �
*msm_rmnet: Kill logspam �
*input: tri-state-key: Fix sometimes not working state switching �
*input: tri-state-key: Fix direct references to HZ �
*fs: updated to exFat support version 1.2.19 �
*fs: Add exFat support version 1.2.9 (kitkat source drop) �
*fs: Add exFat support version 1.2.7 (Samsung OSRC)

R8 (21/08/2016)-
*reverted rtmutex commits to fix heating issues while using heavy apps
*cfq-iosched: fix the setting of IOPS mode on SSDs
*Revert "mm: Add notifier framework for showing memory"
*devfreq: Fix simple_ondemand crashing on startup

R7 (19/08/2016)-
*cpufreq: cpuboost: Fix Unwanted Ramp ups
*msm: vidc: Initialize kernel space stack variables
*sched: Fix memory leakage in build_sched_groups()
*soc: qcom: smd: Fix SMD packet sync loss issue
*gpio: sysfs: fix memory leak in gpiod_sysfs_set_active_low
*gpio: sysfs: fix memory leak in gpiod_export_link
*ARM: DMA: ensure that old section mappings are flushed from the TLB
*dma-contiguous: Re-order the error handling sequence
*rtmutex: Confine deadlock logic to futex
*rtmutex: Simplify rtmutex_slowtrylock()
*locking/rtmutex: Drop usage of __HAVE_ARCH_CMPXCHG
*rtmutex: Plug slow unlock race
*rtmutex: Handle deadlock detection smarter
*rtmutex: Detect changes in the pi lock chain
*rtmutex: Fix deadlock detector for real
*splice: fix racy pipe->buffers uses
*genirq: Prevent proc race against freeing of irq descriptors
*genirq: Sanitize spurious interrupt detection of threaded irqs
*genirq: Remove racy waitqueue_active check
*genirq: Add missing irq_to_desc export for CONFIG_SPARSE_IRQ=n
*irq: Enable all irqs unconditionally in irq_resume
*genirq: Fix can_request_irq() for IRQs without an action
*genirq: Avoid deadlock in spurious handling
*percpu: free percpu allocation info for uniprocessor system
*vfs: fix bad hashing of dentries
*sched/rt: Reduce rq lock contention by eliminating locking
*block: Make CFQ default to IOPS mode on SSDs
*crypto: arm/aes update NEON AES module to latest OpenSSL version
*Enable "tune krait config with cortex-a15""
*Enable pipe flag
*Switch to latest GCC 4.9
*crypto: msm: qcrypto: Fix hash crash if not last issue
*crypto: msm: qcrypto: Fix spinlock deadlock issue
*crypto: msm: remove wakeup lock in qcrypto driver
*crypto: msm: fix qcrypto driver to improve IPSec performance
*crypto: msm: qcrypto: fix crash in _qcrypto_tfm_complet
*cpufreq: interactive:call __cpufreq_driver_target() for cur frequency
*cpufreq: interactive: Exercise hispeed settings at a policy level
*Input: Propagate hardware event timestamp to evdev.
*net: validate the range we feed to iov_iter_init() in sys_sendto/sys_�
*onyx_defconfig: Enable support for FiiO USB DAC
*Don't show empty tag stats for unprivileged uids
*mm, oom: make dump_tasks public
*mm: Add notifier framework for showing memory
*slub: fix incorrect return type of get_any_partial()
*hid: Add driver for FiiO USB DAC
*PM / devfreq: Rewrite devfreq_update_status() to fix multiple bugs
*qcom-cpufreq: Remove use of device_suspended in the hotplug path
*qcom-cpufreq: Fix hotplug blocking logic
*qcom-cpufreq: Block hotplug until cpufreq is ready
*msm: rq_stats: Calculate load based on current freq limit
*ASoC: msm: qdsp6v2: Silence some noise
*prima: Add TDLS config option
*cpufreq: Return directly in __cpufreq_get if policy is NULL
*msm: kgsl: Defer adding the mem entry to a process

R6(10/8/2016)-
*Disable CONFIG_PFT as it is unsupported
*sched: Fix race in idle_balance()
*sched/idle: Avoid spurious wakeup IPIs
*msm: camera: isp: Silence IRQ status log-spam
*sched: Limit setaffinity with CPU_HOTPLUG
*cpufreq: interactive: don't boost cpu if already boosted
*msm: clock: change to arch initcall
*sched: cpu_power: enable ARCH_POWER
*vfp: change to mfloat-abi=hard and mfpu=neon-vfpv4
*cpufreq: Always allow update of user policy
*mm/slub: don't wait for high-order page allocation
*Enable Prima driver( should fix wifi issue on oos(?) , needs testing.)
*USB: fix invalid memory access in hub_activate()
*USB: dwc3: debugfs: Add boundary check in dwc3_store_ep_num()
*msm: perf: Do not allocate new hw_event if event is duplicate.
*platform: msm: Fix compile when CONFIG_PFT is not set
*cpufreq: implement cpufreq_quick_get_util()
*ashmem: fix CVE-2016-5340
*cpufreq: Notify governors when cpus are hot-[un]plugged
*cpufreq: cpuboost: Fix Multiple assignments
*mm/vmscan.c: avoid possible deadlock caused by too_many_isolated()
*mm: vmscan: fix the page state calculation in too_many_isolated
*BACKPORT: perf tools: Document the perf sysctls
*FROMLIST: security,perf: Allow further restriction of perf_event_open
*onyx_defconfig: enable SECURITY_PERF_EVENTS_RESTRICT
*Revert "Enable "tune krait config with cortex-a15""

R4(29/7/2016)-
*cpufreq: Make sure target freq is within limits
*Add and Enable KCAL v2 support.

R3(28/7/2016)-
*cortex a15 optimizations
*Add add sensor_ind wakelock toggle
*ARM: smp: Wait just 1 second for other CPU to halt
*Optimize task_sched_runtime()
*tick: Upstream fixes
*Shift to GCC Toolchain from Linaro (Much smoother and Better Battery backup as compared to linaro builds)

R2(19/7/2016)-
*Touch boost will not exceed configured max cpu freq
*Updated Defconfig.
*Shifted to XZ compression from GZIP (zip size down to 6.7mb from 10mb)
*removed waves effect patch from oem by sultan.
*removed fast idling of cpus when system is partially loaded.
*Enabled TCP congestion modules, westwood set as default.

R1(18/7/16)-
*initial release
 
Last edited:

CheckYourScreen

Senior Member
Sep 19, 2012
978
3,035
Delhi
Suggestions and FAQs

Suggested profile/settings for kernel adiutor:

Recommended Profile:
CPU max freq : 1.7ghz
CPU min freq : 300mhz
Governor : Impulse / Interactive (Impulse is the best gov. whereas Interactive is the Smoothest!)
Fast Charge : Enabled
Multicore Power Saving : Aggressive
Sync Threshold : 729mhz
Input Boost Freq : 652mhz
Thermal : Core Control enabled
Speaker Driver Leakage toggle(in soc driver tuneable): enabled
Krait C-States Settings toggles: enable all
Adreno Idler : Enabled
GPU Gov. : msm-adreno-tz
I/O scheduler : ROW with 512kb read ahead for int. and ZEN with 512kb for external
Wake locks toggles: DISABLE ALL (this will prevent wifi and bluetooth wakelocks if your device is suffering from any-check battery graph if you get wifi on usage even after being turned off) (turn them on if you face any issue, you wont actually :p )
TCP Cong Algo : Westwood


Battery oriented:
CPU max freq: 1.5ghz
CPU min freq: 300mhz
governor: Impulse
Multicore Power Saving: Aggressive
Sync Threshold: 729mhz
Input Boost Freq: 652mhz
Thermal: Core Control Enabled
Speaker Driver Leakage toggle(in soc driver tuneable): enabled
Krait C-States Settings toggles: enable all
Adreno Idler : Enabled
GPU Gov. : msm-adreno-tz
I/O sched: ROW with 512kb read ahead for int. and ROW with 384 kb for external
Wake locks toggles: DISABLE ALL (this will prevent wifi and bluetooth wakelocks if your device is suffering from any-check battery graph if you get wifi on usage even after being turned off) (turn them on if you face any issue, you wont though :p )
TCP Cong Algo- Westwood


Insane Battery Profile:
CPU max freq : 1ghz
CPU min freq : 300mhz
Governor : Impulse
Fast Charge : Enabled
Multicore Power Saving : Aggressive
Sync Threshold : 652mhz
Input Boost Freq : 422mhz
Thermal : Core Control enabled
CPU Voltage : -10 (Global Offset)
Speaker Driver Leakage toggle(in soc driver tuneable): enabled
Krait C-States Settings toggles: enable all
GPU Gov. : msm-adreno-tz
Min. Freq. : 200mhz
Max. Freq. : 330mhz
Adreno Idler : Enabled
I/O sched : FIOPS with 512kb read ahead for int. and ROW with 384 kb for external
Wake locks toggles: DISABLE ALL (this will prevent wifi and bluetooth wakelocks if your device is suffering from any-check battery graph if you get wifi on usage even after being turned off) (turn them on if you face any issue, you wont actually :p )
TCP Cong Algo : Westwood

---------------------------------------
Default profile for zzmoove gov. is set to 0 by default, change it to your desired profile, more info about profiles are HERE.
I prefer ybat (profile_number=2).
:)
---------------------------------------
Since All of these settings are not visible in official Kernel Adiutor, kindly use Kernel Adiutor Mod from HERE :)
 
Last edited:

CheckYourScreen

Senior Member
Sep 19, 2012
978
3,035
Delhi
F.A.Q's :

Can you add [this] and [that] feature to arsenic?
Something I pride myself with this kernel is that it does not have a bunch of random, useless features or patches mashed into it. Everything put into this kernel is thought out well and tested. I see a lot of works being made popular because it has [this] and [that] feature when really, it's nothing revolutionary(atleast to me). As a matter of fact, most things added to any kernel will not make it 5x better than any other kernel. Most of the time, simple is better; and in this case it definitely is!

Any plans of upstreaming the linux version?
No, and i wont. Though i have test builds ready but they wont make up to the release version. Upstreaming linux version doesnt make much difference infact it does degrade Arsenic's performance. Reason why i'm against it is that I've removed almost all possible useless redundant code and debugging present in it to improve kernel in all aspects, upstreaming will not only add alot of redundant code but will also add debugging functions for those redundant code! Which will not only increase kernel's size but will heavily impact on kernel's performance, battery backup and stability. Currently 3.4.0 is "THE" most stable branch and i'd like to keep it.

Why MPDecision? Why not remove the hell outta it?
You want me to remove something which was developed by some of the finest engineers of this world and is currently being shipped on almost all android devices..? Dont you think there would have been a reason why Google chose MPDecision over anyother hotplug.
What most of the users arent aware of is that, MPDecision works best with the default thermal solution, all it needs is a little touch..
As far as adding an additional hotplug, m still thinking about it.

Why so rude?
Not rude, Determined. Everything i do has a reason behind it. And I do sometimes accept feature request if they seems to be worthy. :p
 
Last edited:

CheckYourScreen

Senior Member
Sep 19, 2012
978
3,035
Delhi
Actually proper credits for my version of AnyKernel belong to @Lord Boeffla

---------- Post added at 09:33 PM ---------- Previous post was at 09:29 PM ----------

May I ask why you have disabled a few compilation optimizations? It seems counter intuitive LOL. I could have a look to see why (if) they produce errors when you compile

---------- Post added at 09:33 PM ---------- Previous post was at 09:33 PM ----------

May I ask why you have disabled a few compilation optimizations? It seems counter intuitive LOL. I could have a look to see why (if) they produce errors when you compile

sure, plz reply in pm or ping on telegram if you use it :)
 

CertifiedBlyndGuy

Retired Forum Mod / Inactive Recognized Developer
Jun 11, 2014
1,964
3,007
Denver
OnePlus 9 Pro
Oh and in your profile recommendation, DO NOT use zzmoove with agressive power saving as it has conflicts with its got plug and generally isn't a good thing in general. Oh and for read ahead, use 128 for internal and 1024 for 16gb external, 2048 for 32 and up.

128 won't harm performance at all and should increase stability.
 

CheckYourScreen

Senior Member
Sep 19, 2012
978
3,035
Delhi
Oh and in your profile recommendation, DO NOT use zzmoove with agressive power saving as it has conflicts with its got plug and generally isn't a good thing in general. Oh and for read ahead, use 128 for internal and 1024 for 16gb external, 2048 for 32 and up.

128 won't harm performance at all and should increase stability.

No conflicts so far with Mpdecision so aggressive is a go for me. Read ahead is higher for internal as its much faster than external memory cards, it depends on class/speed of memory card. Since internal is much faster so it can use upto 1024 and for ext 384 is recommended. Do shed a light if m wrong. :)
Most users doesnt use a class 10 ext. Memory card so read ahead for ext shouldnt exceed 384 imo.
 

CertifiedBlyndGuy

Retired Forum Mod / Inactive Recognized Developer
Jun 11, 2014
1,964
3,007
Denver
OnePlus 9 Pro
No conflicts so far with Mpdecision so aggressive is a go for me. Read ahead is higher for internal as its much faster than external memory cards, it depends on class/speed of memory card. Since internal is much faster so it can use upto 1024 and for ext 384 is recommended. Do shed a light if m wrong. :)
Most users doesnt use a class 10 ext. Memory card so read ahead for ext shouldnt exceed 384 imo.
Aggressive power saving isn't referring to mpdecision. It overrides zzmooves hotplug driver. As for read ahead, its actually vice versa. You don't need a higher value for internal storage because as you mentioned, its much faster. For every 8gb of external data the rule of thumb is generally a 512 bump.

Sorry I haven't had time to take a look at TG again...
 

CheckYourScreen

Senior Member
Sep 19, 2012
978
3,035
Delhi
Aggressive power saving isn't referring to mpdecision. It overrides zzmooves hotplug driver. As for read ahead, its actually vice versa. You don't need a higher value for internal storage because as you mentioned, its much faster. For every 8gb of external data the rule of thumb is generally a 512 bump.

Sorry I haven't had time to take a look at TG again...

Zzmoove's hotplug driver..? Shed some more light on it plz cz kernel isnt shipped with an option to change hotplug, mpdecision is working good so far with zzmoove and aggressive power saving mode.
 
  • Like
Reactions: Lokesh Balla

CheckYourScreen

Senior Member
Sep 19, 2012
978
3,035
Delhi
---------- Post added at 09:33 PM ---------- Previous post was at 09:29 PM ----------

[/COLOR]May I ask why you have disabled a few compilation optimizations? It seems counter intuitive LOL. I could have a look to see why (if) they produce errors when you compile

---------- Post added at 09:33 PM ---------- Previous post was at 09:33 PM ----------

May I ask why you have disabled a few compilation optimizations? It seems counter intuitive LOL. I could have a look to see why (if) they produce errors when you compile
Kindly remove this, this might be misleading some New users as pipe isnt supported on linaro 4.9 and i already enabled cortex a15 optz, and no errors in kernel so far :)
Thnx :eek:
 

CertifiedBlyndGuy

Retired Forum Mod / Inactive Recognized Developer
Jun 11, 2014
1,964
3,007
Denver
OnePlus 9 Pro
Zzmoove's hotplug driver..? Shed some more light on it plz cz kernel isnt shipped with an option to change hotplug, mpdecision is working good so far with zzmoove and aggressive power saving mode.
Zzmoove has a hot plug driver. Look under Alpha 0.3:

http://xdaforums.com/galaxy-s3/development/info-cpu-governor-zzmoove-t2326544

Aggressive power savings overrides its ability to manipulate cores, so beforehand you either have to disable it or forget about aggressive power saving to avoid conflicts. Yes, mpdecision is a hot plug, but governors can have their own solutions too. PegasusQ has hot plugging too

---------- Post added at 11:29 AM ---------- Previous post was at 11:25 AM ----------

Kindly remove this, this might be misleading some New users as pipe isnt supported on linaro 4.9 and i already enabled cortex a15 optz, and no errors in kernel so far :)
Thnx :eek:
.... Yeah, sure...
 

CheckYourScreen

Senior Member
Sep 19, 2012
978
3,035
Delhi
Zzmoove has a hot plug driver. Look under Alpha 0.3:

http://xdaforums.com/galaxy-s3/development/info-cpu-governor-zzmoove-t2326544

Aggressive power savings overrides its ability to manipulate cores, so beforehand you either have to disable it or forget about aggressive power saving to avoid conflicts. Yes, mpdecision is a hot plug, but governors can have their own solutions too. PegasusQ has hot plugging too
.


I agree with the hotplug part but as far as i remember i cant see any option to enable zzmoove's hotplug and unless and untill mpdecision is on it wont get activated. For reference you can see boeffla's config app, it has option to change hotplug from default one to zzmoove's but in kernel adiutor its not available and unless you turn off mpdecision(which i dont recommend at all with my kernel) using power saving mode wont affect your device. M using aggressive mode with zzmoove ybat profile with mpdecision enabled and i havent faced any issue! If you dont like using multi core power saving then dont use it, simple as a pie. Its working great for me so m using :)
 

CertifiedBlyndGuy

Retired Forum Mod / Inactive Recognized Developer
Jun 11, 2014
1,964
3,007
Denver
OnePlus 9 Pro
I agree with the hotplug part but as far as i remember i cant see any option to enable zzmoove's hotplug and unless and untill mpdecision is on it wont get activated. For reference you can see boeffla's config app, it has option to change hotplug from default one to zzmoove's but in kernel adiutor its not available and unless you turn off mpdecision(which i dont recommend at all with my kernel) using power saving mode wont affect your device. M using aggressive mode with zzmoove ybat profile with mpdecision enabled and i havent faced any issue! If you dont like using multi core power saving then dont use it, simple as a pie. Its working great for me so m using :)
I simply stated that it would cause conflicts... If a tree falls in the woods and nobody is there to see it then does it still make a sound?
 

Exodusche

Senior Member
Feb 18, 2016
1,672
674
Love the kernel great work. So much optional tuning in kernel adiutor. Comes with many governors to choose from. The suggested settings are well balanced battery, performance and zero lag.
 
Last edited:
  • Like
Reactions: LolHacker17

Jude Aranha

Senior Member
May 15, 2015
774
1,654
Queens, NYC
Well, the Kernel is Solid, no complaints at all. Great work Nimit !
Attached Battery Graph for 2nd cycle.
 

Attachments

  • Screenshot_20160722-163549.png
    Screenshot_20160722-163549.png
    152.6 KB · Views: 644
  • Screenshot_20160722-163557.png
    Screenshot_20160722-163557.png
    119.2 KB · Views: 632
  • Screenshot_20160722-163552.png
    Screenshot_20160722-163552.png
    99.5 KB · Views: 635

CheckYourScreen

Senior Member
Sep 19, 2012
978
3,035
Delhi
Updated to R3..!

Updated to R3 :)
R3(28/7/2016)-
*cortex a15 optimizations
*Add add sensor_ind wakelock toggle
*ARM: smp: Wait just 1 second for other CPU to halt
*Optimize task_sched_runtime()
*tick: Upstream fixes
*Shift to GCC Toolchain from Linaro (Much smoother and Better Battery backup as compared to linaro builds)

Recommended update!
Note: if you face a glitch in kernel adiutor regarding min. freq then plz ignore it as its just a glitch, shows current freq (on which CPU is scaling) for a sec and then will come back to the set one (300 Mhz by default). Freq scaling is normal and kernel works just fine!
 
  • Like
Reactions: Doubleyou

Top Liked Posts

  • There are no posts matching your filters.
  • 78
    Hi Folks!
    Here i present you Arsenic Kernel. Based on close to AOSP - Slim Kernel, Thanks to @Martinusbe for a perfect and stable base.
    Started this project for unofficial builds of ROMS with keeping performance in mind without compromising on battery backup. It was supposed to be included in my personal builds of roms but some users requested to release it for other roms so here it is with anykernel method.
    zip doesnt offer any module changes and doesnt mess with the ramdisk so you can feel free to dirty flash it over prebuilt kernel or Arsenic's previous versions(Dont forget to clear data of kernel adiutor or anyother kernel control app you're using before).
    Keeping op short and simple and with keeping New users in mind, here is a brief description about kernel:


    Features:
    • Supports all AOSP/CM based roms except OOS and OldDroid's AOSP.
    • Supports Sultanized roms.
    • Supports Both Android 6.0.x and 7.x.x
    • Built with Latest GCC 4.9 toolchain from Google.
    • Device and target flags enhancements and improvements, etc.
    • Kernel compressed with XZ.
    • Upstream CAF fixes and changes.
    • USB Fast Charge.
    • Switched to -O2 Optimization level.
    • Adreno idler.
    • Krait C-states customizations.
    • ExFat and F2FS support.
    • Disabled Lots of useless Debuggings and Redundant Code.
    • New Governors and I/O Schedulers.
    • Optimized sfck compression.
    • Various Upstream backports.
    • SOC Driver Tuneables.
    • Enabled Arch Power.
    • Optimized RWSEM Algorithm.
    • FiiO USB DAC driver for better input detection
    • Options to disable various wakelocks.(Use them wisely!)
    • TCP Congestion algos (like westwood,cubic etc).
    • CPU Input Boost.
    • Voltage Control.
    • Various under the hood Battery and performance improvement patches(Advance users can look at my git, each commit is there with proper explaination).
    • Stability and Battery backup at its Peak!
    • Available Govs: conservative, impulse, interactive, ondemand, performance, powersave, smartmax, userspace, wheatley, yankactive, zzmoove.
    • Available I/O Scheds: row, bfq, fiops, noop, cfq, ZEN and Tripndroid.
    • Keep an eye on the changelog for more/newly add features as this list wont be updated regularly so either have a look on Changelog or just flash Arsenic and explore yourself..! ;)

    FROM R24, ONLY NEW MM BOOTLOADER WILL BE SUPPORTED!
    MAKE SURE YOU ARE RUNNING A ROM WITH NEW MM BOOTLOADER FOR R24+

    if you are still running roms with old bootloader then flash R23..!
    Follow THIS GUIDE to Upgrade Bootloader for future support.

    From R46, Builds are divided according to the gesture implementation of the ROM. READ THIS before downloading/flashing the builds!

    Download links: https://www.arsenic-kernel.download
    Mirror (AFH) : https://www.androidfilehost.com/?w=files&flid=82234
    (Flash correct build depending on the ROM you are using)

    For OOS Compatible Build : Head over to THIS THREAD

    Keep in mind:
    You can dirty flash it over prebuilt kernel of your rom or any previous version of Arsenic but its always prefered to flash stock kernel or dirty flash your rom if you are already running a custom kernel to avoid any conflicts or problems.

    Compatible with both AOSP(Except OldDroid's AOSP) and CM Roms BASED ON Android 6.0 and 7.X

    Bugs and issues:
    Report if you find any.

    Special Thanks and Credits to (in NO specific order):
    @Krustak
    @Martinusbe
    @hurtsky
    @Joshwin Aranha
    @sultanxda
    @eng.stk
    @Lord Boeffla
    @franciscofranco
    @ZaneZam
    @Exodusche
    @nikowfreak

    XDA:DevDB Information
    [AOSP/CM] Arsenic Kernel , Kernel for the OnePlus X

    Contributors
    Nitzz
    Source Code: https://github.com/CheckYourScreen/Arsenic.Kernel

    Kernel Special Features: Battery backup (at its best) | Performance (30-40% more than aosp/stock kernel "atleast") | Stability - (what else do you expect from a kernel...?)

    Version Information
    Status: Stable
    Current Stable Version: R31
    Stable Release Date: 2016-07-20

    Created 2016-07-19
    Last Updated 2017-05-07
    32
    Updated to R46..! Finally! xD

    Hi Folks!
    Time to roll out the update you all have been waiting for.. :D
    "The ChangeLONG" can be found here:
    • Merged Security Patches (ranging from 2014-2017)
    • REDUCED BOOT TIME DRASTICALLY!!! (Boots hell lot faster than any old builds)
    • Disabled Kernel Panic - Device will simply reboot instead of throwing White LED of Death.
    • Fixed VPN / L2TP kernel panic issue
    • Reduced Load Avg.
    • Merged/Updated Wlan prima driver upto latest patches from CAF
    • Fixed and Switched to Non Debug build of Wlan driver
    • Reduced PowerHAL related Log Spam
    • Disabled Entropy contributions for non rotational devices
    • optimized input count calculations
    • Reduced kernel and zip size.
    • Reduced kmsg and demsg log spam
    • Increase the buffer-head per-CPU LRU size
    • Removed CC wrapper
    • Replaced EXT2 and EXT3 drivers with EXT4 in kernel to reduce size without funtionality loss
    • Stipped debugging leftovers from modules
    • Compiling Sensitive modules with -Os
    • Fixed Audio Leak Issues (Infamous Porn bug from OP3 forum)
    • Removed rejected files
    • Updated Busybox
    • Optimized deadline io sched.
    • disabled kernel audit logs
    • Fixed various Null Pointer Dereferences
    • Fixed null pointer dereference in Fast Charging Driver
    • Reduced Network latencies
    • disabled slice idle for BFQ and CFQ
    • Removed kernel panic from bam_dmux
    • Fixed various memory leaks
    • Fixed various spin lock-ups
    • limited rate buffer msgs in camera driver
    • Merged/Updated latest F2FS upstream patches
    • Fixed F2FS default idle interval
    • Enabled Diag support - Network Signal Guru App Support
    • Nuked unwanted driver modules
    • Enabled NTFS R/W
    • Removed Timer Stats config
    • Reduced thermal related log spam
    • Disabled unwanted SCSI support configs
    • Disabled register dumps
    • USB related fixes
    • Added Nightmare Governor
    • Tuned Impulse Governor
    • Video buffer fixes and improvements
    • Fixed entropy depletion issue - generated entropy faster now
    • /Proc related fd permission fixes
    • MErged/Updated EXT4 Upstream patches
    • Fixed password mount issus on cifs
    • Prevent futex attaching to kernel threads
    • Blocked Netlink wakelock
    • Disabled all wakelocks out of the box
    • updated revision check for newer EMMC
    • Optimized ZEN I/O sched - upstreamed to V2
    • ZEN: set fifo batch to 16 to reduce overload on EMMC and CPU
    • Resolved stack corruption issues
    • Lineage specific separate build - switched to new gesture implementation
    • And more stuff which i dont remember . . . :silly:

    Since many of you complained regarding Androidfilehost.com and basketbuild.com 's downtime or Ads so got my own hosting, From now on All builds will be hosted on
    Special Thanks to Raab.cz for hosting and my good old friend Richard.

    From this release I'll be releasing 2 separate builds:
    One with AOSP Tag : compatible with all custom roms (which follow old gesture implementation) (like Tesla, Validus etc) except lineageos and lineageos derivatives
    The other one with LINEAGE Tag : compatible with lineageos and its derivatives(which follow lineage's new gesture implementation)
    So make sure you install correct one depending on the rom you are using.
    In case you flash the wrong one and figure out gestures arent working / are broken then feel free to flash the other build as zip doesnt touch anything other than zImage. :)

    Important info: I've been working on a Rebased Arsenic - based on New MM Kernel sources released by Oneplus. Its still W.I.P. right now, needs time which I'm unable to give right now so will work on it after exams.
    If you want to help in tesing it, beta builds of Rebased Kernel can be found here : http://arsenic-kernel.download/rebased/
    Feature list of it is similar to Arsenic for OOS except for disabled swap.
    Most noteable change you can find in rebased one is
    • Faster changing, My testers reported 1560+ charging rate on it.
    • Better battery backup
    • Fixed HDR with Oneplus Camera ON ALL ROMS which are having HDR issue due to source built camera HAL ;)
    Its still in beta/experimental stage so DO expect bugs/issues.

    PS: I wont be available until June 5th due to exams, so if you face any issue - just take a log, post it here on the thread with appropriate description and method to reproduce that issue and tag me in that post.
    PS2: For those users who asked me for a dedicated app/kernel manager which can act as a method of donation, I'm hardly getting time for anything these days so i dont think it will be possible atleast for next 2-3 months. THIS will be the only method available for now.
    PS3: If you face any issue on the latest build (which i dont think you will) , feel free to roll back to old build by simply flashing the zip of R32 over it.
    PS4: Build for Oxygen OS isnt ready yet due to lack of testing so will be out Soon™ :)

    Happy Flashing! ;)
    27
    Just a small Headsup!
    Minimum Freq. Glitch is finally fixed, march patches were out last night so release will be up by tomorrow if everything goes as expected. Internal betas bumped to R45, dropping soon. ;)
    24
    Thank you kernel work very good why wait release new? Problem sry engrish

    I'm a "release if perfect" guy and i really take it seriously.
    Was fixing some issues which appeared in final stages of release.
    Everything is fixed finally, just running some final tests and merging some newly disclosed vulnerability patches.
    Good things come to those who wait ;)
    And i bet you wont regret :)
    23
    Suggestions and FAQs

    Suggested profile/settings for kernel adiutor:

    Recommended Profile:
    CPU max freq : 1.7ghz
    CPU min freq : 300mhz
    Governor : Impulse / Interactive (Impulse is the best gov. whereas Interactive is the Smoothest!)
    Fast Charge : Enabled
    Multicore Power Saving : Aggressive
    Sync Threshold : 729mhz
    Input Boost Freq : 652mhz
    Thermal : Core Control enabled
    Speaker Driver Leakage toggle(in soc driver tuneable): enabled
    Krait C-States Settings toggles: enable all
    Adreno Idler : Enabled
    GPU Gov. : msm-adreno-tz
    I/O scheduler : ROW with 512kb read ahead for int. and ZEN with 512kb for external
    Wake locks toggles: DISABLE ALL (this will prevent wifi and bluetooth wakelocks if your device is suffering from any-check battery graph if you get wifi on usage even after being turned off) (turn them on if you face any issue, you wont actually :p )
    TCP Cong Algo : Westwood


    Battery oriented:
    CPU max freq: 1.5ghz
    CPU min freq: 300mhz
    governor: Impulse
    Multicore Power Saving: Aggressive
    Sync Threshold: 729mhz
    Input Boost Freq: 652mhz
    Thermal: Core Control Enabled
    Speaker Driver Leakage toggle(in soc driver tuneable): enabled
    Krait C-States Settings toggles: enable all
    Adreno Idler : Enabled
    GPU Gov. : msm-adreno-tz
    I/O sched: ROW with 512kb read ahead for int. and ROW with 384 kb for external
    Wake locks toggles: DISABLE ALL (this will prevent wifi and bluetooth wakelocks if your device is suffering from any-check battery graph if you get wifi on usage even after being turned off) (turn them on if you face any issue, you wont though :p )
    TCP Cong Algo- Westwood


    Insane Battery Profile:
    CPU max freq : 1ghz
    CPU min freq : 300mhz
    Governor : Impulse
    Fast Charge : Enabled
    Multicore Power Saving : Aggressive
    Sync Threshold : 652mhz
    Input Boost Freq : 422mhz
    Thermal : Core Control enabled
    CPU Voltage : -10 (Global Offset)
    Speaker Driver Leakage toggle(in soc driver tuneable): enabled
    Krait C-States Settings toggles: enable all
    GPU Gov. : msm-adreno-tz
    Min. Freq. : 200mhz
    Max. Freq. : 330mhz
    Adreno Idler : Enabled
    I/O sched : FIOPS with 512kb read ahead for int. and ROW with 384 kb for external
    Wake locks toggles: DISABLE ALL (this will prevent wifi and bluetooth wakelocks if your device is suffering from any-check battery graph if you get wifi on usage even after being turned off) (turn them on if you face any issue, you wont actually :p )
    TCP Cong Algo : Westwood

    ---------------------------------------
    Default profile for zzmoove gov. is set to 0 by default, change it to your desired profile, more info about profiles are HERE.
    I prefer ybat (profile_number=2).
    :)
    ---------------------------------------
    Since All of these settings are not visible in official Kernel Adiutor, kindly use Kernel Adiutor Mod from HERE :)