[T-Mobile, Samsung Galaxy SIII] Synthetic.Nightmare:
...AX Developers Present...

...In association with Team Inferno...

axDev Harkness

"Self determination is NOT a malfunction" -Harkness (Android A3-21)

This kernel is experimental. All patches used, source code, etc. can be found here with as many of the original authors intact as possible.

***ONLY RECENT (aka inline with CMs display drivers) AOSP-BASED ROMS SUPPORTED***
​

FEATURES:

- based off of Cyanogenmod's 3.4.y kernel

- compiled using Sourcery CodeBench Lite GCC 4.7 toolchain (-Os)

- floating-point & graphite loop optimizations

- cleaned up some modules and debugging

- Tweaked GPIO debounce timing [Increased vol. long press]

- Increased touchscreen sensitivity

- dkp notification/backlight LED fade animations (DecimalMan)

- faux sound support

- patches from a plethora of sources (including franciscofranco, WillDeacon, ConKolihas, etc.)

- fast charge capable (imoseyon)

- UV capable (faux123)

- full sched-deadline implementation (jlelli)

- semaphore n4's conservative & ondemand driver (stratosk)

- Power efficient workqueues (Linaro)

- Plenty of backports from mainline [sched, cpuidle, random, smp, etc.] (Linux)

- asm-generic rwsem (Will Deacon)

- Imports from Motorola's msm kernel source:

* always update vfp_current_hw_state when forcing reloading

* fixup to allow sched to play nice with CPU_HOTPLUG

* Krait memutils

* acpuclock-krait: init to max speed (improve boot time)

* lmk/compaction: updates to allow improved/stricter memory management

- I'll add more as I remember​

BUG REPORTS:

Please include a kmsg/dmesg to any bug reports: http://code.google.com/p/tegraowners-ics-rom/wiki/How_to_get_logs

If you you are unable to do so for whatever reason, try to use as much detail as possible and give me a way to replicate it, so that I may attempt to log it. Thanks!

NOTES:

- Reserved for notes about bugs.

- Cleared since we seem to be golden with trickstermod and I have yet to have a recent cm build fail on init. Let me know if you find anything.

SCHED_DEADLINE:

Not to be confused with the iosched deadline, Sched_deadline is a scheduling class that implements a real-time CPU scheduling algorithm; EDF (Earliest Deadline First), augmented with a bandwidth isolation mechanism (called Constant Bandwidth Server, CBS) that makes it possible to isolate the behaviour of tasks between each other. SCHED_DEADLINE allows the CPU to reserve a portion of the CPU time to a specific application very accurately. A key feature is that it ensures "temporal isolation", which means that the temporal behavior of each task (i.e., its ability to meet its deadlines) is not affected by the behavior of any other task in the system. In other words, even if a task misbehaves, it is not able to exploit larger execution times than the amount it has been allocated. When a task tries to execute more than its budget, it is slowed down, by stopping it until the time instant of its next deadline. When, at that time, it is made runnable again, its budget is refilled and a new deadline is computed.

POWER EFFICIENT WORKQUEUES:

With per-cpu workqueues, the scheduler considers a CPU idle if it doesn't have any task to execute and tries to keep idle cores idle to conserve power; however, for example, a per-cpu work item scheduled from an interrupt handler on an idle CPU will force the scheduler to excute the work item on that CPU breaking the idleness. Power efficient workqueues are allowed to be unbound, meaning they are not forced to queue up on what could be an idle CPU; instead, the scheduler allows work to be rescheduled on a core that is already awake.

SEMAPHORE ONDEMAND TUNABLES:

touch_load: the simulated load when there is a touch on screen (default 75)

touch_load_threshold: over this load the touch_load will be applied (default 10)

touch_load_duration: the duration of the simulated load in msec (default 1100)

VOLTAGE TABLES/BINNING:

What CPU do you have? Nominal, Fast :)...or Slow:(

The phones with the lower default voltage values use the "fast" frequency table, consider yourself lucky. This explains why some can't UV as much as others since they are starting with lower mV's to start. These are built in factory tolerances that depend upon the binning of your chip. Hopefully folks don't go freaking out because they have a nominal chip like I do. It's probably good for a dev to have a nominal chip so we can better honor the limits.

http://en.wikipedia.org/wiki/Product_binning

How do I tell what I have?

If you boot up your phone fresh and look at the dmesg output (kernel log) while the messages are still there, you will find one of the following output messages where it selects it's frequency plan depending on the binning of the chip.

commandline:

adb shell dmesg | grep PVS

(acpuclk-krait in our kernel defines PVS as id numbers)

acpuclk-8960: ACPU PVS: 0 = Slow

-or-

acpuclk-8960: ACPU PVS: 1 = Nominal

-or-

acpuclk-8960: ACPU PVS: 3 = Fast

- thanks to _motley for this awesome write-up on his kernel/kernel features... and for providing explicit detail on his works

A Note for Developers:

CODEBENCH COMPILE CACHING:

Ccache is commonly used to reduce compile times for C-related files. CodeBench's toolchains utilize their very own compile caching that works EXTREMELY well. You MUST be on at least the 5-23 version of CodeBench (CodeBench Lite can be found here). The related patch for using this feature will be posted below. Examples of use are in the commit message.

Basic CS cache patch

Please pull request any improvements/post discussion.

I'll add more info about key features as I work along.

DOWNLOADS:

- -

https://code.google.com/p/harkness-d2/

!! NOTE: this OP no longer reflects what this kernel is. See the URL above for the latest. !!

CREDITS/THANKS:

Cyanogenmod

MentorGraphics

Juri Lelli (and everyone else in the SCHED_DEADLINE project)

MotorolaMobilityLLC

existz

TripNRaVeR (tripndroid)

Will Deacon (ARM)

stratosk

franciscofranco

decimalman

_motley

Con Kolihas

imoseyon

showp1984

faux123

f1vefour

ryuinferno

xcstacy

Linaro

Eli Billauer

kerneldedup.org

Bethesda

and countless others (may they be remembered on github)