[HTC EVO 3D] MikeC84:
Bugs

Sense

If you get a blank screen on wake up set min CPU speed to 384

AOSP

If you get a blank screen on wake up set min CPU speed to 384

Change Log

SENSE

[B]Coming soon[/B]

v4.1

• Rebase off latest kernel source
• Patched to Linux 3.0.74
• Lower CPU and uV tables - OC -> 1.7GHz - uV -> 700000 - 14500000 - (showp1984)
• Add extra L2 cache OC step and make use of it - 1566MHz -> 1620MHz
• Update ROW from upstream no longer a backport - (caf)
• Ondemand tweaks / fixes
- cpufreq : Fix crash input event handler on governor switch
• Interactive tweaks / fixes
- cpufreq: interactive: fix possible Division by zero
- cpufreq: interactive: default timer 10ms, maxspeed load 95%
- power: cpufreq: interactive: use default sample time 20ms
• BFQ tweaks / fixes
- Tweak to be more flash memory friendly - (fransiscifranco)
• ROW tweaks / fixes / patches
- block: ROW: Correct minimum values of ROW tunable parameters
- block: row: Add some debug information on ROW queues
- block: row: fix sysfs functions - idle_time conversion
• Dynamic fsync v1.1 - (faux123)
• Misc patches / fixes
- ARM: net: JIT compiler for packet filters
- ARM: entry: no need to increase preempt count for IRQ handlers
- SCHEDULER: Autogroup patch group by current user android UID instead of task ID
- sched: Cleanup pre_schedule_rt
- sched: Remove unlikely() from rt_policy() in sched.c
- sched: Remove unlikely() from ttwu_post_activation
- Add support for hotplug operations to take secondary CPUs online/offline when CONFIG_PM is turned off
- msm: pm-8x60: Move hotplug related code out of pm code
- msm: pm-8x60: Add clock debug to idle code path
- msm: msm_xo: Set the correct bits for XO_CORE on 8660
- usb: otg: Temporarily grab wakelock on charger and disconnect events
- msm: kgsl: convert sg allocation back to kmalloc
• Defconfig edits
- enable some stuff
• Makefile edits
- enable -O3 for hostcflags
- add -fstrict-aliasing
- funroll-loop optimization
• Adjust ramdisk to allow larger zImage
• Update CU topology, was using older version - ([URL="https://git.linaro.org/gitweb?p=people/vingu/kernel.git;a=summary"]Vincent Guittot[/URL])
• cpupower drivers - ([URL="https://git.linaro.org/gitweb?p=people/vingu/kernel.git;a=summary"]Vincent Guittot[/URL])
• Move thermal sysfs to kconfig
• Edit updater script with new ascii image

[B]2/15/2013 - v3.7[/B]

• [URL="http://teamdirt.me/showthread.php?16-Kernel-Sense-MAC-v3-6-2-11-3-0-63-Linaro-O3-USB-FC-S2W-SLQB-CK1"]Download[/URL]

• Patched up to Linux 3.0.64

[B]2/11/2013 - v3.6[/B]

• [URL="http://teamdirt.me/showthread.php?16-Kernel-Sense-MAC-v3-6-2-11-3-0-63-Linaro-O3-USB-FC-S2W-SLQB-CK1"]Download[/URL]

• Patch Linux up to 3.0.63
• BFQ v6

[B]2/4/2013 - v3.5[/B]

• [url]http://d-h.st/4s3[/url]

• Patch Linux up to 3.0.62
• Update BFQ to v5r1
• Update ROW to v4
• Backport ROW to 3.0 - (faux123)
• Update Linaro toolchain

[B]1/15/2013 - v3.3[/B]

• [url]http://d-h.st/ETp[/url]

• Patched up to Linux 3.0.58
• Added Zen I/O Scheduler

[B]12/19/2012 - v3.2[/B]

• [url]http://d-h.st/Cym[/url]

• Patched up to Linux 3.0.57
• Update Linaro tool chain to 12.12
• Enable Wheatley governor

