Related
Due to popular demand, it's now time for a thread like this.
Post #1 - Governors
Post #2 - I/O Schedulers
#1 - Governors
So, what's a governor?
Code:
Consider a CPU, the processor of Optimus Black. Well, this CPU operates at
different frequencies (on stock: 300, 600, 800 and 1000 Mhz) and we usually
say it's a 1 Ghz (1000 Mhz) processor because that's the max frequency it
can go 100% stable.
Now, a governor is a CPUFreq driver. Like the name suggests, it is what
decides when to be on full speed at max frequency or when to be at min
or mid and how fast should it reach the max/min, should it be almost insta
and provide a good smoothness overall? Should it take longer and go 200
Mhz at a time and preserve battery? This and more is what a governor is.
There are many governors around, some for single-cores, some for dual-cores which I won't even refer to (jRCU). In stock you can find 5 governors, in Quasar kernel you can find much more. Most android and xda users don't even know half of governors I'll list as there is no android kernel out there with more governors than Quasar, only one has the same amount and this is a kernel made by my friend and fellow portuguese franciscofranco.
Listing of knzo-known governors:
Ondemand *&
Powersave *@
Userspace *
Conservative *
Performance *
Interactive +
InteractiveX +
Smartass +
Smoothass +
BrazilianWax +
SavagedZen +
Minmax +&
Scary +
Legend: & - default | @ - disabled by default | * - exists in stock kernel | + - added in Quasar kernel
And now the official summary for each and brief comment by myself:
Ondemand:
Code:
/*
* drivers/cpufreq/cpufreq_ondemand.c
*
* Copyright (C) 2001 Russell King
* (C) 2003 Venkatesh Pallipadi <[email protected]>.
* Jun Nakajima <[email protected]>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*/
Ondemand is the default choice due to its balanced settings which offers a good compromise between battery and performance. However, it has no suspend profiles and falls a bit short on performance in smartphones.
Powersave:
Code:
/*
* linux/drivers/cpufreq/cpufreq_powersave.c
*
* Copyright (C) 2002 - 2003 Dominik Brodowski <[email protected]>
*
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
*/
Powersave sets the max frequency at the same clock as the min frequency. Impossible for daily usage for obvious reasons. Used usually with SetCPU screen-off profiles in combo with Ondemand.
Userspace:
Code:
/*
* linux/drivers/cpufreq/cpufreq_userspace.c
*
* Copyright (C) 2001 Russell King
* (C) 2002 - 2004 Dominik Brodowski <[email protected]>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
*/
Userspace lets you manually set the frequencies. To be completely honest, I've never used it and I've never heard of anyone who uses it. I'm completely off on how it fares or if it even works or any of its kinks.
Conservative:
Code:
/*
* drivers/cpufreq/cpufreq_conservative.c
*
* Copyright (C) 2001 Russell King
* (C) 2003 Venkatesh Pallipadi <[email protected]>.
* Jun Nakajima <[email protected]>
* (C) 2009 Alexander Clouter <[email protected]>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*/
Conservative is a slower Ondemand when it comes to ramping. For example, when you turn on the phone and start interacting with it, Ondemand will increase frequency until it reaches max at x speed. Conservative will do the same at x/2. Faster the ramping the more battery it consumes so conservative while a worse governor for performance it's also a good one for battery.
Performance:
Code:
/*
* linux/drivers/cpufreq/cpufreq_performance.c
*
* Copyright (C) 2002 - 2003 Dominik Brodowski <[email protected]>
*
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
*/
If Powersave governor is Yin, this one is Yang. It sets the min frequency the same as max frequency so the phone is always at max power. This is usually used with SetCPU profiles for when charging or plugged to computer. For obvious reasons can't be used in daily usage.
Interactive:
Code:
/*
* drivers/cpufreq/cpufreq_interactive.c
*
* Copyright (C) 2010 Google, Inc.
*
* This software is licensed under the terms of the GNU General Public
* License version 2, as published by the Free Software Foundation, and
* may be copied, distributed, and modified under those terms.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* Author: Mike Chan ([email protected])
*
*/
While Conservative is a slower Ondemand, Interactive is a faster one. Ramping will be slightly faster so interaction will seem more snappy with battery comsumption just increasing a tiny bit. This has been the most popular governor for the past year.
InteractiveX:
Code:
/*
* drivers/cpufreq/cpufreq_interactive.c
*
* Copyright (C) 2010 Google, Inc.
*
* This software is licensed under the terms of the GNU General Public
* License version 2, as published by the Free Software Foundation, and
* may be copied, distributed, and modified under those terms.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* Author: Mike Chan ([email protected]) - modified for suspend/wake by imoseyon
*
*/
As you can see in the summary, this is Interactive with some modifications by imoseyon. Now instead of using the dirty SetCPU profiles method of locking the frequency to minimum when phone is asleep, the own governor will do that which is a cleaner method and with a better ramping management when coming out of sleep. Basically, it has Interactive's performance with better battery.
Smartass:
Code:
/*
* drivers/cpufreq/cpufreq_smartass2.c
*
* Copyright (C) 2010 Google, Inc.
*
* This software is licensed under the terms of the GNU General Public
* License version 2, as published by the Free Software Foundation, and
* may be copied, distributed, and modified under those terms.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* Author: Erasmux
*
* Based on the interactive governor By Mike Chan ([email protected])
* which was adaptated to 2.6.29 kernel by Nadlabak ([email protected])
*
* SMP support based on mod by faux123
*
* requires to add
* EXPORT_SYMBOL_GPL(nr_running);
* at the end of kernel/sched.c
*
*/
This one has been increasingly popular and it's becoming the favorite one for Q3-4 2011. Smartass is based on Interactive but with some modifications, as well as built-in profiles. Recently, Erasmux released this v2 which by what people are saying it's very good. I suggest you go to this link for more informations. It's probably Quasar's best governor at the moment, along with Minmax.
Smoothass:
Code:
/*
* drivers/cpufreq/cpufreq_smoothass.c
*
* Copyright (C) 2010 Google, Inc.
*
* This software is licensed under the terms of the GNU General Public
* License version 2, as published by the Free Software Foundation, and
* may be copied, distributed, and modified under those terms.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* Author: Erasmux
*
* Based on the interactive governor By Mike Chan ([email protected])
* which was adaptated to 2.6.29 kernel by Nadlabak ([email protected])
*
* requires to add
* EXPORT_SYMBOL_GPL(nr_running);
* at the end of kernel/sched.c
*
*/
One more jewel from Erasmux. As far as I know this is a Smartass v1 tuned for a more aggressive ramping, which means, more performance and snappiness, less battery.
BrazilianWax:
Code:
/*
* drivers/cpufreq/cpufreq_brazilianwax.c
*
* Copyright (C) 2010 Google, Inc.
*
* This software is licensed under the terms of the GNU General Public
* License version 2, as published by the Free Software Foundation, and
* may be copied, distributed, and modified under those terms.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* Author: Erasmux
*
* Based on the interactive governor By Mike Chan ([email protected])
* which was adaptated to 2.6.29 kernel by Nadlabak ([email protected])
*
* requires to add
* EXPORT_SYMBOL_GPL(nr_running);
* at the end of kernel/sched.c
*
*/
Someone correct me if I'm wrong but this is basically the same as Smoothass.
SavagedZen:
Code:
/*
* drivers/cpufreq/cpufreq_savagedzen.c
*
* Copyright (C) 2010 Google, Inc.
*
* This software is licensed under the terms of the GNU General Public
* License version 2, as published by the Free Software Foundation, and
* may be copied, distributed, and modified under those terms.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* Author: Joshua Seidel
* Based on the smartass governor by Erasmux
*
* Based on the interactive governor By Mike Chan ([email protected])
* which was adaptated to 2.6.29 kernel by Nadlabak ([email protected])
* --Modifications by arescode--
* adapted to stock (1 GHz) frequency by zacharias.maladroit
*
* requires to add
* EXPORT_SYMBOL_GPL(nr_running);
* at the end of kernel/sched.c
*
*/
Another Smartass-based kernel with many modifications aiming to attain both better battery and performance. And it succeeds in my opinion. I've used it in past devices, it's a very good overall governor, a balanced option.
Minmax:
Code:
/*
* drivers/cpufreq/cpufreq_minmax.c
*
* Copyright (C) 2001 Russell King
* (C) 2003 Venkatesh Pallipadi <[email protected]>.
* Jun Nakajima <[email protected]>
* (C) 2004 Alexander Clouter <[email protected]>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* This governor is an adapatation of the conservative governor.
* See the Documentation/cpu-freq/governors.txt for more information.
*
* Adapatation from conservative by Erasmux.
*/
This governor was a very pleasant surprise. Although an adaptation of Conservative governor it has probably the best performance of them all. Might fall shorter on battery than Smartass v2 but I owe it my best experiences in terms of snappiness so far, reason why I selected it as default governor for Nova. My personal favorite until I can draw a conclusion from using Smartass v2.
Scary:
Code:
/*
Scary governor based off of conservatives source with some
of smartasses features
For devs - If you're going to port this driver to other devices,
make sure to edit the default sleep frequencies & prev frequencies
or else you might be going outside your devices hardware limits.
*/
This is just a weird governor. It's based on Conservative which has a slower ramping than Ondemand but then again it has Smartass elements which is a governor with one the fastest rampings. I've heard some people like it but alas I never tried it myself.
To sum up:
(in my humble opinion)
Battery: 1st place - InteractiveX | 2nd place - Smartass | 3rd place - SavagedZen
Performance: 1st place - Minmax | 2nd place - Smartass2 | 3rd place - SavagedZen
In attachment you can also find some benchmark's statistics for P500's franco.Kernel.
Due to popular demand, it's now time for a thread like this.
Post #1 - Governors
Post #2 - I/O Schedulers
#2 - I/O Schedulers
So, what's a I/O Scheduler?
Code:
Input/output (I/O) scheduling is a term used to describe the method computer
operating systems decide the order that block I/O operations will be submitted
to storage volumes. I/O Scheduling is sometimes called 'disk scheduling'.
I/O schedulers can have many purposes depending on the goal of the I/O
scheduler, some common goals are:
- To minimize time wasted by hard disk seeks.
- To prioritize a certain processes' I/O requests.
- To give a share of the disk bandwidth to each running process.
- To guarantee that certain requests will be issued before a particular deadline.
There is not so much offer when it comes to I/O Schedulers and the improvements aren't nearly as visible as choosing a gung ho governor but trust me they are there. Just to name one improvement you could see is for example the opening and closing of applications.
Listing of knzo-known I/O Schedulers:
Noop *
Anticipatory *@+
CFQ *&
Deadline *@+
VR +
Simple +&
BFQ #
Legend: & - default | @ - disabled by default | * - exists in stock kernel | + - added in Quasar kernel | # - not included in Quasar kernel
And now a summary for each and brief comment by myself:
Noop:
Code:
The NOOP scheduler inserts all incoming I/O requests into a simple, unordered
FIFO queue and implements request merging.
The scheduler assumes I/O performance optimization will be handled at some
other layer of the I/O hierarchy; e.g., at the block device; by an intelligent HBA
such as a Serial Attached SCSI (SAS) RAID controller or by an externally
attached controller such as a storage subsystem accessed through a switched
Storage Area Network).
NOOP scheduler is best used with solid state devices such as flash memory
or in general with devices that do not depend on mechanical movement to
access data (meaning typical "hard disk" drive technology consisting of seek
time primarily, plus rotational latency). Such non-mechanical devices do not
require re-ordering of multiple I/O requests, a technique that groups together
I/O requests that are physically close together on the disk, thereby reducing
average seek time and the variability of I/O service time.
Noop isn't actually that bad. It's a simple I/O Scheduler and when it comes to Android, the simplest the better.
I think in G1 one known "tweak" was to set Noop as default I/O Scheduler.
Anticipatory:
Code:
Anticipatory scheduling is an algorithm for scheduling hard disk input/output.
It seeks to increase the efficiency of disk utilization by "anticipating"
synchronous read operations.
"Deceptive idleness" is a situation where a process appears to be finished
reading from the disk when it is actually processing data in preparation of
the next read operation. This will cause a normal work-conserving I/O
scheduler to switch to servicing I/O from an unrelated process. This situation
is detrimental to the throughput of synchronous reads, as it degenerates into
a seeking workload. Anticipatory scheduling overcomes deceptive idleness
by pausing for a short time (a few milliseconds) after a read operation in
anticipation of another close-by read requests.
I have no idea if this fares well in Android devices. It's disabled in stock kernel and also in Quasar kernel since I've never heard of anyone using it or even recommending it. I read it's more in servers and what nots.
CFQ:
Code:
CFQ, also known as "Completely Fair Queuing", is an I/O scheduler for the
Linux kernel which was written in 2003 by Jens Axboe.
CFQ works by placing synchronous requests submitted by processes into
a number of per-process queues and then allocating timeslices for each of the
queues to access the disk. The length of the time slice and the number of
requests a queue is allowed to submit depends on the IO priority of the given
process. Asynchronous requests for all processes are batched together in fewer
queues, one per priority. While CFQ does not do explicit anticipatory IO
scheduling, it achieves the same effect of having good aggregate throughput for
the system as a whole, by allowing a process queue to idle at the end of
synchronous IO thereby "anticipating" further close IO from that process. It can
be considered a natural extension of granting IO time slices to a process.
Well, like Ondemand is to governors, CFQ is to I/O Schedulers. It's the most balanced one, aiming to perform well in most scenarios. However, in Android since things work differently, it's not the most suitable I/O Schedulers. There are many tweaks spreaded throughout XDA for improving this baby.
Deadline:
Code:
The goal of the Deadline scheduler is to attempt to guarantee a start service
time for a request. It does that by imposing a deadline on all I/O operations
to prevent starvation of requests. It also maintains two deadline queues, in
addition to the sorted queues (both read and write). Deadline queues are basically
sorted by their deadline (the expiration time), while the sorted queues are sorted
by the sector number.
Before serving the next request, the Deadline scheduler decides which queue to
use. Read queues are given a higher priority, because processes usually block
on read operations. Next, the Deadline scheduler checks if the first request in the
deadline queue has expired. Otherwise, the scheduler serves a batch of requests
from the sorted queue. In both cases, the scheduler also serves a batch of requests
following the chosen request in the sorted queue.
Deadline is actually quite popular along with BFQ. It is used in some known kernels for example Netarchy's for Nexus S. However, even though it's better than CFQ for Android devices it still falls short in comparison with VR.
VR:
Code:
/*
* V(R) I/O Scheduler
*
* Copyright (C) 2007 Aaron Carroll <[email protected]>
*
*
* The algorithm:
*
* The next request is decided based on its distance from the last
* request, with a multiplicative penalty of `rev_penalty' applied
* for reversing the head direction. A rev_penalty of 1 means SSTF
* behaviour. As this variable is increased, the algorithm approaches
* pure SCAN. Setting rev_penalty to 0 forces SCAN.
*
* Async and synch requests are not treated seperately. Instead we
* rely on deadlines to ensure fairness.
*
*/
VR is a very good I/O Scheduler with Deadline elements. Probably the best for MTD Android devices and it's used also in known kernels such as IntersectRaven's for Nexus One. It's probably the one who can score the most in benchmarks but it's also one of the most... unstable. Its performance fluctuates, it can peak above average or it can go below it. But when it peaks... it's the best.
Simple:
Code:
/*
* Simple IO scheduler
* Based on Noop, Deadline and V(R) IO schedulers.
*
* Copyright (C) 2010 Miguel Boton <[email protected]>
*
*
* This algorithm does not do any kind of sorting, as it is aimed for
* aleatory access devices, but it does some basic merging. We try to
* keep minimum overhead to achieve low latency.
*
* Asynchronous and synchronous requests are not treated separately, but
* we relay on deadlines to ensure fairness.
*
*/
Like the name suggests, Simple I/O is a simple one. Remember me saying that I/O Schedulers for Android devices, the simpler the better? This is such a case. Especially for EMMC devices. It's reliable and while not as good as VR when it peaks, it's still one of the best performance-wise. It's at the moment the default one in Quasar kernel.
BFQ:
Code:
/*
* BFQ, or Budget Fair Queueing, disk scheduler.
*
* Based on ideas and code from CFQ:
* Copyright (C) 2003 Jens Axboe <[email protected]>
*
* Copyright (C) 2008 Fabio Checconi <[email protected]>
* Paolo Valente <[email protected]>
*
* Licensed under the GPL-2 as detailed in the accompanying COPYING.BFQ file.
*
* BFQ is a proportional share disk scheduling algorithm based on the
* slice-by-slice service scheme of CFQ. But BFQ assigns budgets,
* measured in number of sectors, to tasks instead of time slices.
* The disk is not granted to the active task for a given time slice,
* but until it has exahusted its assigned budget. This change from
* the time to the service domain allows BFQ to distribute the disk
* bandwidth among tasks as desired, without any distortion due to
* ZBR, workload fluctuations or other factors. BFQ uses an ad hoc
* internal scheduler, called B-WF2Q+, to schedule tasks according to
* their budgets. Thanks to this accurate scheduler, BFQ can afford
* to assign high budgets to disk-bound non-seeky tasks (to boost the
* throughput), and yet guarantee low latencies to interactive and
* soft real-time applications.
*
*/
Here it is, the wrongly assumed best I/O Scheduler which happens to be the most popular one. It's based in CFQ but it has an inferior performance than VR or Simple, even if it's BFQv2 (although it seems to perform well in USB transfers rate).
To sum up:
(in my humble opinion)
Performance: 1st place - VR
Reliability: 1st place - Simple
Reserved for possible later use.
Reserved for possible later use.
Now don't you people dare ask me again about governors or whatever.
**** I'm going to steal you this "manual"... no more 65132 posts per day asking about schedulers and governors.
Wow thanks I personnally search with Google.
But, thanks ! It must had take some time to write it all.
Sent from my LG-P970 using xda premium
Perfect.
Knzo you have to many time. But thx for your great work.
Sent from my LG-P970 using XDA App
There is an ondemandX governor in p500 francos kernel
very very helpful! thanks knzo! ur the man!xD
Surely one of the most usefull and important threads here!
saved as .doc
So many thanks!
terratrix said:
There is an ondemandX governor in p500 francos kernel
Click to expand...
Click to collapse
It's basically Ondemand with suspend/wake profiles.
hi there.
Can anyone help me? How can I change the I/O Scheduler?
Currently I'am using stock Rom with Quasar Kernel V8 on Lg p97010b.
Thanks
Hackpb said:
hi there.
Can anyone help me? How can I change the I/O Scheduler?
Currently I'am using stock Rom with Quasar Kernel V8 on Lg p97010b.
Thanks
Click to expand...
Click to collapse
No frills cpu app from market
Sent from my LG-P500
very helpful thread. Many thanks to you!
Thank you very mutch terratrix
In NEO kernel I don't have the "Simple" I/O scheduler, what is the best after this?
A must read for overclockers
A very very important thread. A must read if you tend to overclock your android.
For users with battery drain issues, this will throw valuable information for optimization.
i am on mik's 6.5.7/francos latest kernel. overclocked at 806mhz/interactivex governer. Smartass/Smartassv2 crashes at these speeds and is steady at 787 & lover frequencies.
knzo said:
Now don't you people dare ask me again about governors or whatever.
Click to expand...
Click to collapse
Hahaa lolz
Sent from my LG-P970 using Tapatalk
ChronicKernel for Samsung Galaxy S5
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Code:
#include
/*
* Your warranty is now likely void.
*
* I am not responsible for bricked devices, dead SD cards,
* spontaneous combustion, or any other host of cosmic penalties
* which may befall you, your family, or your phone.
*
*/
Here is a initial kernel for TW. Forked from ktoonsez, t has all the features you would expect from a modded kernel, CPU OC, GPU OC, more CPU governors, Undervolted, GPU OC CPU L2 OC, and linaro -o3 optimizations
Click to expand...
Click to collapse
Screenshots
Requirements
* Rooted (obviously)
Installation
1: Place zip on sdcard
3: Reboot into recovery
3: Clear cache and dalvik cache
4: Flash zip
5: Reboot
6: If desired edit the init script at /system/etc/chronic-config.sh to suit your needs
7: Profit
ChronicKernel
* All-in-One kernel for all qualcomm variants
* Compiled with linaro
* GPU OC to 657 Mhtz (578Mhtz default - configurable though chronic-config.sh init script)
* CPU OC to 3.07 Ghtz (2.45 Ghtz default)
* CPU bandwith increase
* Added many I/O Schedulers (ROW, SIO, ZEN, etc...)
* Merged a lot of scheduler related performance patches from my S4 kernel and Faux123's
* Added CPU Governors intelliactive wheatley pegasusq smartmax dancedance nightmare intellidemand badass abyssplugv2 abyssplug and Lionheart (Default gov = interactive)
* User adjustable CPU uV
* Kernel based thermal management
* Chronic Hotplug (kernel based mpdecision replacement)
* No ROM overriding your Max freq BS
* FauxSound
* frandom support
* Enable/disable fsync support (fsync enabled by default)
* Countless amounts of ARM optimization from various sources
* Optimized and compiled with with the "Optimize a lot, or -o3 option)
* USB fast charge (disabled by default - configurable though chronic-config.sh init script
* Linux 3.4+
This kernel uses a simple shell script called chronic-config.sh (located at /system/etc/chronic-config.sh) With this script you can specify your desired default values for various things including cpu governor, min/max cpu freq. USB fastcharge etc. This file as is requires no intervention and will not interfere with any kernel tuning app you already use. It is just there for people who like a minimal approach and as it is the most direct method of changing settings so will always work. We all know how sometimes apps get an update and it breaks something for you Below is an example of the config options in the script.
Click to expand...
Click to collapse
Code:
# Configure your options here #
# Config default CPU Gonvernor
#
# Kernel Default: interactive
# Uncomment desired governor by removing the "#" symbal before desired gov
# and add a "#" to the old line
# Possible values
# GOV=abyssplug
# GOV=abyssplugv2
# GOV=badass
# GOV=consevative
# GOV=dancedance
# GOV=intelliactive
# GOV=intellidemand
# GOV=linoheart
# GOV=nightmare
# GOV=ondemand
# GOV=pegasusq
# GOV=performance
# GOV=powersave
# GOV=smartmax
# GOV=userspace
# GOV=wheatley
GOV=interactive
# Config CPU frequency
#
# Default: 2457600 (2.45Ghtz)
# Recomended: 2764800 (2.76Ghtz)
# available frequencies:
# 300000 345600 422400 499200 576000 652800 729600 806400 883200 960000 1036800 1113600 1190400 1267200 1344000 1420800
# 1497600 1574400 1651200 1728000 1804800 1881600 1958400 2035200 2112000 2150400 2188800 2265600 2342400 2419200 2457600
# 2534400 2611200 2688000 2764800 2841600 2918400 2995200 3072000
#
# Max/Min
MAXFREQ=2457600
MINFREQ=300000
# Config GPU clock Max Frequency
# 389000000 = 389mhz (Super Underclocked)
# 462400000 = 450mhz (Underclocked)
# 578000000 = 578mhz (Default)
# 657500000 = 657mhz (Overclocked)
GPU_MAX=578000000
# Config GPU clock Min Frequency
# ** Choose either Samsung default 320Mhtz or Standard 200Mhtz
# ** key is as follows..
# 320Mhtz = 4
# 200Mhtz = 5
GPU_MIN=4
# I/O Scheduler
#
# Available schedulers: cfq, bfq, fiops, noop, deadline, row, sio, vr, zen, fifo
# Device default: cfq
SCHED=cfq
# Enable/Disable FSYNC
#
# Y = Enabled (default)
# N = Disabled
FSYNC=Y
# Enable Fastcharge
# 0 = disabled
# 1 = substitute AC to USB charging always
# 2 = substitute AC to USB charging only if there is no USB peripheral detected
FASTCHARGE=0
# Chronic Hotplug
# set custom "enable_core_thresholds" This is represented as four numbers each being for the corosponding core (0,1,2.3)
# the numbers are derived from cpu load times 10
# 0 = always on
# 999 = never on
ENABLE_CORE_THRES="0 290 340 390"
# End of configurable options #
July-30
* Updated to latest NG2 source from Samsung
* Updated kernel to Linux 3.4.100
July-19
* Cleaned up cpu frequency table, 2899Mhtz was never a valid freq, and the new ones were based off of that step. That is now fixed
* Bumped bandwith on 3 highest freq steps
* Bumped max voltage to 1400
* I/O: deadline: Allow 0ms deadline latency, increases the read speed
* SELinux: Fix memory leak upon loading policy
* msm: kgsl: Fix nice level for higher priority GPU start thread, previously we were using the lowest possible process priority which increase latency, (cherry-picked from flar2's HTC One-M8 kernel)
* PM: devfreq: Use high priority workqueue. Same thing as mentioned above, give the GPU freq driver higher priority (flar2)
* A couple misc. I/O related patches from upstream CAF kernel
* Updated to latest NF6 kernel source from Samsung
* removed more log span (ktoonsez)
* added nightmare cpu governor
* tweaked some ancient configs for intellidemand back from the msm8x60 days
* added frandom support if there is anyone who uses it
* Added sysfs module to enable/disable fsync (enabled by default). It's in the standard location (/sys/module/sync/parameters/fsync_enabled) and like always can be configured though the chronic-config.sh script. I can also personally vouch for the tack that tricksterMOD will show the FSYNC enable/disable toggle with this patch. So any other app with the option should as well
* cleaned up chronic-config.sh and added missing cpu governors to list
July-17
* Added ability to overclock CPU to 3.01Ghtz
July-13
* Chronic Hotplug is born! This is basically based off of ktoonz KT auto hotplug but with user configurable parameters. Right now all you can change is the "enable_core_thresholds" this is the load the system has to be at for each respective core to turn online. the number is % of cpu load time 10. So 30% would be 300 (0 = always online). There is one module called enable_core_thresholds that sets all four cores. Its formatted like this (0 240 290 390). I have added an option in the chronic-config.sh script to configure this. Here is an example showing cores 0 and 3 always being on and 1 and 2 to come on at 24% and 29% respectively
Code:
ENABLE_CORE_THRES="0 240 290 0"
This line can be found in chronic-config.sh under the "Chronic Hotplug" section. Check script or above for more info.
* Disabled userspace mpdecision since we are now using Chronic Hotplug
* Also added option to set I/O scheduler in chronic-config.sh
* Backported some upstream 3.16 scheduler updates
July-10
* Reverted some of the sched tweaks merged from faux's kernel to vastly improve I/O performance
* Disabled some more debug options we don't need to speed up the kernel
* Switched back to Gzip compression as we have the room and kernel will initialize faster
* Set net loopback default mtu to 64K
* Fixed simple-ondemand gpu governor from crashing (ktoonsez)
* Reverted DRIVERS: SLIMBUS initial overclock commit as it seemed to drain battery when playing music
* Removed async-fsync for now until I make a module for it. Like another user said, I didn't notice any performance decrease with it off.
* Removed F2FS as i'm pretty sure its only compatible with AOSP (If i'm wrong let me know and i'll merge it back)
* Further tweaks to thermal (kthermal) values to be more stable on high frequencies (dropped polling speed to 500 ms and lowered temp limits about 2 degrees
* Disabled KT-auto-hotplug code i forgot about since I don't support it
* Stopped Samsung's "cpufreq_limit" driver from overriding Max freq (note: I had the option of stopping it from changing the min freq but it drastically decreases performance. This is equal to the cpu-boost and DVFS driver on the S4. They just expanded it to include a max freq cap which i disabled so we are not limited by it, So bottom line. You can set your min freq/ but it is temporarily overridden by the driver at times. THIS IS NORMAL AND IS LIKE THIS IN ALL KERNELS EXCEPT I ACTUALLY DISABLED THE MAX LIMIT SO IT STOPS GETTING LIMITED AT 1.19GHTZ AT TIMES. THIS IS THE OPTIMUM SOLUTION
* Fised chronic-config.sh not copying to the devices
* chronic-config.sh: fixed path for GPU max freq
* Set GPU min freq to 320mhtz (Samsung default) and added an option in chronic-config.sh to change it
* chronic-config.sh: list all available cpu frequencies instead of just a range since they are hard to remember
July-5
* initial release *
Some noteworthy changes from original source not listed above...
* Got rid of some logspan.
* send input events one at a time (faster touchboost related responses)
* few mismatch derps by samsung (faux123)
* Few other small fixes
* ]If you have problems with frequencies sticking use "System Tuner" and go to Settings and prevent other apps from changing CPU settings
* ]If you have problems with MINIMUM frequency sticking the reason is because of the touch boost driver. when you tap the screen you can't go below 1.19Ghtz, hence whenever you set a min freq....The only real solution to this without disabling the touch boost driver which hinders performance is to use the chronic-config.sh script or have an app set it boot. basically be set without a tap on the screen
* Although this kernel has now reached "beta" status. bugs still could pop up. please if you find a reproducible bug and decide to post please try and provide a last_kmesg or logcat.
TW : ChronicKernel-KK4.4-TW-KLTE-v1.5.zip
Goo.im Repo (mirror) : CLICK HERE
My Github (main): https://github.com/Team-Hydra/android_kernel_samsung_klte
* ktoonsez, this is a major fork of his kernel!
* First off of course cyanogen, the CyanogenMod project and all who contribute.
* A lot of this was taken/based off of flar2's Kernel for the HTC One, so thanks for the source!
* Also grabbed some things from Faux123's kernel
* All the people who have helped me learn more and more over the past year and a half (arco/dastin1018/android1234567) you guys are the best!
here is a donation link if you want to buy me a coffee or pack of smokes (I go through a lot sitting on the PC messing around lol) go ahead. But not required or expected by any means
Note: The name on the paypal account may say patricia, this is because it's a family paypal account.
Happy Flashing
Albinoman887
XDA:DevDB Information
[TW] ChronicKernel (UV/GPU/CPU-OC/linaro), Kernel for the Samsung Galaxy S 5
Contributors
albinoman887
Kernel Special Features: Linux 3.4.x Kernel for GS5 with overclocked CPU/GPU, Linaro optimizations, chronic-hotplug, upstream fixes, frandom, and much much more
Version Information
Status: Beta
Created 2014-07-06
Last Updated 2014-07-30
Reserved
close old project which i acidently put in general section and re-opened here. in unified develeopment
Thx for this kernel! Everything works great except one thing...the min frequency doesn't stick @ 300 mhz. I have this problem on all kernels I tried. I tried your advice with no frills cpu but unfortunately it doesn't helps it even set it to 300 mhz!
Verstuurd vanaf mijn SM-G900F met Tapatalk
FlemishDroid said:
Thx for this kernel! Everything works great except one thing...the min frequency doesn't stick @ 300 mhz. I have this problem an all kernels I tried. I tried your advice with no frills cpu but unfortunately it doesn't helps it even set it to 300 mhz!
Verstuurd vanaf mijn SM-G900F met Tapatalk
Click to expand...
Click to collapse
Yeah. its suppose to be like that. there is a cpu-boost driver written by samsung in the kernel that does that. To test i disabled part of the code that played with min freq but it really gives you a performance hit. so yeah. dont bother with min freq. Its suppose to change like that. its basically another mpdecision service in the background. ktoonz kernel has it. faux's has it. stock kernel has it. just the way it is on the msm8974pro
albinoman887 said:
ChronicKernel for Samsung Galaxy S5
Click to expand...
Click to collapse
NM, answered my own question. Good luck with the kernel.
gspears said:
NM, answered my own question. Good luck with the kernel.
Click to expand...
Click to collapse
what was the question?
FlemishDroid said:
Thx for this kernel! Everything works great except one thing...the min frequency doesn't stick @ 300 mhz. I have this problem an all kernels I tried. I tried your advice with no frills cpu but unfortunately it doesn't helps it even set it to 300 mhz!
Verstuurd vanaf mijn SM-G900F met Tapatalk
Click to expand...
Click to collapse
not sure about no frills but using system tuner it will eventually reset to what you set
As the GPU is so much overclocked, is there any GPU governor similar to the CPU ones?
I assume the phone temporarily underclock the GPU if it's not needed to save battery, am I right?
And BTW I think the config file has a typo.
# GOV+smartmax
Should be
# GOV=smartmax
Right?
kgyirhj said:
As the GPU is so much overclocked, is there any GPU governor similar to the CPU ones?
I assume the phone temporarily underclock the GPU if it's not needed to save battery, am I right?
And BTW I think the config file has a typo.
# GOV+smartmax
Should be
# GOV=smartmax
Right?
Click to expand...
Click to collapse
yeah. Kt-simple gov is also avaiable
albinoman887 said:
what was the question?
Click to expand...
Click to collapse
It was stupid. I just was wondering why you were teasing us 900A owners with a kernel we can't have due to our locked bootloader and then I realized I was in the unified section.
Sorry about that.
Does this kernel include all features from original Ktoonse kernel?
I noticed Ktoonse TW kernel zip file is several megabytes bigger then this one.
Chronic-config.sh is not in system/etc. Do we make it our self's? Thanks for kernel btw
Sent from my SM-G900F using XDA Premium 4 mobile app
Any idea on stability with a S5 active sm g870a. And if so will Tegrak overclock run with this kernel.
Sent from my SAMSUNG-SM-G870A using XDA Premium 4 mobile app
selinux status?
Is the SELinux status set to permissive by any chance? if so that would be fantastic!
stalli0nUK said:
Chronic-config.sh is not in system/etc. Do we make it our self's? Thanks for kernel btw
Sent from my SM-G900F using XDA Premium 4 mobile app
Click to expand...
Click to collapse
hmmm. it should be. never actually checked to see if it copied over. is it present in the zip file?
EDIT: just realized i compiled the build with my "dev" script that doesnt include the zip. I'm gonna be releasnig a new version soon (NO ETA!!!!) when i do i'll pop the script in there. everything in it you could configure with an app anyways. I just like it because its set on boot always and faster
lars1110 said:
Is the SELinux status set to permissive by any chance? if so that would be fantastic!
Click to expand...
Click to collapse
yes it should be
kgyirhj said:
Does this kernel include all features from original Ktoonse kernel?
I noticed Ktoonse TW kernel zip file is several megabytes bigger then this one.
Click to expand...
Click to collapse
not entirely. the size is because of XZ compression. but I did remove some of the extra cpu throttling things. like GPS governor or music playing min freq etc since i dont support his app. But other then that yes..
GDofWR420 said:
Any idea on stability with a S5 active sm g870a. And if so will Tegrak overclock run with this kernel.
Sent from my SAMSUNG-SM-G870A using XDA Premium 4 mobile app
Click to expand...
Click to collapse
Any one
Sent from my SAMSUNG-SM-G870A using XDA Premium 4 mobile app
GDofWR420 said:
Any one
Sent from my SAMSUNG-SM-G870A using XDA Premium 4 mobile app
Click to expand...
Click to collapse
You are in the galaxy s5 section. It will probably not work for the s5 active
Hellscythe said:
You are in the galaxy s5 section. It will probably not work for the s5 active
Click to expand...
Click to collapse
Reason I ask is I've heard people flashing stuff from your guys section and only losing the active button which other than the fingerprint scanner is really the only big difference and also s5 active doesn't have its own forum so I have to post here with you guys. Hopefully we will have our own forum soon. EDIT: duh locked bootloader here never mind
Sent from my SAMSUNG-SM-G870A using XDA Premium 4 mobile app
albinoman887 - Thank you for this kernel! Only thing missing from Ktoonsez was -fsync support and you rectified the issue.
Update
One issue I have found, flashing the kernel breaks init.d, for some reason it deletes 'system/bin/sysinit'.
Also I guess I wrongly assumed that the HTC fsync was the same as standard -fsync disabling, for one the module isn't there and there is not any bandwidth increase that one would see if -fsync was disabled. Can you add support for it? The issues with it and data loss are greatly exaggerated and it doesn't have to be enabled by default. Thank you, so far the kernel is running great.
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Pure, powerful and fast as hell.
These shall be the characteristics of my HellSpawn kernel for the Nexus 4 (MAKO).
Why another kernel for the Nexus 4?
Answer is simple.. why not! I started to look around for an appropriate kernel which could be an enrichment in my BeanStalk ROM (abbr. BS). One of the fastest candidates has definitely been the hells-Core kernel. But I didn't want to depend on other devs, hence I decided to start my own project based on the awesome work by hellsgod (big thanks to you!).
Your constant feedback is welcome and essential for the further development! Even if I probably cannot fulfil the wishes by everyone, I am trying to consider the most promising features requested. However, I will try to keep the number of new features limited in order to not bloat up the kernel which could easily result in a degradation of its stability.
I am looking forward to fruitful discussions with you and figuring what the hell turn out to be the most suitable kernel features in terms of performance and battery life!
Note: This kernel is compatible with Android 6.0.1 (Marshmallow) and with Android 7.x (Nougat). Please pay attention which build you are downloading. Builds for Android 7.x might be backwards compatible.
Features:
Linux 3.4.112 based on sources of hells-Core N4 kernel b88-M (hats off to hellsgod) and tweaks from other kernels, e.g. Quanta-Mako (thanks zaclimon), TaUrUs_Kernel (thanks txuki2005), Unleashed (thanks ion-storm) and Mirage (thanks mgr666)
Compiled with the latest Cortex-A15 optimized UberTC 5.x with some kernel based optimizations: graphite, NEON
AOSP/BeanStalk/CM compatible
MultiROM compatible (Kexec patch)
Alucard-hotplug (alucard)
AutoSMP-hotplug (Mgr666) set as default
dyn_hotplug (stratosk)
Mako-hotplug (franciscofranco)
msm-sleeper: upgrade to version 2 (thanks flar2)
Zen Decision Hotplug (bbedward)
CPU Governors: hellsactive (default), conservative, ondemand (tweaked by stratosk), interactive (tweaks from neobuddy and franciscofranco), performance, elementalX (flar2), pegasusQ (ByungChang Cha), alucard (alucard), smartmax (maxwen), intelliminmax (faux123)
GPU Governors: ondemand, performance, simple, conservative
GPU Overclocking up to 487.5MHz
Bricked thermal driver (showp1984)
Gamma control by faux123
Userspace Voltage Control (faux123)
Marshmallow: Sound Control (faux123)
USB fast charging (Chad Froebel/faux123)
Doubletap2wake/power suspend support (stratosk) incl. profiles (Center, Full screen, Bottom half, Top half) (savoca )
DT2W: fire a small vibration when device is woken up
Exponential brightness driver (stratosk)
USB-OTG Support (ziddey/faux123)
Marshmallow: Support for android-keyboard-gadget (You can use your device as a keyboard/mouse for your PC) (zaclimon)
Knob for Fsync on/off (franciscofranco)
Knobs for Arch Power and Gentle Fair Sleepers
Knobs for preventing wakeups: bluesleep wakelock, bluedroid_timer wakelock, wlan wakelocks and msm_hsic_host wakelock
Qualcomm Slimbus driver incl. tweaks
Partial-resume framework & quickwakeup driver
No F2FS support (don't ask me for adding it)
Tested on the following ROMs:
* Pure Nexus M/N (AOSP)
* BeanStalk M (CM-13 based)
* Resurrection Remix M (CM-13-based)
* [NMF26O] Fake nexus rom for Nexus 4
* NeXus4ever ROM N (AOSP)
Known issues:
* According to a user report it doesn't appear to work on latest Chroma.
* Changing CPU governors doesn't work in CM-based ROMS
DISCLAMER
Your warranty is now void.
I am not responsible for bricked devices, dead SD cards, thermonuclear war, or you getting fired because the alarm app failed. Please do some research if you have any concerns about features included in this Kernel before flashing it! YOU are choosing to make these modifications, and if you point the finger at me for messing up your device, I will laugh at you.
Click to expand...
Click to collapse
Download:
In order to change dt2w profiles (e.g. bottom half, center etc.) you need to install my Kernel Adiutor Mod.
Nougat release for AOSP/CM based ROMs:
HellSpawn-N4-Nougat-R05-AOSP-UBERTC-6.x-CPUSET
HellSpawn-N4-Nougat-R05-AOSP-UBERTC-6.x
HellSpawn-N4-Nougat-R05-CM-UBERTC-6.x
Mirror for nougat releases:
https://www.androidfilehost.com/?w=files&flid=136250
Last release version for Marshmallow:
hellspawn-N4-mm-6.0-r18-AOSP-UBERTC-5.4
hellspawn-N4-mm-6.0-r18-AOSP-UBERTC-7.0
hellspawn-N4-mm-6.0-r18-BS-UBERTC-5.4
hellspawn-N4-mm-6.0-r18-BS-UBERTC-7.0
hellspawn-N4-mm-6.0-r18-CM-UBERTC-5.4
hellspawn-N4-mm-6.0-r18-CM-UBERTC-7.0
Archived marshmallow builds until r13:
>HERE<
Installation:
1. Wipe cache/dalvik cache
2. Flash kernel zip over stock kernel of the ROM
3. Wipe cache/dalvik cache again (optional)
4. Reboot system
IMPORTANT NOTE:
With r05 and higher, you don't have to worry about clean and/or dirty flashing problems. The anykernel installer will reuse the ramdisk of your previous kernel and apply a patch with my HellSpawn Kernel Tweaks.
Credits:
Special thanks to
- AOSP
- hellsgod
- zaclimon
- ganachoco
- txuki2005
- yoinx
- Cl3Kener
- franciscofranco
- faux123
- eng.stk
- stratosk
- show-p1984
- mrg666
- Defconoi
- neobuddy89
- flar2
- CallMeAldy
- AK
- DespairFactor
- Alucard
- mydongistiny
- And anyone I forgot
XDA:DevDB Information
HellSpawn-N4, Kernel for the Google Nexus 4
Contributors
spezi77, jolinnard
Source Code: https://github.com/spezi77/hellspawn-N4
Kernel Special Features:
Version Information
Status: Stable
Current Stable Version: R05
Stable Release Date: 2016-12-28
Current Beta Version: r17
Beta Release Date: 2016-08-13
Created 2016-03-30
Last Updated 2016-12-28
Change log Nougat:
R01
* Initial nougat release for AOSP and CM based ROMs
* no longer a separate build variant for BeanStalk
* no longer compiling with TC-7.0 (I never heard by anyone that they felt a difference incl. myself) -> compiled with UBER TC 5.4.1
* no longer franco's gamma control by franco -> faux123 gamma control
* incl. security patches from October 2016 (fix CVE-2016-3857, CVE-2016-5340, etc.)
R02
* Manual rebase of HellSpawn on the basic nougat kernel which is the built-in kernel in my NeXus4ever ROM
* This build allows to switch the SELinux mode between permissive and enforcing (you can do this with Kernel Adiutor)
* Added a new build variant for Fake nexus ROM (incl. cpuset feature) as requested by @xenyz
* Omitted a few unnecessary things, e.g.: toggleable software crc, custom sound control, disable IO stats per default, Lock initial TCP window size to 64k, interactive CPU governor mods, impulse CPU governor, mpdecision based hotplug (Bricked), etc.
* Added the latest security patches from November 2016, e.g.: mm: remove gup_flags FOLL_WRITE games from __get_user_pages()
* Doubletap2wake/power suspend support incl. profiles (Center, Full screen, Bottom half, Top half)
* DT2W: fire a small vibration when device is woken up
R03
* Add franco sound control
* Fix SELinux toggle
* This time we really use sd-card filesystem
* Change max readahead size to 512KB
* Revise GPU normal- & overclock frequencies: ... 400MHz, 487MHz
* Optimize apply_slack() for size and speed -- http://lkml.indiana.edu/hypermail/linux/kernel/1201.3/03172.html
* Add latest fixes from franco's nexus 5 kernel
R03 hotfix: solve battery drain while device is in IDLE
* Revert faulty commits (smpboot) which prevent the device from entering deep sleep
R04
* cpufreq: ondemand: MICRO_FREQUENCY_MIN_SAMPLE_RATE to 10K (return to a more sane default value)
* merged latest updates from security bulletin
* USB: msm_otg: Fix a bug in charger detection procedure
* USB: msm_otg: Fix host mode suspend bug
R05
* Linux 3.4.113
* Switch toolchain to uber/arm-eabi-6.x (more details: https://github.com/spezi77/hellspawn...ba15b6cc23629b)
Change log Marshmallow:
r01
* Initial beta release for CM (based on hells-Core N4 kernel b88-M)
* Add MSM OTG hack (ziddey/Chad Froebel/faux123)
* Use simplified thermal driver (franciscofranco)
* Add gamma control (franciscofranco)
* Add tweaks and optimizations from Quanta-Mako kernel (zaclimon)
* Add support for android-gadget-keyboard (zaclimon)
r02
* Beta Release for AOSP/CM
* Add Qualcomm Slimbus driver and use tweaks (CallMeAldy)
* Add fsync on/off support (franciscofranco)
* Add relaxed power savings from NVIDIA (experimental) (Tk-Glitch/zaclimon)
* Add ElementalX CPU governor (flar2)
r03
* Beta Release for AOSP/CM
* CPU-boost: add wake up boost, input boost and minor improvements (neobuddy89)
* Mako-hotplug: add toggle
r04
* Stable Release for AOSP/CM
* Fix USB problem: copying files via MTP was not working (at least in my device)
* Apply marshmallow patch by Dmitry Grinberg (Updated from flo: partialresume, uid-cputime, kernel wakeup reasons)
* MPDecision disabled per default
* Anykernel: disabled ramdisk patcher for now
r05
* Stable Release for AOSP/CM and each variant compiled with UBER TC 4.9.x and 5.3.x
* Partial revert of marshmallow patch by Dmitry Grinberg
* Remove CPU BOOST (caused battery drain and potential conflicts with mako hotplug)
* Add Simple GPU governor (faux123)
* Anykernel: re-enabled ramdisk patcher
r06
* Stable Release for AOSP/CM and each variant compiled with UBER TC 4.9.x and 5.3.x
* Added bricked hotplug driver as alternative (showp1984)
* Replaced franco's simplified thermal driver with bricked thermal driver (showp1984)
* Added more CPU governors: slim (based a lot on elementalX), badass (power-efficient)
* Anykernel: many improvements
r07
* Stable Release for AOSP/CM and each variant compiled with UBER TC 4.9.x and 5.3.x
* Added AutoSMP hotplug driver
* Added PegasusQ CPU governor and removed Slim governor
* Anykernel: set AutoSMP as default while other hotplug driver remain disabled
r08
* From now on the kernel is also compatible to CM-13.0 based roms (thanks to @redj12 and @MrRisan for making me aware of that)
* In order to reduce build time, future builds will always use UBER TC 5.3.x, and ensure compatiblity with AOSP, BS and CM based roms
* Added upstream fixes from CM-13 to improve compatibility and stability
r09
* In order to offer greater flexibility, future builds will always use UBER TC 5.3.x (stable & battery-friendly) and TC 7.0 (experimental)
* Disable msm_mpdecision/bricked hotplug
* Add Alucard Hotplug & introduce Alucard CPU governor
* Enable 487.5 Mhz GPU Overclocking (experimental)
r10
* Fix video recording feature (Thanks to you for letting me about this issue!)
* Add Zen Decision Hotplug (Details. Thanks bbedward)
* Add Smartmax CPU governor (Based on OnDemand & SmartAss2; Usage scenario: Power-efficiency)
* Add powersuspend: new PM kernel driver for Android w/o early_suspend (Thanks yank555-lu & faux123)
* Add further wakelock knobs (Thanks franciscofranco):
** wakeup: add toggle for bluesleep wakelock
** wakeup: add toggle for bluedroid_timer wakelock
** wakeup: add toggles for wlan wakelocks. They are all enabled by default, it's up to the user to turn them off.
* Add quickwakeup (Thanks txuki2005 for discovery.):
** Allow kernel driver to do periodic jobs without resuming the full
system. This option can increase battery life on android powered
smartphone.
r9.5
* In order to reduce battery drain (introduced in r10) I decided to
** Exclude new PM kernel driver for Android w/o early_suspend
** Exclude zen_decision
* Remove the ultra-low CPU frequencies to prevent bad UX
r11 (official)
* Fixed headset not being recognized
* Reduced logspam (nf: uid field in the msg) (big thanks @ivanich for pointing this out)
* Added quite a few tweaks & performance improvements used in franciscofranco's msm-kernel (flo) and ion-storm's Unleashed-N4 kernel
* Replaced deprecated earlysuspend hooks with lcd notify
* msm-sleeper: upgrade to version 2 (thanks flar2) & change to use lcd-notifier.
* Updates for CPU hotplug drivers
** ALUCARD_HOTPLUG: Implemented use msm rq stats. fixed issue with min. CPUs online.
** zen decision: re-introduce & deactivate battery threshold (like lightning!) (big thanks @txuki2005 for pointing me to a version that has been adapted to 3.4.x branch)
* Updates for CPU governors
** Abandon badass: causes too much UI stuttering/scrolling lags
** Ondemand: use optimizations from Semaphore kernel (credits stratosk)
** Smartmax: update for battery savings. Hotfix NULL pointer dereference.
** Introduce Impulse governor (Experimental) (credits neobuddy89)
** Introduce intelliminmax (credits faux123): intellimm governor is designed to work with the newer SOCs with fixed voltage rails (ie MSM8974+ SOCs). It is designed to work within those fixed voltage ranges in order to maximize battery performance while creating a smooth UI operations.
** Intellimm: fully sync w/dorimanx
** Alucard: tune for performance and to reduce idle drain. enable io is busy on alucard.
** Introduce Interactive: reduce timer with screen off (might be interesting for people who are listening music and experience audio issues due to measures for power saving while screen is off)
r11 dev notes:
I have tried many things & tested a lot of different configurations recently, e.g. to add back cpuboost driver, and also to add msm_limiter (replacement for msm_sleeper). Also worth to mention.. I have stabilized intelli_plug, which was temporarily added into r11-test-builds, but then it turned out that it has had impacts on the overall performance.. all those cool stuff didn't help to further improve this kernel, so I decided to abandon it in the official r11 build.
At this point I would like to thank two awesome guys: @dragos281993 @Cristiano Lira who supported me extremely with testing and help me on the right track! BTW, I am constantly measuring changes with help of Antutu and my own eyes..
Rumors:
Last but not least.. You might be interested in learning about how my "experiments" with lazyplug have went. Well, there is not much to say, except for it didn't work. And hence I decided to give up.
r12
* Fix camera crash (thanks zaclimon).
* Improve battery life and phone sleep state by revert lcd_notify.
* Add system wide Linaro lsk-v3.10 based workqueues aligned towards power saving.
* Patch to Linux 3.4.112
* Add tweaks from mirage kernel (thanks mrg666)
r13 (official)
* Merge UPSTREAM fixes from msm-flo-3.4-mm-mr2
* Add a few performance tweaks from mirage kernel (thanks mrg666)
* Add latest version of dyn_hotplug from stratosk (lollipop branch)
* Switch to latest ubertc 5.4.1
* cpufreq: interactive: Use hellsgod's defaults
* cpufreq: conservative: add back cpufreq_notify_utilization. Required to work with mako_hotplug.
* Remove impulse, thunderX & thunderplug
r14 (official)
* Add interactive updates from myfluxi
* Merge July bulletin fixes (thanks CM & thanks @txuki2005)
r15 (official)
* Fix for deep sleep issue/kernel panic by making a revert of smpboot related commits
* cpufreq: interactive: set timer_rate to 60ms on screen off (previously 50ms) (thanks franco)
* Performance improvements (thanks franco)
* Faster boot up through increased timer frequency (thanks franco)
* Set rate to 250 Hz for mako (thanks zaclimon)
r16 (official)
* Included CPU governor stockdemand
* Added Voltage interface for GPU
* GPU: Add 27MHz GPU idle frequency for battery savings
* Power-efficiency: series of power efficiency patches from NVIDIA
* Many tweaks for stability and to reduce lags/improve battery life
* Enable quickwakeup driver
* AIO: Optimization for SSD-only machines
* Security patches: crypto: arm/aes update NEON AES module to latest OpenSSL version
* RAM optimizations: enable KSM and KSM check page
* Disable OOB interrupt when WLAN is off
* dyn_hotplug: optimize for performance
r17 test (currently only for AOSP and BS ROM)
* Security update: Fix CVE-2016-5340 (Quadrooter Vulnerability)
* A few performance related enhancements (sched_clock, framebuffer imageblit function)
* Add toggle to control software CRC
* Updated the kernel installer script to reduce logcat spam (powerhal) and to disable mpdecision / thermald
r18 (official) CM COMPATIBLE
* Revert: CPU governor stockdemand (not working with CM-based ROMs)
* Revert: updates for kernel installer script (not working with CM-based ROMs)
* Revert: series of power efficiency patches from NVIDIA (has introduced a performance decrease)
* Ondemand patch: update frequency when limits are relaxed (currently ondemand doesn't do that when limits are relaxed, wasting power on systems with relatively low sampling rate.)
* AIO SSD ONLY: enable the SSD-only optimization for the Linux Asynchronous IO
framework.
FAQ:
Pac-Man said:
And... What is the difference between normal and CPUSET?
Click to expand...
Click to collapse
jer_ying_fd said:
It's meant to be used ONLY with fake nexus rom, because it is the only rom with the modifications to use CPUSET properly. As a result, using it with another rom will result in one core being used only.
Click to expand...
Click to collapse
What's the difference between UBERTC-5.x, -6.x and -7.0
Click to expand...
Click to collapse
Tc 5.x and 6.x are the most up-to-date and stable toolchains provided by UBER devs. Tc 7.0 was temporarily in use (experimental).
Why do I need so many different CPU governors and what are they for?
Click to expand...
Click to collapse
1: OnDemand
Ondemand is one of the original and oldest governors available on the linux kernel. When the load placed on your CPU reaches the set threshold, the governor will quickly ramp up to the maximum CPU frequency. It has excellent fluidity because of this high-frequency bias, but it can also have a relatively negative effect on battery life versus other governors. OnDemand was commonly chosen by smartphone manufacturers in the past because it is well-tested and reliable, but it is outdated now and is being replaced by Google's Interactive governor.
2: Performance
The performance governor locks the phone's CPU at maximum frequency.
3: Conservative
This governor biases the phone to prefer the lowest possible clockspeed as often as possible. In other words, a larger and more persistent load must be placed on the CPU before the conservative governor will be prompted to raise the CPU clockspeed. Depending on how the developer has implemented this governor, and the minimum clockspeed chosen by the user, the conservative governor can introduce choppy performance. On the other hand, it can be good for battery life.
The Conservative Governor is also frequently described as a "slow OnDemand". The original and unmodified conservative is slow and inefficient. Newer and modified versions of conservative (from some kernels) are much more responsive and are better all around for almost any use.
4: Interactive
Interactive scales the clockspeed over the course of a timer set by the kernel developer (or user). In other words, if an application demands a ramp to maximum clockspeed (by placing 100% load on the CPU), a user can execute another task before the governor starts reducing CPU frequency. Because of this timer, Interactive is also better prepared to utilize intermediate clockspeeds that fall between the minimum and maximum CPU frequencies. It is significantly more responsive than OnDemand, because it's faster at scaling to maximum frequency.
Interactive also makes the assumption that a user turning the screen on will shortly be followed by the user interacting with some application on their device. Because of this, screen on triggers a ramp to maximum clockspeed, followed by the timer behavior described above.
Interactive is the default governor of choice for today's smartphone and tablet manufacturers.
5: BadAss (has been removed in r11)
Badass removes all of this "fast peaking" to the max frequency. To trigger a frequency increase, the system must run a bit with high load, then the frequency is bumped. If that is still not enough the governor gives you full throttle. (this transition should not take longer than 1-2 seconds, depending on the load your system is experiencing)
Badass will also take the gpu load into consideration. If the gpu is moderately busy it will bypass the above check and clock the cpu to max frequency. If the gpu is crushed under load, badass will lift the restrictions to the cpu.
6: Pegasusq
The Pegasusq is a multi-core based on the Ondemand governor and governor with integrated hot-plugging. It is quite stable and has the same battery life as Ondemand. Ongoing processes in the queue, we know that multiple processes can run simultaneously on. These processes are active in an array, which is a field called "Run Queue" queue that is ongoing, with their priority values arranged (priority will be used by the task scheduler, which then decides which process to run next).
To ensure that each process has its fair share of resources, each will run for a certain period and will eventually stop and then again placed in the queue until it is your turn again. If a program is terminated, so that others can run the program with the highest priority in the current queue is executed.
7: Smartmax
Smartmax is a mix between Ondemand and Smartassv2. It behaves mostly like Smartass with the concept of an "ideal" frequency. By default this is configured for battery saving, so this is NOT a gaming or benchmark governor! Additionally, to make it "snappy", Smartmax has "touch poke". So input events from the touchscreen will boost the cpu for a specific time to a specific frequency. Developed by XDA user Maxwen.
8: IntelliMM
A rewrite of the old Min Max governor and has 3 cpu states: Idle, UI and Max. Intelliminmax (intellimm) governor is designed to work with the newer SOCs with fixed voltage rails (ie MSM8974+ SOCs). It is designed to work within those fixed voltage ranges in order to maximize battery performance while creating a smooth UI operations. It is battery friendly and spends most of the time at lower frequencies.
9: Impulse
An improved version of interactive modified by neobuddy89. Impulse aims to have a balance between battery and performance just like interactive but has some tweaks to save battery.
10: ElementalX
The ElementalX CPU governor has been specifically designed and tuned to get the best balance between battery life and performance. By default, it is more conservative than Ondemand. During routine usage, the CPU frequency does not ramp up very often. If gboost is enabled, during gaming or any other graphics intensive situation, the CPU frequencies boost much easier in order to maintain maximum performance. There is also a built in input boost.
11: Alucard
A favourite choice and one of the original governors that Alucard_24 made. Alucard is based on ondemand but has been heavily tweaked to bring better battery life and performance. It has been known to be battery friendly without sacrificing much performance.
12: Hellsactive
A heavily modified intelliactive governor by hellsgod that has been tweaked to improve battery life. Hellsactive is less aggressive compared to intelliactive so the battery life will be more like the original interactive.
Why do I need so many different GPU governors and what are they for?
Click to expand...
Click to collapse
1: Simple
It's a new governor for the gpu frequency scaling. It will allow a more fine grained control over how the gpu scales up and down then the previous ones. Depending how you tune it, it can be better for battery life or performance.
2: Ondemand
Much like the CPU governor, Ondemand will ramp up the frequency when a load is detected. A good balance between performance and battery savings. This is a widely used governor in qualcomm devices.
3: Powersave
Like the CPU governor, this keeps your GPU running at the lowest possible frequency. Best battery life, extreme lag in games.
4: Conservative
Like the CPU governor, this one is the opposite of Interactive; it is slow to ramp up the frequency, then quickly drops the frequency once the GPU is no longer under a certain threshold of load.
5: Performance
As the name suggests, this keeps your GPU running at the max frequency. This is a governor if you want the best possible experience in games but you don't care about your battery life.
Why do I need so many different CPU Hotplug drivers and what are they for?
Click to expand...
Click to collapse
1: MPDecision (disabled by intension -- do not even think of enabling it)
Qualcomm's default hotplugging driver. One of the most widely used hotplug drivers in all android devices.
2: Alucard-Hotplug
A great hotplugging driver by Alucard. It is known to be very battery friendly on devices.
3: Mako-Hotplug
A new popular hotplugging driver found in Francokernel. This is a highly configurable driver that can be configured to use dual core for light-loads and quad-core for heavy loads.
4: Zen-Decision
ZEN only onlines all cores when screen is on, it also takes thermal events into account and wont online any core back, if you're under 15% battery, or currently have a thermal event because of heat. So in the end it isn't a "real" hotplug driver, because it doesnt have any code for active hot plugging in it. That means you can't change its behavior.
5: Bricked Hotplug (has been temporary added, but then removed again from this kernel)
Conservative hotplug driver by showp1984. It is based on mpdecision but has been optimized for better balance between battery life and performance.
6: msm_sleeper (always on by default)
The main feature with this hotplug is that you can customize the screen off frequency. Two cores are always on, the third and fourth are independent and come online if needed. By default, if the load is over 80 for 400ms another core comes online. The third and/or fourth cores stay online as long as the load demands it or for a minimum of one second. While the screen is off, it goes down to a single core. Created by flar2.
7: AutoSMP
A highly-efficient hotplug driver by mrg666, works in-sync with the CPU governor to enable off-line cpu cores when the the CPU frequency reaches a high threshold and still more compute power is needed. Therefore, touch boost bloat is removed.
What are recommended settings for performance?
Click to expand...
Click to collapse
For a good performance you don't have to tweak anything, but use my defaults (AutoSMP/Hellsactive).
Using ElementalX as CPU governor will apply a GPU boost when GPU is at max power which should have a positive effect on gaming performance.
Using Pegasusq as CPU governor allows you to reach the highest end score in Antutu Benchmark tool.
What are recommended settings for increased battery life?
Click to expand...
Click to collapse
Change CPU hotplug to Alucard and CPU governor to Smartmax or Intellimm.
Partially based on: http://androidmodguide.blogspot.de/p/blog-page.html
Can I use UKM or HKM to control kernel settings?
snacs said:
Can I use UKM or HKM to control kernel settings?
Click to expand...
Click to collapse
HKM should work as this kernel is hells-core based. It seems that HKM is no longer available in Playstore. Do you have a download link?
I don't know about UKM, I personally never used it. Could you give it a shot?
But I can tell you that it works with KernelAdiutor.
Cheers!
Another thing to flash! Really thanks for support. I will try it ASAP and give feedback.
Wysłane z mojego Nexus 4 przy użyciu Tapatalka
spezi77 said:
HKM should work as this kernel is hells-core based. It seems that HKM is no longer available in Playstore. Do you have a download link?
I don't know about UKM, I personally never used it. Could you give it a shot?
But I can tell you that it works with KernelAdiutor.
Cheers!
Click to expand...
Click to collapse
HKM here. Sound control never work for me in KernelAdiutor, and it don't have C-States control too. I'll try UKM and post here later.
Installed, now just testing how it works
snacs said:
HKM here. Sound control never work for me in KernelAdiutor, and it don't have C-States control too. I'll try UKM and post here later.
Click to expand...
Click to collapse
HKM works in general.
You should not enter Display Control, otherwise FC. It's because the kernel has Franco's gamma control instead of the one by faux123.
Btw, I have added performance profiles (francescofranco). But I am not sure how to get them working. But I believe that this can be achieved with Franco's kernel manager..
Kernel is smooth. Working great with cooperation with DU10.0. Elementalx is Nice governor, no random reboots, cold and no glitches here.
Wysłane z mojego Nexus 4 przy użyciu Tapatalka
Working quite nicely with BrokenOS as well. Love the addition of the USB-OTG. Thanks!
str3tch72 said:
Kernel is smooth. Working great with cooperation with DU10.0. Elementalx is Nice governor, no random reboots, cold and no glitches here.
Wysłane z mojego Nexus 4 przy użyciu Tapatalka
Click to expand...
Click to collapse
¿What's DU10.0?
Enviado desde mi Nexus 4 mediante Tapatalk
Dirty Unicorns.
Wysłane z mojego Nexus 4 przy użyciu Tapatalka
r03 is up.
How about adding kexec-hardboot patch into it ?
Lycris11 said:
How about adding kexec-hardboot patch into it ?
Click to expand...
Click to collapse
Already therein, was added by hellsgod.
I gotta say, this kernel is slick as **** man. Kudos to you, @spezi77
Sent from my Nexus 4 using Tapatalk
Best kernel for smoothness and battery life. Definetely. @spezi77 you are a guarantee of high quality work, really. ?
Wysłane z mojego Nexus 4 przy użyciu Tapatalka
Can I dirty flash r3 over r2?
BTW, UKM works very well
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Lean, stable and buttersmooth.
These shall be the characteristics of my REVIVAL kernel for the Nexus 4 (MAKO).
Why should I use this kernel in my Nexus 4?
The "revival" kernel aims at bringing new life into your worn out NEXUS phone and is meant for those who prefer basic tweaking. This kernel will be the more conservative project, as I plan to put only the essential stuff into it like just a few governors and hotplug drivers, gamma control, UV, dt2w and some other basic stuff..
Note: This kernel is made for Android 6.0.1 (Marshmallow) and maybe later versions (who knows).
Features:
Linux 3.4.112 based on the latest sources of Semaphore kernel by Stratos Karafotis (Big thanks)
Removed lots of useless debugging and logs. Added tweaks/optimizations for increased performance. Some of the tweaks were hand-picked from kernels like Quanta-Mako (thanks zaclimon), TaUrUs_Kernel (thanks txuki2005), Unleashed (thanks ion-storm), kernel-Nexus4 (thanks motley-git), thunderzap (varunchitre15) and Mirage (thanks mgr666)
Compiled with the latest Cortex-A15 optimized UberTC 5.4.1 with some kernel based optimizations: graphite, NEON
Compatible to all Android 6.x ROMs based on AOSP and CM (incl. BeanStalk of course)
MultiROM compatible (Kexec patch)
ARM auto_hotplug (thanks thalamus; enhanced by motley) removed in r02
Alucard-hotplug (Alucard24)
AutoSMP-hotplug (Mgr666)
Dyn_hotplug set as default (stratosk)
mako_hotplug (franciscofranco)
msm-sleeper: upgrade to version 2 (flar2): allows to set a max screen off frequency
Linaro power oriented workqueues (thanks mrg666 & franciscofranco)
CPU Governors: ondemand (tweaked by stratosk; default), stockdemand (for those who like it stock and battery-friendly), yankdemand (a more battery-friendly derivative of ondemand), conservative, interactive (tweaked by franciscofranco), performance, userspace, powersave, elementalX (flar2), hellsactive (hellsgod), smartmax (maxwen)
GPU Governors: conservative, ondemand, performance, interactive (franciscofranco), simple (faux123)
GPU Overclocking (up to 487.5MHz) and ultra low IDLE frequency (27MHz)
IO schedulers: cfq, deadline, noop, sio, tripndroid
Customized in-kernel thermal solution smart scaling, dynamic polling, and configurable throttle temp
Gamma control by faux123 (with nougat r02) / gamma control by franciscofranco (marshmallow r03 until r08)
Dynamic management of dirty page writebacks (Christopher83)
Earlysuspend: speedup late resume (faster wakeup of the device)
Relaxed power savings from NVIDIA
Motorola MSM mcmcpy enhancements
Userspace CPU & GPU Voltage Control
Speaker Amp & Sound Control (faux123)
USB force fast charging (Chad Froebel/faux123)
DT2W/power suspend support and Touch wake (stratosk)
Exponential brightness driver (stratosk)
USB-OTG Support (ziddey/faux123)
Knobs for Arch Power and Gentle Fair Sleepers
Knobs for controlling wakeups: bluesleep, bluedroid_timer, wlan, sensor_ind and msm_hsic_host
Qualcomm Slimbus driver incl. tweaks
Partial-resume framework & quickwakeup driver
AIO optimization from Linux 3.8+ (faux123)
Tested on the following ROMs:
* Pure Nexus (AOSP)
* BeanStalk (CM-13 based)
Known issues (marshmallow release):
* Changing CPU governor to yankdemand, stockdemand or hellsactive doesn't work on latest Purity ROM, Resurrection Remix M v5.7.2, CM-13 and possibly on further CM-13 based custom ROMs. Therefore avoid those governors or your phone will freeze-in and then goes into a soft reboot.
DISCLAMER
Your warranty is now void.
I am not responsible for bricked devices, dead SD cards, thermonuclear war, or you getting fired because the alarm app failed. Please do some research if you have any concerns about features included in this Kernel before flashing it! YOU are choosing to make these modifications, and if you point the finger at me for messing up your device, I will laugh at you.
Click to expand...
Click to collapse
Download:
Nougat releases (only AOSP for now):
N4-revival-nougat-r01.zip
N4-revival-nougat-r02.zip
Latest release for marshmallow:
N4-revival-marshmallow-r08-AOSP-UBERTC-5.4.zip
N4-revival-marshmallow-r08-CM-UBERTC-5.4.zip
Older releases:
>HERE<
Installation:
1. Wipe cache/dalvik cache
2. Flash kernel zip over stock kernel of the ROM
3. Wipe cache/dalvik cache again (optional)
4. Reboot system
Change Log:
r01 (2016-06-25)
* Initial release
r02 (2016-06-26)
* Replace auto_hotplug with mako_hotplug
* Added extra franco tweaks: use unbound wq, run the main work only once every second if special cases apply, increase the work schedule time when dual-core or quad-core mode is active, from 1 to 2 seconds
* Added 27MHz GPU idle frequency
* Added sensor_ind wakeup knob
r03 (2016-07-10)
* Revert squashed sound control commits and add back faux123 original sound control v3.6
* Add franciscofranco's gamma control
* [backport] Hotplug thread infrastructure
* softirq: Use hotplug thread infrastructure
* rcu: Yield simpler
* rcu: Use smp_hotplug_thread facility for RCUs per-CPU kthread
* Merge July bulletin fixes (thanks @txuki2005)
r04 test build (2016-07-17)
From Franco's release for Hammerhead:
- WiFi driver: improved battery life, performance & security updates
- cpufreq: interactive: set timer_rate to 60ms on screen off (previously 50ms)
- cfq-iosched: improvements
From Franco's release for Flo (thanks zaclimon):
- Performance improvements
- Faster boot up
r05 (2016-08-01)
* Sound: automatic gain control: increase max gain
* Enabled kernel AIO optimization from Linux 3.8+ (faux123)
* Upstream fixes from flo kernel (31st July)
* Reduce log spam messages
* I/O Boost (dorimanx) and optimizations (binder, futex, mutex, rtmutex)
* Added CPU governor stockdemand (unmodified version; for those who like it stock and battery-friendly)
Changes taken over from r04 test build:
* From Franco's release for Hammerhead:
- cpufreq: interactive: set timer_rate to 60ms on screen off (previously 50ms)
- cfq-iosched: improvements
* From Franco's release for Flo (thanks zaclimon):
- Performance improvements
- Faster boot up
r06 test (2016-08-06)
* Power-efficiency: series of power efficiency patches from NVIDIA
* Many tweaks for stability and to reduce lags/improve battery life
* Enable quickwakeup driver
* AIO: Optimization for SSD-only machines
* Security patches: crypto: arm/aes update NEON AES module to latest OpenSSL version
* RAM optimizations: enable KSM and KSM check page
* Disable OOB interrupt when WLAN is off
* dyn_hotplug: optimize it for decreasing lag and better sound quality (Credits @quentin2260)
* Ramdisk: new defaults: enable KSM; Decrease GPU default frequency to 200MHz to save energy (thanks zaclimon); CPU: Disable by default the 3rd and the 4th core; add script to reduce logcat spam: powerhal and disable mpdecision / thermald.
r07 (2016-08-12)
Addresses all of the r06 test (2016-08-06) changes as well as the following:
* Security update: Fix CVE-2016-5340 (Quadrooter Vulnerability)
* Compiled with -03
* Add CPU governor: yankdemand (a more battery-friendly derivative of ondemand)
* Add GPU governor: simple (faux123)
* Updated the kernel installer script to reduce logcat spam (powerhal) and to disable mpdecision / thermald
r08 (2016-08-14)
Addresses all of the r07 changes as well as the following:
* Rebased the kernel in order to leave faulty stuff behind as quite a few changes were in contradiction to battery-life and fluidness
* Added Improved framebuffer imageblit function
* Add toggle to control software CRC
* Here is a quick overview of what has been left behind: Linaro-power efficient wq, timer upstream updates and smp related updates)
r01 for nougat (2016-10-08)
* Initial AOSP compatible release with focus on Android 7.x (even though previous builds already worked in nougat ROMs)
* Remove toggleable software crc (potential reason for data loss and reboots)
* Set default i/o scheduler to NOOP for smoother boot animation and an increased overall performance
* Set max readahead value to 256KB (Fair enough for a bit more performance without sacrificing latency)
* Reintroduce Linaro-power efficient wq from Kernel 3.10 (directly picked from franciscofranco's hammerhead kernel)
* Add Latest Version of Alucard HotPlug (allows for energy savings)
* mako_hotplug: don't use an unbound wq (reverted a few things to better cope with our mako)
* mako_hotplug: use more accurately fitting defaults for mako (default CPU freq unplug limit: 1242MHz / default load_threshold: 70% for a slightly increased performance boost)
* cpufreq: interactive: remove hispeed_freq init restriction. How dare you to force me not to 'disable' hispeed_freq? (Thanks franciscofranco)
* DT2W: fire a small vibration when device is woken up (Ported from franciscofranco's shamu kernel)
r02 for nougat (2016-10-09)
* Replace franco's gamma control with the one by faux123
* Remove CPU governors being incompatible with this kernel (hellsactive, stockdemand, yankdemand)
* Introduce intelliactive CPU governor by faux123
Credits:
Special thanks to
- AOSP
- stratosk
- hellsgod
- zaclimon
- txuki2005
- yoinx
- Cl3Kener
- franciscofranco
- faux123
- eng.stk
- stratosk
- show-p1984
- mrg666
- Defconoi
- neobuddy89
- flar2
- CallMeAldy
- AK
- DespairFactor
- motley
- thalamus
- yank555-lu
- Tk-Glitch
- Christopher83
- yank555-lu
- and anyone else who is not listed here, but deserves my gratitude!
And thank you very much for your donation :good:
- @r4yN
XDA:DevDB Information
Nexus 4 Revival, Kernel for the Google Nexus 4
Contributors
spezi77
Source Code: https://github.com/spezi77/kernel_msm
Kernel Special Features:
Version Information
Status: Stable
Current Stable Version: r02
Stable Release Date: 2016-10-09
Current Beta Version: r01
Beta Release Date: 2016-10-08
Created 2016-06-25
Last Updated 2016-10-08
Kernel tweaks illustrated
In order to use the tweaks included into this kernel, you can use:
1. KernelAdiutor-Mod (updated 2016/11/20):
--> My personal build which allows to select the semaphore dt2w profiles (exclusive feature not yet supported in the build by David 617)
--> KA-Mod build by David 617 which will provide the latest updates at some point in time
2. or install Synapse.
@spezi77, can you change min GPU freq to 27MHz and include mako hotplug in next build if it isn't ask much.
Btw, phone is smoother than ever now. Thanks, bro!
Cristiano Lira said:
@spezi77, can you change min GPU freq to 27MHz and include mako hotplug in next build if it isn't ask much.
Btw, phone is smoother than ever now. Thanks, bro!
Click to expand...
Click to collapse
I have expected that you will ask for something like mako hotplug.
I will consider it. Anyway, I have already prepared a few of the cpu governors for being used with it. I have seen quite a few variations of Franco's mako hotplug. Not sure yet, which would be the best choice.
Sent from my mako using XDA Labs
spezi77 said:
I have expected that you will ask for something like mako hotplug.
I will consider it. Anyway, I have already prepared a few of the cpu governors for being used with it. I have seen quite a few variations of Franco's mako hotplug. Not sure yet, which would be the best choice.
Sent from my mako using XDA Labs
Click to expand...
Click to collapse
You know me. I think the one used in Hellspawn is nice. And one thing I would like to report is that min cpu cores online setting from auto hotplug seems to not be working, at least in ka-mod.
Edit: tryed synapse and with it the situation is worse: there is not even a checkbox to activate auto hotplug.
@ spezi77 May I know the reason for another Kernel by you
knm1574 said:
@ spezi77 May I know the reason for another Kernel by you
Click to expand...
Click to collapse
1. Hellspawn is for hardcore tweakers cause it's got an insane amount of features and "Revival" has a limited amount for even better stability.
2. "Hellspawn" is based on "hellscore" while "Revival" is based on "semaphore". So they're 2 different kernels.
If you know that you'll tweak every single value of the kernel, or want to have those options there just in case, then Hellspawn is the kernel you want to use. But if you want to do some basic tweaking, "Revival" is the best for you.
Cheers !
Sent from my Nexus 4 using Tapatalk
Does kernel supported F2FS ?
darkmatterx said:
Does kernel supported F2FS ?
Click to expand...
Click to collapse
No, it doesn't. But don't worry. There's no improvement using f2fs, in any department. It's placebo. The benchmarks may show slightly better results but in real world use, the phone behaves exactly the same, it gives the exact same performance and battery life. That's the reason both Stratosk and Hellsgod didn't even bother adding f2fs to their kernels.
Sent from my Nexus 4 using Tapatalk
Cristiano Lira said:
You know me. I think the one used in Hellspawn is nice. And one thing I would like to report is that min cpu cores online setting from auto hotplug seems to not be working, at least in ka-mod.
Edit: tryed synapse and with it the situation is worse: there is not even a checkbox to activate auto hotplug.
Click to expand...
Click to collapse
Hum, I just had a look into the min/max cpu cores online setting. The problem does not originate from the kernel tweaker app(s). The app just reads and writes values from/into the sysfs path, and I didn't find any logical issues here. So, the min/max online cpus feature seems to be implemented in a slightly hacky way..
As of now, I have no idea how to improve this without getting a big headache.. :silly:
Simplest solution would be to ditch auto_hotplug and replace it with mako hotplug. :angel:
Edit: BTW, I did a fresh build (r02) with mako hotplug and 27MHz idle GPU freq.
Flashed today - everything looks nice and smooth so far. A think that its a little more stable and fast than HellSpawn
However I don't get all those colour profiles - where is my favourite alucard8888 and Mohit Galaxy Kehlu Mod?
I can't find the perfect colour settings
The kernel looks very nice @spezzi77. The only thing that's missing, is the gamma control from Hellspawn. The stock control doesn't really give us any tweaking options. I'm used to "Obsanity Amoled" so I can't really go without it or at least be able to tweak it the way I prefer. I'll be waiting for that to be added. Other than that, you should not add anything else cause everything is nice and stable this way.
Sent from my Nexus 4 using Tapatalk
---------- Post added at 01:24 AM ---------- Previous post was at 01:21 AM ----------
Jakub_Z. said:
Flashed today - everything looks nice and smooth so far. A think that its a little more stable and fast than HellSpawn
However I don't get all those colour profiles - where is my favourite alucard8888 and Mohit Galaxy Kehlu Mod?
I can't find the perfect colour settings
Click to expand...
Click to collapse
At the moment the kernel has Stratosk's gamma control which is very close to the stock one. Franco's control is what we want for us to be able to change profiles or tweak them. I'm sure spezzi will add that in a future build.
Sent from my Nexus 4 using Tapatalk
Glad to hear that!
Oh and one more thing - dunno if anyone else noticed that/has that bug/feature
LED notification sometimes is pulsing with all rainbow colours instead of those that are set in my ROM. I remember that happening on some kernel - but right now I can't remember which one
@spezi77, I'm feeling that battery is worse in r02 in comparison with r01, I was having some good results with r01 despite using ondemand and dyn with 2 cores min but now with r02 it's not that good even using smartmax. Thanks for your commitment.
Kernel Auditor got a new sweet material design update!!! OMGGGG
sidnoit22 said:
Kernel Auditor got a new sweet material design update!!! OMGGGG
Click to expand...
Click to collapse
The beta?
Sent from my Nexus 4 using Tapatalk
dragos281993 said:
The beta?
Sent from my Nexus 4 using Tapatalk
Click to expand...
Click to collapse
Yeah man the Beta.
Any recommendations for good balance between battery life and performance :
CPU governor
I/O scheduler
GPU governor
Max GPU 487 MHz? Not too much...
Or stay like it is...
Wysłane z mojego Nexus 4 przy użyciu Tapatalka
sidnoit22 said:
Yeah man the Beta.
Click to expand...
Click to collapse
Yeah, it looks nice.
Sent from my Nexus 4 using Tapatalk
This is SomeFeaK kernel, based on Squid2's kernel for device codename "osprey".
This is the first time I build a kernel, also, the first time I post something in DevDB. Hope you like this kernel and please expect many releases.
The kernel should work in stock and custom ROMs, with any variant. Tested and working in XT1601 (LATAM).
Disclamier:
Code:
[COLOR="red"]* Include <std_disclaimer.h>
* Your warranty is now void.
* I am not responsible for bricked devices, dead SD cards,
* thermonuclear war, or you getting fired because the alarm app failed. Please
* do some research if you have any concerns about features included in this ROM
* before flashing it! YOU are choosing to make these modifications, and if
* you point the finger at me for messing up your device, I will laugh at you.
*[/COLOR]
Features:
From squid2's r19 build:
Moderately undervolted
Updated to Linux 3.10.104
Synced with latest CodeAurora changes
Improved memory management
Improved memory caching backported from Linux 3.15
Improved storage performance
Optimized ARM crypto routines
Updated f2fs and WiFi drivers
FIOPS and BFQ I/O schedulers
Lionfish CPU governor
IntelliPlug CPU hotplug (by faux123)
KCAL MDP5 colour control (by savoca)
Improved zRAM backported from Linux 4.9
Vibration intensity control
Compiled with Linaro GCC 6.2 and optimized for Cortex A53
Stripped down and optimized configuration
Added by me:
Governors: impulse and elementalX, yankactive, zzmoove, darkness and bioshock.
Double tap to wake (DT2W).
Permanently fixed screen flickering: SELinux works fine in permissive or enforcing mode.
Enabled advanced TCP congestion managers: veno, westwood, vegas, illinois, and more.
Drastically improved CPU thermal control: should react approximately from 40°C and end if lower than 35°C are reached. Otherwise it'll keep trying to cool the device, protecting, mainly, the battery.
Automatic thermal throttling and CPU cooling driver added and enabled.
Enabled CPU current throttling driver.
Use the hidden LED as a notification light.
Enabled forced consistency checks for F2FS (/data).
Multi-Cluster Power Management (less CPU battery drain).
KSM (Kernel Samepage Merging).
Advanced Power Management (emulated).
SMT (Simultaneous Multi-Threading).
Fixed temperature handling.
Dev info:
In order to make use of the new hidden LED's available behavior, it's needed that some Java developer (not me, I don't know a thing about Java) to develop an application. Here I'll give you a sort of "API" that you should use to wake up the required triggers for "if there's a notification or not".
To turn on the LED set trigger to default-on:
Code:
su -c "echo default-on > /sys/devices/soc.0/leds-atc-e3be1600/leds/charging/trigger"
To turn off the LED set trigger to none:
Code:
su -c "echo none > /sys/devices/soc.0/leds-atc-e3be1600/leds/charging/trigger"
I've also added the required modules for the LED to be able to process a hold on during "x" milliseconds and keep off during "x" milliseconds. To set it do it like as follows.
Switch trigger to timer:
Code:
su -c "echo timer > /sys/devices/soc.0/leds-atc-e3be1600/leds/charging/trigger"
Now, set time on during 0,5 seconds (500 milliseconds):
Code:
su -c "echo 500 > /sys/devices/soc.0/leds-atc-e3be1600/leds/charging/delay_on"
Now, set time off during 1 second (1000 milliseconds):
Code:
su -c "echo 1000 > /sys/devices/soc.0/leds-atc-e3be1600/leds/charging/delay_off"
For now, you must have a charger connected. It seems to be a hardware issue but I'll try to investigate it anyways.
Click to expand...
Click to collapse
Release history:
Code:
4.25 (stable): June 13, 2017:
Kernel changes:
- ksm: updated code and better management, enabled checking before swapping pages, reduce cpu
- swap: updated code, got better management by adding some compression drivers.
- input/soc: added powersuspend driver, this will help DT2W work better.
- random: added frandom support, decrease CPU load for entropy generation.
- mem: enabled memory changes tracking.
- sched: added tripndroid, vr, zen.
- usb: enabled fast charge by default.
Other changes: no tool required to setup anymore, default setup won't overheat your device nor damage it; due to recently added support for surnia, every new release will be respectively named with a suffix like '-harpia' or '-surnia'; new project logo (for DevDB), thanks to @lecron89 .
4.18 (stable): June 12, 2017
- cpu: rolled back extreme overclock, new max clock: 1593 MHz.
- gpu: rolled back extreme overclock, new max clock: 465 MHz.
- cpufreq: fix build for 'darkness' governor.
- cpufreq: added new CPU governors: yankactive, zzmoove, darkness and bioshock.
4.00 (stable): June 9, 2017
- cpu: undervolted and overclocked, max freq. 1785 MHz (recommended: 1593Mhz).
- gpu: overcloked, max freq. 650 MHz.
- flashing: fixed bug where the touchscreen would become unresponsive after any kernel update.
3.90 (stable): June 8, 2017
- usb: use your device as an USB gadget, including keyboard and mouse.
- general: updated defconfig for harpia at source to match new features.
3.81 (stable): June 7, 2017
- wlan: updated drivers, solved remaining crashes and battery drain.
- prima: updated drivers.
- usb: added support for xpad joysticks (XBOX).
- cpu: fixed hotplugging driver "thunderplug", used to crash the device while allowing the user to pick "octa-core mode" when it's a quad-core device.
- cpu: hotplugging driver "alucard", default minimum of 1 (one) cpu online.
- general: performance improvements for touchscreen, GPU and variables definition.
3.61 (stable): June 4, 2017
- Added S2S (Sweep to Sleep): swipe from the navbar from right to left or from left to right to make the device go to sleep.
3.60 (stable): June 4, 2017
- In the stock ROM, the audio won't skip anymore (tested).
- The wlan driver shouldn't crash again (updated with Heliox sources).
- Re-added missing Adreno Idler driver.
3.52 (stable): June 1, 2017
- Hotfix: DT2W won't freeze the screen anymore.
3.51 (stable): May 31, 2017
- Hotfix: re-added missing hotplug driver (thunderplug).
3.5 (stable): May 31, 2017
- Reverted patches for sdcardfs (they broke the media scanner).
- USB fast charge.
- FauxSound gain control.
3.11 (stable): May 29, 2017
- Patches for sdcardfs.
- Patches for wlan.
- Patches for less power consumption.
- Re-added missing features: KSM (Kernel Samepage Merging) and TCP congestion control algorithms (veno, illinois, westwood and vegas).
3.0 (stable): May 29, 2017
- Added governors: impulse and elementalX.
- DT2W (Double tap to wake).
- Adreno Idler (reduce GPU frequency and resources if inactive).
- Added hotplug drivers: allucard and thunderplug CPU.
2.1 (stable): Februrary 8, 2017
- Rolled back to default SELinux setup.
- Switched default GPU governor from "msm-adreno-tz" to "simple_ondemand" for better battery and performance balancing.
- Fixed screen flickering bug by disabling debugging in graphics card. (SELinux socket overflow).
- Fixed noisy output if using audio MODs by disabling aggressive debugging for sound card. (SELinux socket overflow).
2.0 (stable): February 5, 2017
- Permanently fixed the screen flickering: you won't see any flickers while running SELinux in permissive or enforcing mode. This is going to work even if you build the kernel from source.
1.3 (stable): January 31, 2017
- Enabled advanced TCP congestion managers: veno, westwood, vegas, illinois, and more.
- Set default TCP congestion manager to "veno" for lesser lags while heavily loading the networking area.
1.2 (beta): January 29, 2017
- Fixed SELinux: permissive mode works again.
- Decreased SELinux activity (even more).
1.1 (beta): January 29, 2017
- Restored previous setup for audio amplifier DAC: switched input gain from 4 to 5. Reason: the output felt like if it is cropping some frequencies.
- Modified CPU cooling driver to get more sensitivity as when to react and how far the temperatures should reach. (experimental, please report if horribly lags)
1.0 (beta): January 27, 2017
- Automatic thermal throttling and CPU cooling driver added and enabled.
- Enabled CPU current throttling driver.
- Decreased audio amplifier DAC input gain to 4 from 5 (solves distorted output while using audio mods like [B]Dolby Atmos[/B])
0.3 (experimental): January 26, 2017
- Added available triggers for LED to: show cpu usage by core, blink like heartbeat, blink with interval and full on.
- Disabled swap pages caching (frontswap).
0.2 (experimental): January 25, 2017
- Enabled swap pages compression.
- Enabled swap pages caching (frontswap): better RAM management.
- Enabled cleancache for faster swap handling.
- Decreased SELinux activity and removed almost every security check.
- Enabled F2FS forced consistency checks.
- Enabled Multi-cluster power management (even better power management and less temperature).
0.1 (experimental): January 24, 2017
- Initial release.
Downloads:
Click here or go to Downloads tab at the top of the thread.
NEW! Now, if something goes wrong with the XDA download server or you simply want to download from somewhere else, I've been approved as developer at AFH. All downloads will also be posted here.
Code:
[B]Experimental builds: [/B][URL]comingsoon[/URL]
NEW! Ask for features, report bugs, get help with installation, usage and everything else. Join us at Telegram: t.me/somefeak
Bugs:
SELinux avc is not working as expected, coming from squid2 sources.* Fixed
Screen might flicker sometimes in harpia LATAM variant, this is also a SELinux related problem.* Fixed
Advanced Power Management might let the device reach higher temperatures sometimes, it isn't on me and must be fixed in mainstream.
Bugs marked with a "*" will be fixed in the next release.
Testing: (by users and me)
Lineage OS (latest build): No bugs found.
crDroid: working flawlessly, little lags due to UI bugs.
OCT-OS: No bugs found.
AOSPExtended: No bugs found.
Mokee OS: long boot times, no lags so far. UI might feel unresponsive sometimes if too many tasks at same time (wrongly set build.prop?). Screen flickers sometimes
Resurrection Remix (by @jasonmerc): No bugs found.
XDA:DevDB Information
SomeFeaK Kernel for Moto G 2015 (3rd gen.), Kernel for the Moto G 2015
Contributors
facuarmo, chijure, Dark98, squid2, TeamMex
Source Code: https://github.com/FacuM/android_kernel_motorola_msm8916
Kernel Special Features: The kernel features: everything from r19 Squid2's build, KSM (Kernel Samepage Merging), SMT (Simultaneous Multi-Threading), Advanced Power Management (emulated), advanced LED contro, DT2W and impulse and elementalX governors.
Version Information
Status: Stable
Created 2017-06-15
Last Updated 2017-06-14
Good work mate
rahul9999 said:
Good work mate
Click to expand...
Click to collapse
No problem, will post first release from today in some minutes to tomorrow at night.
facuarmo said:
No problem, will post first release from today in some minutes to tomorrow at night.
Click to expand...
Click to collapse
No Problem.. take your time
Wow. From what I read in the OP, this sounds great. Really looking forward for the first build. Hope you continue this.
facuarmo said:
No problem, will post first release from today in some minutes to tomorrow at night.
Click to expand...
Click to collapse
Can u please build this kernel for merlin
farhan ansari said:
Can u please build this kernel for merlin
Click to expand...
Click to collapse
I'll think about it, I've been having problems right now maintaining for harpia and surnia at same time. Now, I'm trying to get it to work on osprey for a harpia user request who liked the harpia version and wanted one for his G3.
Thread closed pending d/l link.
Placeholders not allowed...