[G3 Android Development] Stayn:
Changelog!

Artx Kernel:

* 6.0
- Based on LineageOS Oreo
- Fixed all perfomance related issues
- Cleaned source
- Replaced Thermal control with Simple Thermal Driver
- Fixed Fastcharge
- Added Voltage Control
- Added Custom Kernel Adiutor Solution with FastCharge Controls

* Also available for Nougat *

v5.0
- Added MSM_Limiter
- Gentle fair sleepers and Arch power added
- Overload of Governors!
- Added Artx Governor
- Lots of optimizations
- Battery optimizations

v4.0
- Reverted some v3.0 changes
- Disabled a lot of useless Debug options
- General optimizations

v3.1
- Fixed huge battery drain
- Removed fastcharge till the next release

v3.0
- Added MSM, Alucard, Bricked, Intelli and AutpSMP Hotplugs
- Backlight min and max tweaked
- 27Mhz GPU
- Boosted GPU Freq a bit
- Frandom support
- Simplified thermal driver
- Upstramed kernel 3.10.y patches to cpufreq
- fsync changes
- 3x faster integer sqrt
- other optimizations for battery life and perfomance

v2.1
- Fixed random freezes (Updated RAM Management)
- Stability fixes
- Spectrum Support + App is now optional

v2.0
- Add State notifier
- Added Schedulers: Tripndroid, Fiops, Sio, VR, Maple, Zen, Fifo
- Added Simple GPU Algorithm + Adreno Idler
- Added Powersuspend
- Fastcharge Support
- Per-Core CPU Boost
- Hotplug Boost

v1.0
- Initial Stable release

G3X Ultimate Kernel R.I.P.

v1.0
- Initial stable release

Kernel goals:

- Re add all governors, schedulers and TPC algorithms!

- Add intellithermal

- Add Per-CPU Boost, hotplug boost and wakeup boost

- FastCharge

- MSM_Limiter

- Look again into Voltage control feature and try to re-add it!

- Adreno Idler and Simple GPU Algorithm

- All the hotplugs

- State Notifier

- Frandom

- Brightness control

- And a lot of optimizations!

Features Guide:

CPU:

- Governors: Read this

- CPU Booost: Boost your CPU Frequency on screen touch event, my kernel has per-core touch boost frequency so you can configure how many CPU's will be boosted at your preferred frequency.

- Hotplug Boost: When a Core is plugged, it gets boosted a little

Thermal:

- Core control: Enable and disable throttling, this enables the thermal engine and enable VDD restriction and core throttle. Be careful with this because an excesive overheat can reduce the device life time (and battery)

- VDD Restriction: Limits CPU voltage, limiting it will decrease temperature

- Core Throttle: Throttles CPU when enabled, this decrease CPU frequency to a lower step when it reaches a specified temperature

GPU:

- Gaming mode: The GPU will be always at maximun avalible frequency (Not always at 578Mhz because thermal engine can throttle the frequency)

- Simple GPU Algorithm: Like the name say, is a simple GPU Governor that works like simple_ondemand, I recommend more Adreno Idler

- Adreno Idler: Please read this

Don't enable Simple GPU and Adreno Idler together, this can result in a bad GPU Managament and it can generates overheat, also, those two algorithms only works on the "msm-adreno-tz" GPU governor

Screen:

- You should know how to config it at your liking

Sound:

- My kernel uses Faux123 sound control, you can set independent headphone gain that's a kernel level sound gain, so, this will not distortion your audio until you put a very high value.

Battery:

- Fastcharge: Forces Fast charging (This can reduce your battery life)

- Arch Power: Enable or disable some Arch especific power funcions for battery saving

- PowerSuspend Mode: I didn't found information about this but I know that the best option is "Hybrid"

- State Notifier: This driver notifies screen events (when you touch it). It works with Maple scheduler (You need to enable this if you're going to use Maple) and other kernel things.

- Krait C-States: Power saving settings, I recommend to disable only "C1 (Retention)" because if can cause screen flickering and slow the phone wakeup.

I/O Scheduler:

- Scheduler: Read this

- Read-ahead: The Re-ahead value on the phone memory, because the device memory is very fast, it should be at 128kB, for SDCards that are a lot more slow a good value is 1024kB or 2048kB

- Rotational storage: Treat device as rotational storage, like HDD Hard drivers, just leave it disabled, we don't need it

- Add Random: In some cases, the overhead of I/O events contributing to the entropy pool for /dev/random is measurable. In such cases, it may be desirable to set this value to 0

- I/O Stats: Like the name says, it maintains I/O statistics, if you disable it, memory monitoring apps will not work. (I don't need this so I disabled it)

- RQ Affinity: Try to have scheduler request complete on the CPU core they were made from. This can be a power saving feature

Kernel Samepage Merging:

Don't touch this if you don't know what you're doing

Low Memory Killer:

- Adaptive Low Memory Killer: Keep this feature enabled because it'll save you from random freezes (It makes Low Memory Killer aggresive dynamically when a thrashing scenario is detected)

- Low Memory Killer profile: "Agressive" is recommended, if you think that it'll close all your apps you're wrong, we've 3GB of RAM and these are the settings:

* Foreground Applications: 4MB

* Visible Applications: 8MB

* Secondary Server: 16MB

* Hidden Applications: 32MB

* Content Providers: 48MB

* Empty Applications: 64MB

Virtual Memory:

Every detail about this settings are well explained in Kernel Adiutor, but in general there's no need to touch this

Misc:

- Android logging: Disabling this can improve your phone a bit (It's not noticeable)

- Software CRC Control: Is a driver that prevents data corruptions but data blocks can lose up to 30% of perfomance, you can safely turn it off

- FSync: The kernel provides system calls for syncing single files and filesystems which flush the corresponding file buffers to storage. Disabling FSync reduces the number of I/O Opetaions which can improve the responsiveness of the device and reduce battery drain. However, disabling it increases the risk of data loss on a crash/freeze.

If your ROM with my kernel is very stable, you can safely turn off FSync and if you're on f2fs filesystem NEVER turn it off because you gonna have to format EVERYTHING if the data gets corrupt by a crash/freeze

You can always recover your phone in case of data corrupt if you're on ext4 filesystem with TWRP, in wiping section -> select which partitions to wipe -> select one and press on partition settings or more settings.

This is all for now! I'll explain each new feature that I introduce in my kernel here, thanks for reading and I happy twaking!

Spectrum Guide:

Spectrum Kernel Manager!! Thanks to [MENTION=5051294]frap129[/MENTION]!!

This amazing app let you select between 4 profiles, Battery, Balanced, Perfomance and Gaming,

all of these configured by me:

Battery: I've set various battery savings configs here, it's designed for the best battery savings and if you don't care about UI lags then this is for you

Balanced: As its name says, a very good balanced profile that evit UI Lags and the battery keeps still awesome, you can use this profile to run games without getting your phone overheating

Perfomance: This is not a pure Perfomance profile like others that simply puts your governor in "Perfomance" and things like that, this profile keeps all the UI Smoothness anytime and it doesn't drains the battery, if you're very UI Lag sensitive then this is your profile. Recommended

Gaming: Pure perfomance, play any game with this profile at maximum power, this profile keeps the FPS constants with blu_active governor, if you don't care about battery life or overheating and just want to play games then this is for you

Also, All this profiles are customizable, look at your internal storage ~/Spectrum/profiles/ folder, there's 4 files for each profile. If you don't wanna mess with all the kernel features then I highly recommend to you Spectrum!