[B]12/12/2012 - v3.1[/B]

• [url]http://d-h.st/orJ[/url]

• Patched up to Linux 3.0.56
• Update BFQ to v5
• Wheatley governor

[B]11/17/2012 - v3.0[/B]

• [url]http://d-h.st/CWK[/url]

• Update zcache and zram - (faux123)
• Add Google snappy compression / decompression and set to default
• Patched up to 3.0.51 - (Coolexe, cjoliver)
• Linaro Topology drivers - [url]http://patches.linaro.org/project/linux-arm-kernel/[/url]
• Optimized CRC32 algorithm
• Advanced screen off profile for mpdecision - (cjoliver)

[B]10/29/2012 - v2.6[/B]

• [url]http://d-h.st/ZxJ[/url]

• CPU Alignment fix
• Adjust updater script

[B]10/28/2012 - v2.5[/B]

• [url]http://d-h.st/tAC[/url]

• Patched up to Linux 3.0.48 - Coolexe
• Badass Governor with GPU control - showp1984
• Update Linaro toolchain - [url]http://releases.linaro.org/[/url]
• Disable ROW IO Scheduler
• Disabled sha1 and aes routines in favor of optimized versions
• Adjust vfs cache pressure
• Enabled USB OTG - Yes, I forgot about this :eek:
• Other minor tweaks and fixes
Expose kblock_scheduled_delayed_work()
task_times() explosion avoidance for tasks with > 2^32 accrued ticks
sched,rt: fix isolated CPUs leaving root_task_group indefinitely throttled
sweep2wake -> naming fix

[B]10/04/2012 - v2.0.0[/B]

• [url]http://d-h.st/PhO[/url]

• Added some fancy ascii art to my updater script :D
• Name change
• Patched up to Linux 3.0.44
• Linaro -O3 Optimized
• Faster boot up
• Fix -O3 compile errors (me - Chad G - Agrabren - Showp1984)
• Implement ck1 patchset - (Ziggy)
• Add -Ofast Linaro flag to config
• Ziggy's sysfs vdd interface - You can now see voltages in Antutu CPU master
• Ziggy's LagFree
• Ziggy's Smartass v2
• Update LZO zram - Now as fast as Google's snappy zram but with better compression - (faux123)
• zram - default back to LZO
• Remove Google snappy zram in favor of LZO - Better compression
• Removed a bunch of governors for battery testing (SavagedZen, Lionheart, Intellidemand, Scary, Lulzactive, Wheatley, Pegasusq, Lazy)
• Add ROW I/O Scheduler - Unstable WIP - (faux123)
• Optimized AES and SHA1 routines - (David McCullough)
• MHzx8 bandwidth - (Coolexe)
• 3-phase throttling with sysfs added to thermal managment - (Coolexe)
• User configurable sweep2wake coordinates - (cjoliver)
• Fix thermal management (me - faux123)
• Tweak deadline io scheduler for better performance on Android - (faux123)
• Sched fixes - (faux123)
• Generic xchg-based implementation for ARMv6+ - (faux123)
• Dynamic sync control
• Fix bug due to buffer overrun
• Fix Max speed on boot up
• Lower display panel voltages - Help with battery life
• Everything else from 1.0.0

[B]09/02/2012 - v1.0.0[/B]

• [url]http://d-h.st/ASt[/url]

