[Nexus 4 General] MBQ_:
MBQsnipers Guide to Kernel Knowledge

It lives again!

----

CPU Guide app:

Want this in app form? Lucky for you, I made one!

Get it here:

https://play.google.com/store/apps/details?id=com.kyler.mbq.mbqscpuguide&hl=en

----

CPUGuide website:

(If you're using it on a mobile browser, enable desktop mode).

http://CPUGuide.MBQonXDA.net

----

Contribute to the app!

It's always very appreciated. I also need translations.

https://github.com/MBQs-CPU-Guide/MBQs-CPU-Guide

---------------------------------------------------------------------------

Governors:

OnDemand:

Ondemand stands for that it scales up on load in frequency and then detects the load and scales back to a frequency which is fullfills the "demand" of the current load dynamically. (AndreiLux)

Interactive:

Interactive scales by default in steps towards max frequency, Ondemand in its default implementation scales immediately to max frequency. (AndreiLux)

InteractiveX(v2):

The same as Interactive, but when you turn your screen off it forces the second CPU core offline until the screen turns on again.

Performance:

Will constantly run at the highest set CPU speed.

Powersave:

Will constantly use your lowest set CPU speed.

Conservative:

Conservative means that it scales conservatively, not that it is conservative. It pretty much very similiar to Interactive in that it scales up and down in frequency steps. It actually can be one of the most aggressive governors out there. (AndreiLux)

Userspace:

Rare in the word of kernels. Typically not used for mobile phones. But what it basically does is, it runs on whatever CPU speeds the user sets through an app.

Lagfree:

More aggressive kernel. It scales the CPU faster, reducing lag and performance, while maintaining decent battery life. Its main goal is to increase performance without reducing battery life.

Min Max:

Only uses your max screen on frequency, and your min screen on frequency.

Hotplug:

Based off of Ondemand. It allows a CPU to go offline with minimal usage. When you're sending messages, browsing settings, or other simple tasks, most likely one of your CPUs will be offline.

PegasusQ:

Samsungs Governor for multi-core phones. Based off of Ondemand. This kernel controls hotplugging as well.

Lazy:

This Governor doesn't scale as fast. It's really a lazy governor, it tends to stick in the same CPU frequency without changing as much. Which can be beneficial to your battery (if your CPU settings are conservative) or can reduce battery life (if your chosen frequencies are aggressive).

Nightmare:

A modified PegasusQ, less aggressive (Which means not as good performance-wise), and doesn't usually hotplug. It is good for a balance between performance and battery life. May prevent the 'Screen of death' as well, since it doesn't hotplug.

HotplugX:

Its basically a smarter Hotplug, to my knowledge, it shuts off the second core much faster, and is a little bit smarter with CPU scaling and power efficiency.

LulzActive:

Based off of the Smartass and Interactive governor(s), the newer version of this Governor gives more control to the user, and he CPU frequency parameters (Ask for a description if you need one) are smarter. Smart at scaling both up and down.

Smartass:

Based off of the Interactive Governor, this is an older version, but this Governor is (or was) one of the smartest Governors, and is smart with performance and battery. More below.

SmartAssV2:

A re-thought version of the original Governor. This one aims for ideal frequencies, meaning it makes up its own frequences in order to meet the requests the CPU needs. Scales down the CPU extremely fast once the screen is turned off, meaning you will get amazing standby times. No upper limit for the CPU frequencies in both the screen on and screen off state(s). (If you want a better detailed explanation of that, please ask.)

Lionheart:

Conservative-based governor off of Samsung update3 source (Line copied directly from a guide, thank you 'Amal Das'), scales aggressively. This Governor is strictly for performance.

BrazilianWax:

Similar to smartassV2, the only real difference is, it scales more aggressively than SAv2 does, which reduces battery life, while improving performance.

SavagedZen:

Based off of SmartassV2, similar to BrazilianWax, but this Governor tends to favor battery over performance. From personal experience, I can say it does a great job of doing so.

Scary:

Conservative-based Governor with some smartass features. Ramps speed up one at a time, and ramps speed down one at a time (ask for description if you don't understand). Caps your screen off speed at 245MHz. Scales just like conservative would. This Governor is more for battery life than performance.

Sakuractive

A governor based off of hotplug and ondemand. The phone hotplugs (when it can) when the screen is on, and can be described as a 'hybrid' of hotplug and ondemand

OnDemandPlus

A governor based off of OnDemand and Interactive. It provides a balance between performance, and saving battery.

DynInteractive

A dynamic interactive Governor. This Governor dynamically adapts it's own CPU frequencies within your parameters based off the system(s) load.[/SIZE]

Advanced CPU Governor settings:

I got most of my information from this thread.

Sampling rate:

Microsecond intervals the governor polls for updates. Assists in the Governor determining whether or not to scale up or down in frequency.

Up threshold:

Defines the percentage from 1 to 100 (percent). Happens less often when clocked at a lower speed, overclocks when you get up into higher CPU frequencies. Using a Governor such as OnDemand prevents it from overclocking nearly 100% of the time.

Ignore nice load:

If you set the value to '1' the Android system will ignore 'nice' loads when the CPU Governor scales up or down.

'Nice' load:

When you turn a process into a 'nice' load, it prevents low activity processes randomly becoming high priority processes, which prevents lag. What a 'nice' load is, is how it handles processes. You can 'Re-Nice' processes, and re-set how processes are determined, based on your current processes that you have. Which helps eliminate lag due to processes being re-prioritized.

Frequency Step(s):

Determines how much the Governor will increase, or decrease, based on your CPU speeds. *This doesn't apply to some Governors

I/O schedulers:

Deadline:

Set to minimize starving of requests. In other words, it is designed to handle system requests as quickly as possible.

Noop:

It handles requests in a basic 'first in, first out' order. So any requests that come in, will also be the first to be executed.

SIO:

A mix between Noop and Deadline. Basic process/request merging. One of the most reliable schedulers out there.

BFQ:

Gives each request a time budget. If the request is not met by the time it is given, the request is skipped. Smarter than the CFQ governor.

CFQ:

'Completely Fair Queuing' scheduler. Scales its requests in an effort to insure smooth task handling. Attempts to give each request equal I/O bandwidth. Typically, lag happens with this scheduler due to the effort of competing tasks on the disk because it tries to give equal bandwidth amongst all requests.

FIOPS:

Relatively new. No I/O seek time, ( potentially better for performance), balanced read/write times, one of the smarter I/O schedulers

ROW:

Read Over Write. It will cause better read times for pictures/media, but when transferring data/installing apps, significant reduction of performance will be present.

V(R):

Best for benchmarks due to performance of requests, but is considered unstable due to random drops in performance. Semi-based off of the CFQ scheduler.

FIFO:

Takes each process in one by one, fair process queuing, balanced queue handling as well, processes go in and out in a numerical fashion.

TCP Congestion Avoidance Algorithms:

Tahoe:

Limits unknown packets being received. Limits the congestion window, and reset itself to a slow-start state.

Reno:

Basically the same as Taho, but.. if 3 of the same packets are received, it will halve the window, instead of reducing it to one MSS. It changes the slow start threshold equal to that of the congestion window.

Vegas:

One of the smoothest (next to cubic), it increases the timeout delay for packets, which allows more to be received, but at a higher rate. It also has set timeouts, which helps with speed because it's constantly being refreshed.

Hybla:

Penalizes connections that use satellite radio. Not usually used with phones.

Cubic:

One of the best, most recommended TCP options available. Less aggressive, Inflects the windows prior to the event. Used in Linux.

Westwood:

A newer version of Reno, and another commonly used one. It controls parameters better, helping out streaming and overall quality of browsing the internet. One of the most 'fair' algorithms out there, and is one of the most efficient algorithms to date.

CPU Governor recommendations:

Performance: Use Wheatley, or Performance.

Battery life: Use lagfree, Hotplug, PegasusQ, InteractiveX, or Sakuractive.

A fine balance: Use SmartassV2, Hotplug, or Sakuractive at less aggressive CPU frequencies.

Android tips:

Developer options:

Go to settings>build number... And tap 'build number' 7 times, go back, and you have now enabled developer options.

Force GPU rendering:

What it does is, it force enabled 2D drawing (such as scrolling, and anything non-game/app related) to the Graphical Processing Unit, instead of the Central Processing unit. What does/can this do? It has the potential to save battery life, and takes some of the load off of your CPU, which increases overall smoothness and reduces lag.

Keeping WiFi on during sleep:

What it does is, as this ^ suggests, keeps WiFi on while your phone is awake. To enable this, (and there are many ways.. I'll give you the way I'd do it.) Go to settings>WiFi>WiFi settings (3 vertical dots)>Advanced settings>keep WiFi on during sleep.. And set it to 'always' or.. You can use tricksterMOD and enable that via the GUI (Graphical User Interface)

WiFi Supplicant Scan Interval:

Before you freak out, I will give you what it means. What it means is this: how often your phone scans for a WiFi signal. Typically, it is 15 seconds. The recommended number is 300. To change it, you can typically find it in the build.prop manually edit it on your computer, or use an app such as ES file explorer and run it as root. Go to build.prop and look for: wifi.supplicant_scan_interval=x. And change x (usually 15) to 300, save, exit, and reboot. Please note it is not available with some ROMs that are driven towards a stock-ish feeling. Such as CM ROMs, or any derivative of that ROM.

Tips to get better battery life:

Turn off sync, location, Bluetooth when you're not using it, along with WiFi and data, don't use app-killer apps, lower CPU frequencies, and change your Governor to something less aggressive if you don't use it for heavy gaming.

Status bar with 1 finger, panel with 2:

If you want to access the tile settings quicker. Drag your status bar down with two fingers. If you want to bring down the status bar, touch the top of your screen and slide your finger down.[/I]

Autobrightness sucks!!:

Download an app called 'lux' and use that app. It'll take of any problems you're having, plus it'll save battery.

Changing your phones screen density:

In your build.prop, there is a line of code that looks like this: ro.sf.lcd_density=320, change it to 240 for a tablet-ish feel. Don't go under 160 though, you'll have endless bootloops

Change your bootanimation:

Go to system/media, you'll see bootanimation.zip, replace it with your desired bootanimation, change permissions to r-w-rr (read-write-read-read), and reboot. (Assuming you're doing this on your phone)

Block ads:

Download an app called 'adblock' on the play store, run it normally, accept the SU request, hit 'skip' and run the program, exit out, and reboot!

4x MSAA:

4 times MultiSample Anti-Aliasing. What this does is smooths out edges in apps that support AA. It makes your game look better, enhances graphics, but has the potential to degrade performance due to the screen enhancement. To enable this, go to settings>developer options>and check the box that says 'Force 4x MSAA'

zRAM:

Avoids disk paging, compresses your RAM. Disk paging means the way your phone saves temporary data. It helps with fragmentation of your disk and the physical space, which, over time, keeps speed stable and prevents any system slowdowns.

Explanation of TricksterMOD Settings:

General:

TCP:

Affects download speed

Scheduler:

How your system responds to, and handles tasks

Readahead:

How far ahead your internal SD caches when you put stuff on it

Frequency profile:

Save your frequencies

Min:

Minimum screen on time

Max:

^Opposite of minimum

Max screen off:

Max screen off frequency

Governor:

How your CPU essentially scales

Specific:

Wifi high performance:

Keep wifi on when the screen is off

Content adaptive brightness:

Better whites at low screen

Force fast charge:

Fast charge when your phone is hooked up to your PC/whatever

Group task:

Equally distribute loads amongst the CPUs

High performance sound:

Better sound

Headphone volume boost:

Boost the headphone volume for louder audio

Touch wake:

Touch your phone after you turn the screen off, and itll turn it back on

Vibrator strength:

Set the strength of the vibration of your phone

FSYNC:

When disabled, provides faster writing (not reading) of files with the risk of data loss if the phone crashes or is shut down improperly. (Thanks renaud)

Temperature limit:

How high your phones temperature can get before your phone reacts

Temp. throttle:

Enable the temperature limit

GPU OC:

Graphical Processing Unit overclock

MPU:

Mathematical Processing Unit

zRAM:

RAM compression to speed up your phone

*Leave on Core, IVA, and MPU

Voltages:

Set the voltages of each CPU frequency.​

Feel free to 'thank' me for this, but.. it isn't expected.