[Nexus 6P Android Development] nathanchance:
Update for N and M!

Alright I have quite a few notes here so I'm going to bullet point them:

This will be the last M kernel (for real this time lol), barring some major bug. Sorry guys but maintaining this many branches is making my brain hurt. I have moved my M code to Ninja-Kernel-Legacy on Github, where it will remain for all eternity. If you want to update it, follow the steps in the second and third posts (or ask me in the thread, I'll always offer compilation advice).

This update includes a new major feature, msm_hotplug, courtesy of [MENTION=2033478]Yank555[/MENTION]. The way this works is when there is not much load on the kernel, it will offline up to five cores (all of the big cluster and one of the little cluster). It is disabled by default but it can be enabled and tweaked with the sys paths or EX Kernel Manager. Here is the explanation of the sys paths from the commit message if you decide to start tweaking (I personally left it stock during testing and that was perfectly fine):

SysFs interface (/sys/module/msm_hotplug) :

msm_enabled : enable/disable hotplugging
(rw, 0/1, defaults to 0)

update_rate : delay between load calculations in ms
(rw, 2-5000, defaults to 200)

load_levels : show/update load levels for little cores
(rw, format "x y z"
x = 1-4 = core
y = 0- (100*x) = up_threshold
z = 0-((100*x)-1) = down_threshold)

min_cpus_online : minimum LITTLE cores to keep up at all times
(rw, 1-4, defaults to 3 for s810)

max_cpus_online : maximum LITTLE cores allowed up at all times when screen on
(rw, 1-4, defaults to 4 for s810)

max_cpus_online_susp : maximum LITTLE cores allowed up at all times when screen off
(rw, 1-4, defaults to 4 for s810)

offline_load : minimal load to elect a LITTLE core for downing
(rw, 0-100, defaults to 0, disabled when 0)

offline_load_big : average load of all big cores to reach to remove a big core
(rw, 0-100, defaults to 20)

online_load_big : average load of all big cores to reach to add an additional big core
(rw, 0-100, defaults to 80)

kick_in_load_big : average load of all little cores to reach to add first big core
(rw, 0-100, defaults to 70)

fast_lane_load : average load of all running little cores to reach to bring up all
big and LITTLE cores
(rw, 0/70-100, defaults to 95, disabled when 0)

big_core_up_delay : delay before brining up big cores in ms
(rw, defaults to 0, disabled when 0)

io_is_busy : consider io as load
(rw, 0/1, defaults to 0)

current_load : show current load (sum of all up cores' load)
(ro)

current_cores : show current core up count
(ro, format "big.LITTLE")

version : show current msm_hotplug version
(ro)

School has started back up for me and I am going to start my first round of midterms here in a couple weeks so updates may slow down a bit. There is not much that needs to be optimized further in my opinion but I am always watching other developers and CAF to see what they throw out and if it helps, I'll add it.

Lastly, it has really warmed my heart to see how much support I have gotten in the past few weeks. Know that I appreciate each and every one of you and I look forward to the journey ahead of us.

Download: v3.4 for N and v1.8 for M

Changelog for N:

Short list:

Added MSM_Hotplug (thank you to [MENTION=2033478]Yank555[/MENTION])

Added back the Maple I/O scheduler (thank you to [MENTION=5051294]frap129[/MENTION])

Long list:

Title: NINJA: v3.4

Author: Nathan Chancellor

Hash: 98bc54c20aae8444cefaae2b47a6e5708ed43a5c

Title: ninja_defconfig: enable IOSCHED_MAPLE

Author: Nathan Chancellor

Hash: 270b0eccb67b252d21f936d226d845c8c9518d50

Title: block: maple: Fix inverted logic

Author: Joe Maples

Hash: 74f4ed1738b62e5f768c96504b77c849d57d2fd0

Title: block: maple: Make bools constant across functions

Author: Joe Maples

Hash: 1be9344fde9afc86492f5efdfaef3d959728e50e

Title: block: maple: Use native display state instead of PowerSuspend

Author: Joe Maples

Hash: 5270b58da11e163573cacb254d204bab2318b8a3

Title: block: maple: Serve asynchronous requests before synchronous ones

Author: Joe Maples

Hash: 0e637babc7a06e21a2e03284e3a5c80ae1289da9

Title: block: maple: Fix some logic, import former/latter request logic from SIO, and use some improved bits of SIO

Author: Joe Maples

Hash: a256287ea3fd6294239dc0872903102f115d8a81

Title: block: maple: Catch writes_starved sooner, increase limit.

Author: Joe Maples

Hash: c3b1a6c8758029cac9a48da0b13608eac7946341

Title: block: maple: Clean up and add patchlevel macro to keep track of commits

Author: Joe Maples

Hash: 4260e91b7d4d49ef2eae8736334c54ceaf2c6472

Title: block: maple: Remove CONFIG_HZ dependency, assume 300 for interrupt frequency

Author: Joe Maples

Hash: cd14df4e795ba9ab080da5d91f634237a7b04909

Title: block: Add Maple I/O Scheduler

Author: Joe Maples

Hash: 4ff53b5162ee8dc967d4bc2d4ac3ed5cf91ed931

Title: ninja_defconfig: enable MSM_HOTPLUG

Author: Nathan Chancellor

Hash: 13237f9ff8257bec5bbf76a64fca7dab802daf8f

Title: soc: qcom: msm_hotplug v2.11

Author: Jean-Pierre Rasquin

Hash: 57b1df0cd2a6b86aaaec99e281631c5f394a1997

Title: soc: qcom: msm_hotplug v2.1

Author: Jean-Pierre Rasquin

Hash: 74cbc0acf7bc2f45e8f76767fe40d5b1d4f55f7b

Title: soc: qcom: msm_hotplug v2

Author: Jean-Pierre Rasquin

Hash: 0c7f51d36edaa04bfd043b4c7d4b319c8d03943b

Changelog for M:

Short list:

Added MSM_Hotplug (thank you to [MENTION=2033478]Yank555[/MENTION])

Added back the Maple I/O scheduler (thank you to [MENTION=5051294]frap129[/MENTION])

Long list:

Title: NINJA: v1.8

Author: Nathan Chancellor

Hash: 3e28a139b243aba4ca34eb4bda9e930d097f3553

Title: ninja_defconfig: enable IOSCHED_MAPLE

Author: Nathan Chancellor

Hash: 7cfab3c76d90a50e8183fcbf9fca7ad47b6f6adf

Title: block: maple: Fix inverted logic

Author: Joe Maples

Hash: f630dc4904072f8058fc18b9ee6df75893cc157a

Title: block: maple: Make bools constant across functions

Author: Joe Maples

Hash: c11997da4cfb3b8a544f8151862d665a168c6516

Title: block: maple: Use native display state instead of PowerSuspend

Author: Joe Maples

Hash: d2d3342563d898c223773cd77054f0d20e885366

Title: block: maple: Serve asynchronous requests before synchronous ones

Author: Joe Maples

Hash: 797f21317fa30365b735f61b00b1646285c3e672

Title: block: maple: Fix some logic, import former/latter request logic from SIO, and use some improved bits of SIO

Author: Joe Maples

Hash: 9100d85bc6ccdcec0a84b25ae9364078f979af87

Title: block: maple: Catch writes_starved sooner, increase limit.

Author: Joe Maples

Hash: 0d11b635f929d6bafe3c1a67e0e5d8be7ba735fa

Title: block: maple: Clean up and add patchlevel macro to keep track of commits

Author: Joe Maples

Hash: 122910fba8df78855660e4a6dd3f2d45558e8f06

Title: block: maple: Remove CONFIG_HZ dependency, assume 300 for interrupt frequency

Author: Joe Maples

Hash: bac96d4ac1102c61f73a101ee4a9c6864ef3ba04

Title: block: Add Maple I/O Scheduler

Author: Joe Maples

Hash: c580994fb97339841bf0556c909d3c46a3b471f8

Title: ninja_defconfig: enable MSM_HOTPLUG

Author: Nathan Chancellor

Hash: 3793848aefbabbe43bb254602b00ddcde181ae42

Title: soc: qcom: msm_hotplug v2.11

Author: Jean-Pierre Rasquin

Hash: 9eb30900394a779a64eb4f036c277e2d8ec32cda

Title: soc: qcom: msm_hotplug v2.1

Author: Jean-Pierre Rasquin

Hash: ed42481a309364be7972510f11337138771ecf17

Title: soc: qcom: msm_hotplug v2

Author: Jean-Pierre Rasquin

Hash: dc9e8bb6f32e045c0bec1280745cc099fba794cc