• Patched up to Linux 3.0.42
• Linaro -O2 optimized
• Snapdragon and Linaro optimizations
• Google's snappy zram compression / decompression
• USB Fast Charge v3.1 - (yank555)
• Sweep2Wake 3 button (menu, back, search) - (Coolexe)
• Set default speeds min @ 192 MHz max@ 1516 MHz
• CPU OC up to 1.944 MHz
• L2 Cache up to 1566 MHz
• CPU based alignment handling
• Vdd table interface
• GPU OC 2D @ 266 MHz 3D @ 320MHz (Chad G)
• Glitch free GPU frequency changing
• SLQB Memory Allocator - default
• SLUB optimizations
• Kernel based mpdecision - (Coolexe)
• Kernel based thermal managment - (Dodava)
• vfp neon optimization
• Disable GENTLE_FAIR_SLEEPERS
• Lower vfs cache pressure and made configurable
• Tweaked audio buffers for Beats
• Lowmemkiller and fugeswap
• Lower camera flash to 5%
• Lower WiFi voltage
• Allow low WiFi signals to be seen
• USB OTG
• USB headset detection
• Enable dynamic LED brightness
• AC charging for unknown chargers
• Prevent aliased request from starving I/O
• Optimized ARM RWSEM algorithm
• Use glibc version of lib: script
• Use glibc version of lib: memcopy
• Use git implementation of SHA-1
• Increase min /max readahead buffers
• Add optimization levels to config

AOSP

[B]Coming soon[/B]

Nothing yet. Maybe ION and update adreeno drivers..

[B]4/21/2013 - v4.1.2[/B]

[URL="http://teamdirt.me/showthread.php?5-Kernel-aosp-sense-D-I-R-T-y-MAC-v4-1-2-4-21-MAC-Sense-v4-0-4-17&p=14#post14"]Download[/URL]

• Move msm-buspm-dev.ko and kineto_gen.ko back to kernel.

[B]4/20/2013 - v4.1[/B]

[URL="http://teamdirt.me/showthread.php?5-Kernel-aosp-sense-D-I-R-T-y-MAC-v4-0-4-17-MAC-Sense-v4-0-4-17"]Download[/URL]

• Rebase off evervolv kernel source
• Patched to Linux 3.0.74
• Lower CPU and uV tables - OC -> 1.7GHz - uV -> 700000 - 14500000
• Add extra L2 cache OC step - 1566MHz -> 1620MHz
• Update ROW from upstream no longer a backport - (caf)
• Ondemand tweaks / fixes / patches
- cpufreq : Fix crash input event handler on governor switch
• Interactive tweaks / fixes / patches
- cpufreq: interactive: fix possible Division by zero
- cpufreq: interactive: default timer 10ms, maxspeed load 95%
- power: cpufreq: interactive: use default sample time 20ms
• BFQ tweaks / fixes / patches
- Tweak to be more flash memory friendly - (fransiscifranco)
• ROW tweaks / fixes / patches
- block: ROW: Correct minimum values of ROW tunable parameters
- block: row: Add some debug information on ROW queues
- block: row: fix sysfs functions - idle_time conversion
• Dynamic fsync v1.1 - (faux123)
• Misc patches / fixes
- ARM: net: JIT compiler for packet filters
- ARM: entry: no need to increase preempt count for IRQ handlers
- SCHEDULER: Autogroup patch group by current user android UID instead of task ID
- sched: Cleanup pre_schedule_rt
- sched: Remove unlikely() from rt_policy() in sched.c
- sched: Remove unlikely() from ttwu_post_activation
- Add support for hotplug operations to take secondary CPUs online/offline when CONFIG_PM is turned off
- msm: pm-8x60: Move hotplug related code out of pm code
- msm: pm-8x60: Add clock debug to idle code path
- msm: msm_xo: Set the correct bits for XO_CORE on 8660
- usb: otg: Temporarily grab wakelock on charger and disconnect events
- msm: kgsl: convert sg allocation back to kmalloc
• Defconfig edits
- enable some stuff
• Makefile edits
- enable -O3 for hostcflags
- add -fstrict-aliasing
- funroll-loop optimization
• Adjust ramdisk to allow larger zImage
• Fix hex values for 1728000MHz and 1782000MHz
• Update CPU topology - ([URL="https://git.linaro.org/gitweb?p=people/vingu/kernel.git;a=summary"]Vincent Guittot[/URL])
• cpupower drivers - ([URL="https://git.linaro.org/gitweb?p=people/vingu/kernel.git;a=summary"]Vincent Guittot[/URL])
• Move thermal sysfs to kconfig
• Edit updater script with new ascii image

[B]2/11/2013 - v3.6[/B]

