[G3 Android Development] Stayn:
This is also posted under the main thread!

For those who wants to know more about Artx, There is...

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 slower 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!