• [URL="http://teamdirt.me/showthread.php?5-Kernel-aosp-MAC-v3-6-2-11-3-0-63-Linaro-O3-USB-FC-S2W-SLQB-CK1"]Download[/URL]

• Patched up to Linux 3.0.63
• BFQ v6

[B]2/4/2013 - v3.5[/B]

• [url]http://d-h.st/tLB[/url]

• Patched Linux to 3.0.62
• ROW v4 IO scheduler
• Backport ROW to 3.0 - (faux123)
• Update BFQ to v5r1
• Update Linaro toolchain

[B]1/5/2013 - v3.2[/B]

[URL="http://d-h.st/zep"]http://d-h.st/zep[/URL]

• Wheatley governor
• Zen I/O Scheduler
• Update BFQ to v5
• Patch linux to 3.0.57
• Update updater script

[B]11/17/2012 - v3.0[/B]

• [url]http://d-h.st/gc0[/url]

• Patched up to Linux 3.0.53
• Update zcache and zram - (faux123)
• Add Google snappy compression / decompression and set to default
• Patched up to 3.0.51 - (Coolexe, cjoliver)
• Topology drivers - [url]http://patches.linaro.org/project/linux-arm-kernel/[/url]
• Optimized CRC32 algorithm
• Advanced screen off profile for mpdecision - (cjoliver)
• CPU Alignment fix
• Badass Governor with GPU control - showp1984
• Update Linaro toolchain - [url]http://releases.linaro.org/[/url]
• Disable ROW IO Scheduler
• Adjust vfs cache pressure
• Enabled USB OTG - Yes, I forgot about this :eek:
• Other minor tweaks and fixes
• Expose kblock_scheduled_delayed_work()
• task_times() explosion avoidance for tasks with > 2^32 accrued ticks
• sched,rt: fix isolated CPUs leaving root_task_group indefinitely throttled
• sweep2wake -> naming fix
• Linaro -O3 Optimized
• Fix -O3 compile errors (me - Chad G - Agrabren - Showp1984)
• Implement ck1 patchset - (Ziggy)
• Add -Ofast Linaro flag to config
• Ziggy's sysfs vdd interface - You can now see voltages in Antutu CPU master
• Ziggy's LagFree
• Ziggy's Smartass v2
• Update LZO zram - Now as fast as Google's snappy zram but with better compression - (faux123)
• zram - default back to LZO
• Remove Google snappy zram in favor of LZO - Better compression
• Removed a bunch of governors for battery testing (SavagedZen, Lionheart, Intellidemand, Scary, Lulzactive, Wheatley, Pegasusq, Lazy)
• Add ROW I/O Scheduler - Unstable WIP - (faux123)
• Optimized AES and SHA1 routines - (David McCullough)
• MHzx8 bandwidth - (Coolexe)
• 3-phase throttling with sysfs added to thermal managment - (Coolexe)
• User configurable sweep2wake coordinates - (cjoliver)
• Fix thermal management (me - faux123)
• Tweak deadline io scheduler for better performance on Android - (faux123)
• Sched fixes - (faux123)
• Generic xchg-based implementation for ARMv6+ - (faux123)
• Dynamic sync control
• Fix bug due to buffer overrun
• Fix Max speed on boot up
• Lower display panel voltages - Help with battery life
• Everything else from 1.0.0
• Snapdragon and Linaro optimizations
• Google's snappy zram compression / decompression
• USB Fast Charge v3.1 - (yank555)
• Sweep2Wake 3 button (menu, back, search) - (Coolexe)
• Set default speeds min @ 192 MHz max@ 1516 MHz
• CPU OC up to 1.944 MHz
• L2 Cache up to 1566 MHz
• CPU based alignment handling
• Vdd table interface
• GPU OC 2D @ 266 MHz 3D @ 320MHz (Chad G)
• Glitch free GPU frequency changing
• SLQB Memory Allocator - default
• SLUB optimizations
• Kernel based mpdecision - (Coolexe)
• Kernel based thermal managment - (Dodava)
• vfp neon optimization
• Disable GENTLE_FAIR_SLEEPERS
• Lower vfs cache pressure and made configurable
• Tweaked audio buffers for Beats
• Lowmemkiller and fugeswap
• Lower camera flash to 5%
• USB OTG
• USB headset detection
• Enable dynamic LED brightness
• AC charging for unknown chargers
• Prevent aliased request from starving I/O
• Optimized ARM RWSEM algorithm
• Use glibc version of lib: script
• Use glibc version of lib: memcopy
• Use git implementation of SHA-1
• Increase min /max readahead buffers
• Add optimization levels to config

Kernel Info

USB Fast Charge

/sys/kernel/fast_charge/force_fast_charge == 1 to enable this feature // 0 to disable this feature (default)

from your pc:

adb shell

echo 1 > /sys/kernel/fast_charge/force_fast_charge

exit

from a terminal app on your device:

echo 1 > /sys/kernel/fast_charge/force_fast_charge

or to create a script:

just add echo 1 > /sys/kernel/fast_charge/force_fast_charge to the script

Check out Chad's app that let's you control fast charge.

https://play.google.com/store/apps/details?id=com.incredicontrol

Sweep2Wake

http://www.youtube.com/watch?v=jri2BMQHHrs

echo 0 > /sys/android_touch/sweep2wake

This will disable the sweep2wake.

Other options are.

0 for disabled.

1 for enabled.

2 for enabled with backlight.

cm9 - Working great

Sense 3.6 - takes screen shot when swiping to sleep

Sense 4 - takes screen shot when swiping to sleep

Miui Sense - Doesn't work great

Configurations:

Start button -> /sys/android_touch/sweep2wake_startbutton -> HOME, MENU, BACK

End button -> /sys/android_touch/sweep2wake_endbutton -> SEARCH, BACK, MENU

If u want ur s2w start from MENU button then

echo MENU > /sys/android_touch/sweep2wake_startbutton

and s2w end at SEARCH button then

echo SEARCH > /sys/android_touch/sweep2wake_endbutton

CPU OC

Not all phones can handle 1.9! You may experience reboots if set too high, just lower until no more reboots, every phone is different...

Over clocking the CPU may drain the battery faster than if you were are at stock clock speed.

Underclock for better battery life...

Governor Info

Look here for governor tweaks

Ziggy's Lagfree

Lagfree is similar to ondemand. Main difference is it's optimization to become more battery friendly. Frequency is gracefully decreased and increased, unlike ondemand which jumps to 100% too often. Lagfree does not skip any frequency step while scaling up or down. Remember that if there's a requirement for sudden burst of power, lagfree can not satisfy that since it has to raise cpu through each higher frequency step from current. Some users report that video playback using lagfree stutters a little. Sysfs included.

SmartassV2

Version 2 of the original smartass governor from Erasmux. Another favorite for many. The governor aims for an "ideal frequency", and ramp up more aggressively towards this freq and less aggressive after. It uses different ideal frequencies for screen on and screen off, namely awake_ideal_freq and sleep_ideal_freq. This governor scales down CPU very fast (to hit sleep_ideal_freq soon) while screen is off and scales up rapidly to awake_ideal_freq (500 mhz for GS2 by default) when screen is on. There's no upper limit for frequency while screen is off (unlike Smartass). So the entire frequency range is available for the governor to use during screen-on and screen-off state. The motto of this governor is a balance between performance and battery. Sysfs included.

BadAss

Badass removes all of this "fast peaking" to the max frequency. On a typical system the cpu won't go above 918Mhz and therefore stay cool and will use less power. To trigger a frequency increase, the system must run a bit @ 918Mhz with high load, then the frequency is bumped to 1188Mhz. 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 with 1188Mhz. If the gpu is crushed under load, badass will lift the restrictions to the cpu.

Wheatley

In short words this govenor is build on “ondemand” but increases the C4 state time of the CPU and doing so trying to save juice. So the results show that Wheatley works as intended and ensures that the C4 state is used whenever the task allows a proper efficient usage of the C4 state. For more demanding tasks which cause a large number of wakeups and prevent the efficient usage of the C4 state, the governor resorts to the next best power saving mechanism and scales down the frequency. So with the new highly-flexible Wheatley governor one can have the best of both worlds. Obviously, this governor is only available on multi-core devices.

I/O Scheduler Info

Noop

Inserts all the incoming I/O requests to a First In First Out queue and implements request merging. Best used with storage devices that does not depend on mechanical movement to access data (yes, like our flash drives). Advantage here is that flash drives does not require reordering of multiple I/O requests unlike in normal hard drives.

Advantages:

Serves I/O requests with least number of cpu cycles. (Battery friendly?)

Best for flash drives since there is no seeking penalty.

Good throughput on db systems.

Disadvantages:

Reduction in number of cpu cycles used is proportional to drop in performance.

Deadline

Goal is to minimize I/O latency or starvation of a request. The same is achieved by round robin policy to be fair among multiple I/O requests. Five queues are aggressively used to reorder incoming requests.

Advantages:

Nearly a real time scheduler.

Excels in reducing latency of any given single I/O.

Best scheduler for database access and queries.

Bandwidth requirement of a process - what percentage of CPU it needs, is easily calculated.

Like noop, a good scheduler for solid state/flash drives.

Disadvantages:

When system is overloaded, set of processes that may miss deadline is largely unpredictable.

CFQ

Completely Fair Queuing scheduler maintains a scalable per-process I/O queue and attempts to distribute the available I/O bandwidth equally among all I/O requests. Each per-process queue contains synchronous requests from processes. Time slice allocated for each queue depends on the priority of the 'parent' process. V2 of CFQ has some fixes which solves process' i/o starvation and some small backward seeks in the hope of improving responsiveness.

Advantages:

Considered to deliver a balanced i/o performance.

Easiest to tune.

Excels on multiprocessor systems.

Best database system performance after deadline.

Disadvantages:

Some users report media scanning takes longest to complete using CFQ. This could be because of the property that since the bandwidth is equally distributed to all i/o operations during boot-up, media scanning is not given any special priority.

Jitter (worst-case-delay) exhibited can sometimes be high, because of the number of tasks competing for the disk.

BFQ

Instead of time slices allocation by CFQ, BFQ assigns budgets. Disk is granted to an active process until it's budget (number of sectors) expires. BFQ assigns high budgets to non-read tasks. Budget assigned to a process varies over time as a function of it's behavior.

Advantages:

Believed to be very good for usb data transfer rate.

Believed to be the best scheduler for HD video recording and video streaming. (because of less jitter as compared to CFQ and others)

Considered an accurate i/o scheduler.

Achieves about 30% more throughput than CFQ on most workloads.

Disadvantages:

Not the best scheduler for benchmarking.

Higher budget assigned to a process can affect interactivity and increased latency.

SIO

Simple I/O scheduler aims to keep minimum overhead to achieve low latency to serve I/O requests. No priority quesues concepts, but only basic merging. Sio is a mix between noop & deadline. No reordering or sorting of requests.

Advantages:

Simple, so reliable.

Minimized starvation of requests.

Disadvantages:

Slow random-read speeds on flash drives, compared to other schedulers.

Sequential-read speeds on flash drives also not so good.

V(R)

Unlike other schedulers, synchronous and asynchronous requests are not treated separately, instead a deadline is imposed for fairness. The next request to be served is based on it's distance from last request.

Advantages:

May be best for benchmarking because at the peak of it's 'form' VR performs best.

Disadvantages:

Performance fluctuation results in below-average performance at times.

Least reliable/most unstable.

ROW

The ROW I/O scheduler gives priority to READ requests over the WRITE requests when dispatching, without starving WRITE requests. Requests are kept in priority queues. Dispatching is done in a RR manner when the dispatch quantum for each queue is calculated according to queue priority. Most suitable for mobile devices.​