Benchmarks, suggestions and researchs for kernel optimization - Galaxy S Plus I9001 Android Development

Benchmarks, suggestions and researchs for kernel optimization​
Hello guys,
these days I have done several comparative benchmarks of what can be achieved, at least in terms of performance, applying the existing optimization options or particular compiler flags and also the main kernel memory allocators.
This, I hope, is only the beginning...
I'd like that this thread could become a place where developers, experienced or not, can share their benchmark results, knowledge, suggestions on possible improvements, patches, etc designed to improve performance and / or stability of the kernel.
Inside the next posts, you can find the conducted benchmark results.
Thanks for your attention
PS. Sorry for my bad english...

Kernel Optimization Benchmarks​
These are the results of the comparative benchmarks of the performance results that can be achieved using the different kernel optimization options (-Os, -O2, -O3), using cpu and floating point tuning (eg -march=armv7-a -mtune=cortex-a8 -mfpu=neon) and other additional compilation flags.
For these tests I've used different kernels based on Arco's 3.0.60 kernel sources and built using the same toolchain (optimized for generic Cortex-A cpu):
- pure kernel built selecting -Os optimization
- pure kernel built selecting -O2 optimization
- slighty modified kernel built selecting -O3 optimization (only two simple changes to add -O3 optimization option inside Makefile and init/Kconfig)
- slighty modified kernel built selecting -O3 optimization and with the following additional compilation flags inside Makefile
Code:
...
OPTIMIZATION_FLAGS = -march=armv7-a -mtune=cortex-a8 -mfpu=neon \
-ffast-math -fsingle-precision-constant \
-fgcse-lm -fgcse-sm -fsched-spec-load -fforce-addr
CFLAGS_MODULE = $(OPTIMIZATION_FLAGS)
AFLAGS_MODULE = $(OPTIMIZATION_FLAGS)
LDFLAGS_MODULE =
CFLAGS_KERNEL = $(OPTIMIZATION_FLAGS)
AFLAGS_KERNEL = $(OPTIMIZATION_FLAGS)
...
and
Code:
...
ifdef CONFIG_CC_OPTIMIZE_FOR_SIZE
KBUILD_CFLAGS += -Os
endif
ifdef CONFIG_CC_OPTIMIZE_DEFAULT
KBUILD_CFLAGS += -O2
endif
ifdef CONFIG_CC_OPTIMIZE_MORE
KBUILD_CFLAGS += -O3 -fmodulo-sched -fmodulo-sched-allow-regmoves -fno-tree-vectorize
endif
ifdef CONFIG_CC_OPTIMIZE_FAST
KBUILD_CFLAGS += -Ofast
endif
...
The kernel has not been overclocked, I used the default min and max cpu frequencies (245 Mhz - 1401 Mhz) with Performance cpu governor and Noop I/O scheduler.
To perform each kernel benchmark, I made at least 3 test runs for each of the following tools:
- CF-Bench developed by XDA Developer Chainfire
- Antutu Benchmark
Benchmark final results
(the image is uploaded on Media Fire, if you can't see it, could be due to your proxy configuration)​
You can find more detailed results (ods, xlsx and pdf format) and screenshots inside the following Media Fire folder: Results Folder​
Conclusion:
As you can see, if compared with each other, -O2 optimization and -O3 optimization with additional flags give the best results in terms of performance, expecially using CF-Bench, but the differences are relatively small.
Thus, we can conclude by saying that the optimization flags above, do not do miracles, at least in terms of performance...
Memory Allocators Benchmarks​
These are the results of the comparative benchmarks of the performance results that can be achieved selecting one of the different kernel memory allocators (SLUB, SLAB, SLOB and SLQB).
For these tests I've used different builds of the above descripted kernel (slighty modified kernel built selecting -O3 optimization and with the additional compilation flags):
- a build configured selecting the default SLUB memory allocator (the unqueued slab allocator V6)
- a build configured selecting the SLAB memory allocator (old and deprecated)
- a build configured selecting the SLOB memory allocator (a simpler memory allocator suitable for embedded devices with low memory)
- a build configured selecting the SLQB memory allocator (I modified the kernel sources to add it)
The kernel has not been overclocked, I used the default min and max cpu frequencies (245 Mhz - 1401 Mhz) with Performance cpu governor and Noop I/O scheduler.
To perform each kernel benchmark, I made at least 3 test runs for each of the following tools:
- CF-Bench developed by XDA Developer Chainfire
- Antutu Benchmark
Benchmark final results
(the image is uploaded on Media Fire, if you can't see it, could be due to your proxy configuration)​
You can find more detailed results (ods, xlsx and pdf format) and screenshots inside the following Media Fire folder:
Results Folder​
Conclusion:
In this case, if compared with each other, SLUB memory allocator (which is the default one) and SLQB memory allocator give the best results in terms of performance. The differences between these two are relatively small.
Patch:
If you want to add the SLQB memory allocator inside your JB kernel sources, you can use the following patch
SLQB_memory_allocator.patch​
After downloading it inside your kernel sources folder:
Code:
[COLOR="Navy"]Show the changes inside the patch[/COLOR]
[B]git apply --stat SLQB_memory_allocator.patch[/B]
[COLOR="Navy"]Check if the patch could cause conflicts or other problems[/COLOR]
[B]git apply --check SLQB_memory_allocator.patch[/B]
[COLOR="Navy"]If all is ok, apply the patch[/COLOR]
[B]git am --signoff SLQB_memory_allocator.patch[/B]

Additional IO Scheduler Benchmarks​
These are the results of the comparative benchmarks of the performance results that can be achieved selecting some of the additional IO scheduler we can find on many custom kernels.
I8150 - Samsung Galaxy W - ROW and SIO I/O schedulers comparison (Made by Hadidjapri)
These benchmarks have been made on I8150 by Hadidjapri.
For each I/O scheduler, he made 4 test runs using CF-Bench and setting the default min and max cpu frequencies (245 Mhz - 1024 Mhz) and the default SLUB memory allocator.
Benchmark final results
(the image is uploaded on Media Fire, if you can't see it, could be due to your proxy configuration)​
I9001 - Samsung Galaxy S Plus - ROW, SIO and V(R) I/O schedulers comparison
For each I/O scheduler, I made 4 test runs using CF-Bench and setting Performance cpu governor with the default min and max cpu frequencies (245 Mhz - 1401 Mhz) and the default SLUB memory allocator.
Benchmark final results
(the images are uploaded on Media Fire, if you can't see them, could be due to your proxy configuration)​
You can find more detailed results (ods, png and pdf format) inside the following Media Fire folder:
Results Folder​
Conclusion:
For both devices, the best scheduler for I/O operations is SIO.

AW: Benchmarks, suggestions and researchs for kernel optimization
This is huge! Thank you so much!!
Sent from my GT-I9001 using xda app-developers app

WOW. This is extremely interesting! Thank you very much! These are awesome spreadsheets!
I'm going to publish these on my blog if it's okay with you. if it's not, Ill add the link of this XDA topic in Android Articles.
AWESOME. PERIOD
(I always secretly wanted to make spreadsheets like these regarding optimization, but I didn't knew how :silly

from what i see in the O3 optimization, i guess the additional build flags is a must otherwise it's only a fancy stuff which doesn't give anything
i have 2 questions regarding the benchmark
1. which one is more reliable, CF or antutu?
2. do you get large variance when testing for database IO? or is this happens only to me

broodplank1337 said:
WOW. This is extremely interesting! Thank you very much! These are awesome spreadsheets!
I'm going to publish these on my blog if it's okay with you. if it's not, Ill add the link of this XDA topic in Android Articles.
AWESOME. PERIOD
(I always secretly wanted to make spreadsheets like these regarding optimization, but I didn't knew how :silly
Click to expand...
Click to collapse
I'll be really happy if you publish these results inside your blog.
You can also use those spreadsheet as template, you're welcome!
Thank you!

hadidjapri said:
from what i see in the O3 optimization, i guess the additional build flags is a must otherwise it's only a fancy stuff which doesn't give anything
i have 2 questions regarding the benchmark
1. which one is more reliable, CF or antutu?
2. do you get large variance when testing for database IO? or is this happens only to me
Click to expand...
Click to collapse
I can say that no benchmarking tool is really reliable, I've tried many and I think it isn't actually possible to create or find a tool that always gives similar results on a system that still performs other operations without our control on them...
Antutu Benchmark is the benchmark tool every one of us know and use most, could not miss, though it is not the best in terms of reliability of the results. In particular, the first test should always be discarded because it is very different from the next, so each time I run 4/5 test and considered only the last 3 similar. In addition, I confirm that the database test and SD card tests often vary greatly.
CF-Bench is certainly more reliable and allowed me to make the detailed tests on memory allocation, but doesn't perform benchmarks on database and on the 2d and 3d graphics.

Even as a non-dev its intersting. Nice work

Nice job. Even though i dont own this phone anymore but im still interested of benchmarks. Saw one in antutu and the highest for your phones is about 7000+. The guy (I forgot who) said that he edited something in the build.prop to achieve that high score. Only thing I remember is that he posted the line in the q&a thread.

Juhan Jufri said:
Nice job. Even though i dont own this phone anymore but im still interested of benchmarks. Saw one in antutu and the highest for your phones is about 7000+. The guy (I forgot who) said that he edited something in the build.prop to achieve that high score. Only thing I remember is that he posted the line in the q&a thread.
Click to expand...
Click to collapse
debug.gr.swapinterval=0
which disables the 2d FPS cap, it preforms well on benchmark but sucks in reality, overheating your gpu for nothing, and all animations are bugged

Christopher, where did you get the custom Linaro toolchain optimized for Cortex-A?

R: Benchmarks, suggestions and researchs for kernel optimization
android1234567 said:
Christopher, where did you get the custom Linaro toolchain optimized for Cortex-A?
Click to expand...
Click to collapse
I've built myself, take a look here:
http://forum.xda-developers.com/showthread.php?t=2098133
Sent from my GT-I9001 using xda premium

i would like to benchmark ROW and SIO scheduler.
using CF Bench is enough right?

R: Benchmarks, suggestions and researchs for kernel optimization
hadidjapri said:
i would like to benchmark ROW and SIO scheduler.
using CF Bench is enough right?
Click to expand...
Click to collapse
Yes, you don't need to test 2d and 3d graphics, the results shouldn't change. So CF Bench is enough. Let me know your results, if you want...
Sent from my GT-I9001 using xda premium

Christopher83 said:
Yes, you don't need to test 2d and 3d graphics, the results shouldn't change. So CF Bench is enough. Let me know your results, if you want...
Sent from my GT-I9001 using xda premium
Click to expand...
Click to collapse
okay, i'll test it after i finish my class today. maybe 3-4hours later

hmm here's what i got
benchmark procedure and static variable used
1. test run at 1024MHz
2. both scheduler are tested for 4 times/batch
3. test is using CF Bench tool
4. memory allocator used is SLUB
link to pastebin
http://pastebin.com/SPrv1HVG

hadidjapri said:
hmm here's what i got
benchmark procedure and static variable used
1. test run at 1024MHz
2. both scheduler are tested for 4 times/batch
3. test is using CF Bench tool
4. memory allocator used is SLUB
link to pastebin
http://pastebin.com/SPrv1HVG
Click to expand...
Click to collapse
Thank you very much Hadidjapri!
I'm adding your benchmark results inside the first page...
Then I'll add my benchmark results too...

Christopher83 said:
Thank you very much Hadidjapri!
I'm adding your benchmark results inside the first page...
Then I'll add my benchmark results too...
Click to expand...
Click to collapse
Ok, first part completed.
Now, I'll collect my results and prepare the spreadsheet...

Christopher83 said:
Ok, first part completed.
Now, I'll collect my results and prepare the spreadsheet...
Click to expand...
Click to collapse
you mistype the clock sir. it's 245-1024 not 1401
Sent from my GT-I8150

Related

[Kernel]G2x-CM7[2.6.32.60] (054-stable)OC~1.55GHz/UV/SLQB/BFQ/ZRAM/Voodoo [Oct-9]

Here's a kernel build based on CM7 Kernel Source Tree
Special Shout out to DebauchedSloth for his pull requests and collaboration on this open source project
Just a statement regarding kernel source: The Kernel Source is of course covered under GPL version 2. Free software does NOT mean no work or time was spent working on it. I have donated a large sum of my free time to hack this kernel. If you use my modified kernel source in its entirety, I kindly ask you to send me a github pull request or PM whenever you find bugs or think you can help improve my kernel hack further. This way the entire community will truly benefit from the spirit of open source. Thank you
What is a Kernel? The Kernel is the Foundation in which everything else builds upon in any software system.
[Car Analogy]: Kernel is like the Engine, Electrical system and the Transmission to a car. The Library, Framework and the Apps [AKA ROM] are the body frame and the rest of the Car.
​
THIS KERNEL is BASED ON CM7 Source Code. So it is COMPATIBLE ONLY WITH CM7 Builds.
Please DO NOT use any task killers, they DO NOT improve performance nor battery life. They INTERFERE with your phone's stability (more crashes) and App compatibilities (Forced Close).
ZRAM (aka CompCache aka RAMZSwap)
ZRAM is an updated version formally known as CompCache and RAMZSwap. It was originally designed for 2.6.38.xx kernels, I have backported to our 2.6.35.xx kernel. ZRAM allows real-time compression of memory objects in RAM thus reducing memory pressure for the Linux kernel and can keep more apps in memory longer (more apps in RAM == better performance, less fetching from slower MMC or SDCard). Compression, however, is not Free. Some CPU cycles are required to do the compress/decompression, so there's a slight penalty for it. The original CompCache / RAMZSwap required a user space binary to control its behavior which adds additional penalty to performance, but the new version ZRAM eliminated the need for a separate dedicated daemon, thus reducing the overhead and increased performance from the old CompCache by 20%. Therefore, with the newer implementation of ZRAM interface, the performance penalty is almost negligible.
Joe's RCU (Optimized for Small SMP systems)
Joe Korty has created an RCU for small SMP systems (> 32 cores). His approach is to isolate all the Garbage Collection (GC, a slow time consuming but necessary processing) to a single core, thus allowing other cores to ONLY work on real required processing. This will allow the additional cores to complete their assigned tasks as fast as possible (not bogged down by GC) then immediately go back to a suspended state (saving battery).
Fast No Hz RCU (Optimized for SMP operations)
Fast NoHz is an optimized version of the traditional Tree RCU. Many new kernels are using the Tickless NoHz design. This RCU is tailored and designed to work with the new NoHz kernel system.
Brain F*ck Scheduler - (BFS)
This scheduler is designed to be simple and speedy tailor specifically for user interface type systems such as desktop/smart phone devices where user interaction is MORE important than serving 1 million web requests (CFS, the default scheduler) at the same time (think of nimble desktop workstations vs large corporate servers).
SLQB - (SLAB allocator with Queue)
This memory allocator is designed for small number of CPUs system (such as desktop or smart phone devices). This allocator is design to be simple and it is optimized for using order-0 pages as much as possible (order-0 pages are the simplest therefore quickest type of memory in a Linux system to allocate). Not all kernels are using SLQB including CM7 main line...
Fair Budget Queue (BFQ I/O scheduler)
This I/O scheduler is an improvement on top of Completely Fair Queue (CFQ). CFQ is fair in terms of time but not in terms of throughput / bandwidth, so BFQ make sure that both time and throughput / bandwidth are balanced across all requests.
THIS IS ONLY FOR THOSE WHO ARE WILLING to FLASH THIS ON HIS/HER OWN PHONE... IF YOU ARE NOT COMFORTABLE WITH THIS YOU SHOULD NOT FLASH THIS.
For those who decide to flash, please post the results and/or issues here
[ Current Release Files: ]
[ Start @ 1.0 GHz, Stock Voltage, Max @ 1.55 GHz ]
(Official LGE/Tegra Voltage Values, Same as STOCK LGE Kernel)
The File ==> CM SV Kernel Version 054 stable <==
[ Start @ 1.0 GHz, Stock Voltage (Low Grade aka LG, Max @ 1.48 GHz ]
(Official LGE/Tegra Voltage Values, Same as STOCK LGE Kernel)
The File ==> CM SV Kernel Version 054 stable (LG) <==
[ Installation procedure: ]
1. reboot to CWM
2. Clear cache
3. Advanced, clear Dalvik
4. install zip from SDcard
5. Reboot
DONE!
[ Bulletin: ]
Version 050 is out. SOD, performance issues fixed
[ Bugs: ]
None so far...
[ History: ]
See 2nd post below!
Standard Disclaimer: Not responsible for bricking your phone, voiding your warranty, or any other pain or suffering you may feel as result of using this ROM or Kernel!!!
My github in Compliance with GPL
[ History: ]
Version 0.0.1 (deprecated)
Added SLQB memory allocator
Added FakeShmoo OC/UV
Added MinMax Governor
Version 0.0.2 (deprecated)
Adjusted Touch Sensitivity
Adjusted virtual keyboard deadzone
Version 0.0.3 (deprecated)
Updated Kernel to 2.6.32.40!!! Latest Patches!
Version 0.0.4 (deprecated)
Added new 1500 MHz frequency
Made Performance Governor Default (supposedly Tegra has HW scaler)
Default to 1100 MHz as startup frequency.
Version 0.0.5 (deprecated)
Fixed Max OC to allow proper 1.5 GHz setting
Revert back to MinMax Governor to conserve Battery Life
Version 0.0.6 (deprecated)
Updated kernel battery driver for better battery reading
Reduced amount of memory freed by oom_kill
Undervolted -50mv across the board by default
Lowest CPU Freq is now 400 MHz instead of 300 MHz, voltage remain the same
Governor switched back to performance due to some issues
Version 0.0.7 (deprecated)
Removed unnecessary spin locks to eliminate random stalls (lag)
Version 0.0.8 (deprecated)
Removed LG ATS driver support (not needed)
Removed ERRATA 720789 (not needed)
Version 0.0.9 (deprecated)
[ major fail on my part. blame on 3AM kernel hacking ]
Patched MM portion of kernel
Added Relaxed I/O accesses
Version 0.1.0 (deprecated)
Patched from 2.6.32.40 to 2.6.32.41
Compiled with Tegra2 specific VFP optimizations
Version 0.1.1 (deprecated)
Compiled with even MORE Tegra2 specific optimizations
Version 0.1.3 (Beta, Closed!)
Updated battery driver by DebauchedSloth
Boosted Headset volume by DebauchedSloth
Version 0.1.4 (Beta, Closed!)
Updated battery driver (part 2) by DebauchedSloth
Version 0.1.7 (deprecated)
Use normal oom_killer threshold
Upated to use TMUS specific CPWatcher (fixed kernel oops)
Revert star_battery change internal percentage calc method
Mem Cgroup optimizations
Fixed init.d issue
Added read-ahead cache for internal FLASH and SDCARD
Version 0.1.8 (deprecated)
Patched MM
Patched ASHMEM
Updated RCU to use NoHz matching NoHz for SMP used by Tegra2
Version 0.1.9 (deprecated)
BCM4329 disable ISCAN, enabled CSCAN
Patched RCU IRQ handling
Grab CPU Serial Number during boot
Version 0.2.0 (deprecated)
Added LG specific LED kernel driver (props to Aremcee)
Enabled LED generic driver
Version 0.2.1 (deprecated)
Fixed LG LCD Back Light driver
Updated LG LCD ALC/ALS sense cycle from every second to every 1.5 seconds (reduce pulsing effect)
Version 0.2.2 (deprecated)
Memory Carveout reduced from 128 MB to 64 MB
Updated LED config
Overclocked AVP from 240000 KHz to 266400 KHz
Overclocked DDR2 SDRAM timing from 300 MHz to 333 MHz
Version 0.2.3 (deprecated)
Updated BlackLight driver to be more compatible
Version 0.2.4 (deprecated)
Reduced cpu load by making LED notification as a single cpu thread
Reduced cpu load by making Battery driver polling as a single cpu thread
Reverted back to CM7 battery driver for now
Version 0.2.7 (deprecated)
Updated OC Voltages and Frequencies for UV and SV kernels
UV Kernel up to 1.55 GHz
SV Kernel up to 1.40 GHz
Fixed Gyro/Accelerometer output scale factor
Fixed Suspend issue
Fixed lag issue
Version 0.2.8 (deprecated)
Enabled USB Accessories Support
Revert to DS' Battery Driver (CM7 batter driver was causing overheating issues and faulty charges).
Version 0.2.9 (deprecated)
Patched to the p990h v10a drop
Split DS and CM driver into separate zips
Dropping EXT3 versions (too many zips to deal with)
Version 0.3.0 (deprecated)
Fixed WiFi DeepSleep
Enable BT Address access
Reduced unnecessary activities in Battery Charger
Power off Hall Sensor (magnetic) and Accelerometer when not using
Version 0.3.1 (deprecated)
Fixed overly aggressive accelerometer sleep policy
Added Voodoo Sound Processing
Version 0.3.2 (deprecated)
Reverted both power save for Hall and Accelerometer
(Both commits broke magnetic and compass drivers)
Version 0.3.3 (deprecated)
Partially revert load reduction for battery drivers (CM7 and DS)
(this is to fix alarm issue)
Revert WiFi deep sleep policy
(this is to fix WiFi Calling Issue while screen off)
Version 0.3.4 (deprecated)
Changed GPU carving back to 128MB to fix reboot issues
Cleaned up FakeShmoo Overclock code in general for future tweaks
GPU 3D overclock enabled
APV Overclock increased to 280000
Added new LED notification compatibility
Version 0.3.5 (deprecated)
Updated to LG latest drop v10e
Allowed LED lights to be configurable
Version 0.3.6 (deprecated)
Updated to LG latest drop v10e (part 2)
Updated touch screen driver
Version 0.3.7 (deprecated)
Reverted drop v10e's NVRM changes
Adjusted sleep GPIO settings
Updated Kernel to patch level 2.6.32.42
Version 0.3.8 (deprecated)
tegra_gps: Hold wakelock while GPS is in use
Cleaned up OC minor coding error
Updated Bluetooth Sleep driver from V21e (Better Power Savings)
Added Compressed RAM Swap Memory from LGE V21e (More available RAM)
Updated WL driver to use thread based control from LGE V21e (Better way of Control)
Updated Gyro Accel, Compass and TS0710MUX (used for GSM) drivers from LGE V21e (Faster Transfer and better sensor readings)
Added Memory Carveout Killer to reclaim unused memory from LGE V21e (More available RAM)
Version 0.4.1 (deprecated)
Fixed oops that was 0.4.0 (Blame midnight hax and lack of caffeine)
Patched kernel to 2.6.32.45
Updated Battery Charger driver from LGE V21e
Updated rindrv for better TCP throughput from LGE V21e
Updated Mic Bias for headset from LGE V21e
Updated Headset and Amp initialization order per LGE V21e
star_bl: Lower ALC voltage values
p99x: Board file updates from v21e
star: Fix headset detection on resume
star_powerkey: Fix missed events while on LP1
star_proximity: Move event generation to workqueue
nvodm_touch_synaptics: Adjust coordinate limits
star_proximity: Fix pin assignment on p999
Updated CM7 battery charger driver
Version 0.4.2 (deprecated, Nightly 143+)
Updated RAMDISK for Nightly 143+
USB: Remove serial functions from RNDIS composition
Revert "TTY: ldisc, do not close until there are readers
Revert "Fix memory leak in cpufreq_stat
removed LGE's compressed RAM Swap
Version 0.4.3 (deprecated)
Used the git implementation of SHA-1 to reduce boot time by 11%
Updated uidstat to only count IPv4 traffic
Optimized memcpy and memmove for string library calls (real working version )
Version 0.4.4 (deprecated, Nightly 174+)
Added optimized CRC32 and CRC32c which pretty much improves EVERYTHING which use those 2 library calls including File Systems, TCP/IP etc
Added Arcee's SPI DVS patch
Added LZO compression support (for ZRAM)
Added ZRAM patched to beyond Linux 3.1-rc9 (a newer version of Ramzswap without user space daemon )
tegra: Updated nvhost for new star userspace bits
Version 0.4.5 (deprecated, Nightly 174+)
cpufreq: fix cpufreq_stats table removal warning via cpu hot-plug
base:cpu.c: Cherry pick updates from Motorola Atrix 4G kernel
cpufreq: cherry picked updates from Motorola Atrix 4G kernel
compilation: fixed annoying debug section mismatch warnings
Revert "Fix memory leak in cpufreq_stat"
kernel patch: 2.6.32.48 -> 2.6.32.49-rc1
atomic_t: Cast to volatile when accessing atomic variables
Revert "Revert "Fix memory leak in cpufreq_stat""
Revert "Revert "TTY: ldisc, do not close until there are readers""
Revert "tegra: Import dvs updates for SPI from p999's v21e"
Revert "nvrm_user.c: Updates from the p990 v10e drop. Fixes BSOD while charging"
kernel patch: 2.6.32.47 -> 2.6.32.48
kernel patch: 2.6.32.46 -> 2.6.32.47
kernel patch: 2.6.32.45 -> 2.6.32.46
Version 0.4.6 (deprecated, Nightly 174+)
star: Import some v20l patches
star: Add GPIO pins G0, G1, and W2 to wakeup pad
mm: retry page fault when blocking on disk transfer
sched/rt: code cleanup, remove a redundant function call
ARM: Add optimised swahb32() byteswap helper for v6 and above
hugetlb: Replace BUG() with BUILD_BUG() for dummy definitions.
kernel.h: Add BUILD_BUG() macro.
block: limit default readahead size for small devices
PM / Suspend: Fix bug in suspend statistics update
mm/vmalloc.c: eliminate extra loop in pcpu_get_vm_areas error path
lockdep: print lock name for lockdep_init_error
init/main.c: execute lockdep_init as early as possible
[PATCH] Input: introduce device properties
[PATCH] input: mt: Add hovering distance axis
input: mt: Break out slots handling
Input: introduce MT event slots
USB: f_mass_storage: Disable write cache support
kernel:sched: LOAD_FREQ (4*HZ+61) avoids loadavg Moire
sched: don't call task_group() many times in set_task_rq()
PM: wakelocks: Don't report wake up wakelock if suspend aborted
rtc alarm: fix bad index when canceling alarms[]
ARM: support XZ compressed kernels
decompressors: add boot-time XZ support
decompressors: add XZ decompressor module
arm: Allow CPU-supported unaligned accesses
PM: wakelocks: Display wakelocks preventing suspend by default
mmc: core: put eMMC in sleep (cmd5) mode before suspend
input: evdev: Add missing wake_lock_destroy
lookup3(). The new hash function
Version 0.4.7 (deprecated, Nightly 174+)
Patched to kernel.org 2.6.32.50
Version 0.4.8 (deprecated)
Patched to kernel.org 2.6.32.51
Version 050 (Current, CM7.2.0+)
Increased BL polling from 2 sec to 3 sec
Fixed sys_sync() stability issues
Backport CFS Autogroup to allow for better multitasking performance (smoother operations)
Optimize Driver wait/sleep time outs with more CPU friendly operations
Fixed occasional Sleep-to-Off issues (Take 2 )
Fixed occasional Sleep-to-Off issues
Removed some kernel debug options
Enable ARM unaligned access
Added CM7.2.0 Stable Compatible RAMDISK
Added Screen Off CPU limiter (limit CPU usage to Max 503 MHz)
Turn off 2nd CPU core while screen off
Fixed reboot hang issues
Fix Temple run issue using Sensor updates from v20L
DS battery driver is NOW DEPRECATED (NO LONGER AVAILABLE)
Add CPU Freq Table support (which fix the CPU stats bug, now you can use CPUSPY to see deep sleep stats)
Adjusted CPU freq table, Lowest @ 216MHz, Highest @ 1552MHz
use generic strnlen_user and strncpy_from_user functions
Patched to Linux 2.6.32.59
Added 18 patches from LGE V21Y 2.3.4 GB source drop
Reserved 2 just in case....
When you say you've added min/max governer not sure what you mean. I'm under the impression that Tegra only uses Performance. When I go into governer setting in pimpmycpu there is no option to change it.
Note: It boots fine with cm7 and BT/wifi work fine. Now to test OC/UV
jlevy73 said:
When you say you've added min/max governer not sure what you mean. I'm under the impression that Tegra only uses Performance. When I go into governer setting in pimpmycpu there is no option to change it.
Note: It boots fine with cm7 and BT/wifi work fine. Now to test OC/UV
Click to expand...
Click to collapse
I don't see why tegra only supports performance... I could be wrong... Governor should be independent of CPU architecture underneath.... Could be a limitation of pimpmycpu...
BTW, Did you try it yet? Did it boot? I am curious....
Just wanted to say I just donated 10.00 hard earned bucks towards your G2X fund Faux!
faux123 said:
I don't see why tegra only supports performance... I could be wrong... Governor should be independent of CPU architecture underneath.... Could be a limitation of pimpmycpu...
BTW, Did you try it yet? Did it boot? I am curious....
Click to expand...
Click to collapse
This kernel is excellent, very fast @1.3/1.3 Smartbench 2011 score was 4976/3014. That's a better score than the viewsonic clocked @ 1.7
Fp2sd = 117FPS
Linpack = 49
Great work, thanks! Hope you get your device soon!
jlevy73 said:
this kernel is excellent, very fast @1.3/1.3 smartbench 2011 score was 4976/3014. That's a better score than the viewsonic clocked @ 1.7
fp2sd = 117fps
linpack = 49
great work, thanks! Hope you get your device soon!
Click to expand...
Click to collapse
thank you thank you thank you... I am very happy it booted at all.. I am even more happy that it actually worked from a blind build!!!!!
PLEASE TEST the HELL OUT OF IT!!!!
GOing to bed... tired as hell
faux123 said:
thank you thank you thank you... I am very happy it booted at all.. I am even more happy that it actually worked from a blind build!!!!!
PLEASE TEST the HELL OUT OF IT!!!!
GOing to bed... tired as hell
Click to expand...
Click to collapse
I sure will, once again thanks. Great job
Is this only for CM7? I just love the way stock is running for me so far. I mean I don't mind reflashing CM to test this.
Sent from my LG-P999 using XDA App
And this is for CM7 only??
G2X
fcisco13 said:
And this is for CM7 only??
G2X
Click to expand...
Click to collapse
Yes, for cm7 only.
Ouch....would really love to give these kernels a try...but the stock rom is sick....I anxiously await a stock overclocked kernel....if I had the time and skill I'd have done it myself.
Sent from my LG-P999 using XDA Premium App
Kernal boots fine for me as well. Noticed a increased in speed @ 1.4GHz
Get the phone already!
Quandrant Results
Original at 1Ghz got a ~2000
Overclocked at 1.4Ghz got a ~2800
I know Quandrant isn't accurate but it's fun.
Damn....u did it first! Nice job congratulations!
This thing absolutely screams at 1.3GHz. I'm not experiencing any new bugs or seeing fixes to old ones. I hope folks will post speeds and voltages that are working for them as our use of this kernel settles into a routine.
bookmarked this thread! might wanna try soon.
jland22 said:
Just wanted to say I just donated 10.00 hard earned bucks towards your G2X fund Faux!
Click to expand...
Click to collapse
I just donated another $5.00 not much but your building roms blind...Great Job
Is this only for cm7? I had alot of problems with cm7 could connect to mobile network no matter what I tried. I would love to try this just don't want to mess with cm7 right now cause I need my phone for work & on call emergencies. So any who will this work on stock rom with Pauls fix? Please let me know I'm dieing to give this kernel a go. Thank you fuax123 your hard work is greatly appreciated. Hope to see more awesomeness from you in the future.
Sent from my LG-P999 using XDA App
Love your work!!! Can't wait to try this. Sent ya $30 and would love to send ya a fone but your blind work is simply AMAZING!
Thanks 3x

[DEV ONLY] i9003 overclock module [need help from devs]

hello guys so i was looking at this project for Motorola Droid X:
http://code.google.com/p/milestone-overclock/
since Droid X has similar OMAP3630 chipset i thought we could try it out for this device...
if it has already been tried out by u guys then sorry for dupe post
anyways the sources available (milestone-overclock-module-1.4.8.tar.gz) were not directly compatible with the i9003 kernel sources (GB_CHN_UPDATE1) so i have modified it slightly.... and now the module gets compiled and it gets loaded (by insmod)... the sysfs and proc interface is active... even the app (MilestoneOverclock148.apk) detects the module correctly... but the changes dont work...
i invite all devs to help out with this...
modified sources are posted here:
https://github.com/DooMLoRD/i9003-overclock
noobs kindly dont spam this thread....
P.S.: Droid X has got overclock upto 1.4GHz with help of this so i am sure we can try little more overclock than 1.1GHz
If you look at the Samsung code in arch/arm/mach-omap2 and /plat-omap, and compare it with code seen for example in the nook color sources (OMAP 3630, see here), there are HUGE differences.
Normally the opp frequency table seems to be hard coded and easy to edit. Samsung on the other hand decided to dynamically assemble it in board-latona.c with info from cpufreq34xx.c (if I overlook that correctly). These differences could be the reason the module does not work.
Further, the line Amit and you changed in clock.c could - but I am not quite sure - actually lead to 10% higher clocks on every opp step. Because what you changed
Code:
- mpurate *= 1000000;
+ mpurate *= 1100000;
is a conversion factor from MHz to Hz. The line
Code:
if (mpurate < 1000)
above seems to be a logical check if the desired clock has been given in Hz or MHz, which is expected to be at max 800 for the 3630. For our 3640 the highest frequency is 1000, which would require the check to be
Code:
if (mpurate < 1001)
or similar, but they might have overlooked this change. If the input is below this boundary, it is thought to be in MHz, and is converted to match the internal logic which works with Hz only.
And two more questions: I experimented a lot with the OC code, and even added two new opps (1100/840 and 1200/865) to my tables. I could select them, and everything including cpufreq scaling tables was correct, but the CPU never was actually clocked above 1000MHz. Do you know why? And did you check if it is with your kernel (compare benchmark values, do not trust any other source, they all lie )?
previously i was also having milestone A853 and by the overclock module it can be overclocked to 1.2 ghz
XDA_Bam said:
If you look at the Samsung code in arch/arm/mach-omap2 and /plat-omap, and compare it with code seen for example in the nook color sources (OMAP 3630, see here), there are HUGE differences.
Normally the opp frequency table seems to be hard coded and easy to edit. Samsung on the other hand decided to dynamically assemble it in board-latona.c with info from cpufreq34xx.c (if I overlook that correctly). These differences could be the reason the module does not work.
Further, the line Amit and you changed in clock.c could - but I am not quite sure - actually lead to 10% higher clocks on every opp step. Because what you changed
Code:
- mpurate *= 1000000;
+ mpurate *= 1100000;
is a conversion factor from MHz to Hz. The line
Code:
if (mpurate < 1000)
above seems to be a logical check if the desired clock has been given in Hz or MHz, which is expected to be at max 800 for the 3630. For our 3640 the highest frequency is 1000, which would require the check to be
Code:
if (mpurate < 1001)
or similar, but they might have overlooked this change. If the input is below this boundary, it is thought to be in MHz, and is converted to match the internal logic which works with Hz only.
And two more questions: I experimented a lot with the OC code, and even added two new opps (1100/840 and 1200/865) to my tables. I could select them, and everything including cpufreq scaling tables was correct, but the CPU never was actually clocked above 1000MHz. Do you know why? And did you check if it is with your kernel (compare benchmark values, do not trust any other source, they all lie )?
Click to expand...
Click to collapse
Yes I know the changes in diff omap kernel sources... Spent a few hrs today comparing milestone/droid x and i9003 kernel sources to get this module complied and loading...
I am sure that the change done by amit is correct, because there is a very prominent change in linpack scores ~18 compared to ~16 which is typical of a 10% overclock...
As for ur other two questions I posted this earlier in the other thread
DooMLoRD said:
Not sure... These omap chips seem to have only 4 bins (300/600/800/1000)... We are currently making the 1000 MHz bin run at 1100mhz... I am not sure if we can add extra bins... I tried adding a lower 125MHz bin, it was shown by setcpu but the device never really went below 300mhz... May be we need to investigate it further...
Sent from my R800i using XDA App
Click to expand...
Click to collapse
P.S.: the chip on this phone is OMAP3630
Sent from my R800i using XDA App
DooMLoRD said:
I am sure that the change done by amit is correct, because there is a very prominent change in linpack scores ~18 compared to ~16 which is typical of a 10% overclock...
Click to expand...
Click to collapse
OK, so the overclock is working. Nice Concerning the mpurate, have a look here. The author is working at TI, so I expect him to be familiar with the code. However, that does not mean we can't use the conversion factor for overclock. It's just not "clean".
DooMLoRD said:
P.S.: the chip on this phone is OMAP3630
Click to expand...
Click to collapse
Yep, you're right. Got that wrong
---------- Post added at 10:50 PM ---------- Previous post was at 10:41 PM ----------
And another idea: For the Nook Color, there is a guy who implemented an interface and an app to change the clocks. It is different from droid-overclock, because he implemented a sysfs interface in the kernel sources. Hope this helps.
http://code.google.com/p/milestone-overclock/
sorry its of no use as yr already checked it out
XDA_Bam said:
And another idea: For the Nook Color, there is a guy who implemented an interface and an app to change the clocks. It is different from droid-overclock, because he implemented a sysfs interface in the kernel sources. Hope this helps.
Click to expand...
Click to collapse
That looks very much like the sysfs interface we added for VDD control on QSD8250/MSM7X30... Should work I think...
Sent from my R800i using XDA App
akashsgpgi said:
http://code.google.com/p/milestone-overclock/
sorry its of no use as yr already checked it out
Click to expand...
Click to collapse
U should be BANNED for spamming.... The link u posted is already there in the second line of the main post...
READ!!!!
Sent from my R800i using XDA App
I made progress with the sysfs interface seen on the Nook. Kernel boots, and the correct rates are displayed under /sys/power/mpu_freq_oppX. I was also able to set the hightest opp to 800 MHz, so that the two highest were both at the same frequency. The setting worked (confirmed with Linpack). But 1100 MHz was ignored (stayed at 1000). Looking into this further.
XDA_Bam said:
I made progress with the sysfs interface seen on the Nook. Kernel boots, and the correct rates are displayed under /sys/power/mpu_freq_oppX. I was also able to set the hightest opp to 800 MHz, so that the two highest were both at the same frequency. The setting worked (confirmed with Linpack). But 1100 MHz was ignored (stayed at 1000). Looking into this further.
Click to expand...
Click to collapse
so wht cpu freq table are u using exactly?
wht i think is we should concentrate on this (atleast for now):
just keep the 4 bins as is (300, 600, 800, 1000)
then try n get the access to these via sysfs (or proc)
see if we can modify them via that interface, say change 1000 to 1100 or change 800 to 900
and then do tests if these work...
if possible make a sysfs (or proc) interface for VDD (voltage control) too...
have u pushed the testing changes... i am working on same thing here... might help to speed things up...
I am currently testing on the master branch, so the branch is "wrong", but this is the commit:
Sysfs interface
Because only underclock works as of now, I am tested setting
Code:
if (mpurate < 2000)
but that didn't help. Now I will define 1100 and 1200 MHz steps in board-latona.c and cpufreq34xx.c to see if this helps.
EDIT: Nope, that didn't solve it. CPU does not run at 1100. Not even 900. Stays at 1000 in both cases. 800 can be forced...
some updates on the overclock module:
we need to search in /proc/kallsyms for:
clk_init_cpufreq_table
cpufreq_stats_update
on our kernel (uc-kernel v04) they are at:
Code:
c005a198 T clk_init_cpufreq_table
c03c5aec t cpufreq_stats_update
these may be different on stock kernel we need to use specific address
I just thought this might be helpful since Optimus black has the same hardware.
joelmonty said:
I just thought this might be helpful since Optimus black has the same hardware.
Click to expand...
Click to collapse
its the same module dude...
these are all based on milestone-overclock module
DooMLoRD said:
some updates on the overclock module:
we need to search in /proc/kallsyms for:
clk_init_cpufreq_table
cpufreq_stats_update
on our kernel (uc-kernel v04) they are at:
Code:
c005a198 T clk_init_cpufreq_table
c03c5aec t cpufreq_stats_update
these may be different on stock kernel we need to use specific address
Click to expand...
Click to collapse
Why these two? Cpufreq seems to be quite happy with the frequency tables. All frequencies are correctly listed, and the highest available for hardware and scaling are correct (say 1100, if I set it). But some "mysterious barrier" doesn't let the cpu clock as high as requested by cpufreq.
XDA_Bam said:
Why these two? Cpufreq seems to be quite happy with the frequency tables. All frequencies are correctly listed, and the highest available for hardware and scaling are correct (say 1100, if I set it). But some "mysterious barrier" doesn't let the cpu clock as high as requested by cpufreq.
Click to expand...
Click to collapse
read the sources of the module it explains why we need to look at those values...
DooMLoRD said:
read the sources of the module it explains why we need to look at those values...
Click to expand...
Click to collapse
Looked into it, and got the module to load and change frequencies by manually setting omap2_clk_init_cpufreq_table_addr=0xXXXXXX. I was able to underclock to 800 and back to 1000 MHz. 1200 was set, but not correctly applied - the mpu was still running at 1000 MHz. Further on, it ****ed up the frequency table. Instead of [300,600,800,1000] it was [600, 600, 1000, 1000] after the test. Not good
XDA_Bam said:
Looked into it, and got the module to load and change frequencies by manually setting omap2_clk_init_cpufreq_table_addr=0xXXXXXX. I was able to underclock to 800 and back to 1000 MHz. 1200 was set, but not correctly applied - the mpu was still running at 1000 MHz. Further on, it ****ed up the frequency table. Instead of [300,600,800,1000] it was [600, 600, 1000, 1000] after the test. Not good
Click to expand...
Click to collapse
yups code needs some more patching but i am sure this is the way forward for stable overclock
I've got the basics working with a completely reworked sysfs interface (no module). See GitHub.
The idea is simple: At all times, there shall be no more than 4 OPPs enabled. For each overclock "wish", we disable the currently highest OPP, and enable the overclocked one. If this has no corresponding OPP yet, we create it.
The code works, and has the following problems / features:
Only the highest OPP can be set for now. Consequently, the overclock has to be higher than 800 MHz.
The voltage is not adjusted, yet. All overclock frequencies are run with the 1 GHz stock voltage.
The cpufreq table, policy and stats are not updated, yet
The cpu does not go into deep sleep after the clocks have been adjusted (possibly because the cpufreq table is wrong)
As OPPs are added to the table if necessary, it is theoretically possible to max out the OPP array by defining new frequencies hundreds of times (depending on the maximum array size).
To set the frequency (in MHz), type
Code:
echo "1100" > /sys/power/overclock_max_freq
It would be really cool if you could take a look, DooMLoRD. The only real problem I see right now is the cpufreq table. If this would be correctly updated, the rest would be "easy" I tried some stuff (not in the commit), but nothing worked, yet.
XDA_Bam said:
I've got the basics working with a completely reworked sysfs interface (no module). See GitHub.
The idea is simple: At all times, there shall be no more than 4 OPPs enabled. For each overclock "wish", we disable the currently highest OPP, and enable the overclocked one. If this has no corresponding OPP yet, we create it.
The code works, and has the following problems / features:
Only the highest OPP can be set for now. Consequently, the overclock has to be higher than 800 MHz.
The voltage is not adjusted, yet. All overclock frequencies are run with the 1 GHz stock voltage.
The cpufreq table, policy and stats are not updated, yet
The cpu does not go into deep sleep after the clocks have been adjusted (possibly because the cpufreq table is wrong)
As OPPs are added to the table if necessary, it is theoretically possible to max out the OPP array by defining new frequencies hundreds of times (depending on the maximum array size).
To set the frequency (in MHz), type
Code:
echo "1100" > /sys/power/overclock_max_freq
It would be really cool if you could take a look, DooMLoRD. The only real problem I see right now is the cpufreq table. If this would be correctly updated, the rest would be "easy" I tried some stuff (not in the commit), but nothing worked, yet.
Click to expand...
Click to collapse
this is the same problem as with other overclocks i was playing with...
the cpufreq table doesnt get updated... only the module based way seems to change that table...
anyways we will have to investigate this further...
oh btw i have found patch to overclock GPU...
DooMLoRD said:
oh btw i have found patch to overclock GPU...
Click to expand...
Click to collapse
Nice. Hehe

[SCRIPT/TWEAKS] [LOTK] Smurfed Out V 6.6 (ultimate build.prop/init.d) 4-21

Welcome to Smurf Land.......Where you are whisked away to a smurfalicious place!
LA LA lalalala LA LA LA LA LAAAAAA....
Alright enough with the cuteness of all this.
Basically I have created a script that prompts you (the user) to answer some vital information them based on your answers the script will inject specific tweaks to your build.prop and also to a file in your init.d folder. These tweaks include battery tweaks, memory tweaks, speed tweaks, governor tweaks, 3g and wifi tweaks, SD card tweaks, and a bunch of random tweaks. Some collected from a bunch of different phones tweaks and others created by me.
The script will search out every line in your build.prop and remove any line that is there that I am adding and remove it first to reduce duplicate codes. It will remove a whole list of other init.d files that conflict with it. Will also create a few other files and folders to add functionality and speed optimization to your phone.
What if you do not like the tweaks that I added.....well the script creates back-ups for you and you can choose the option to Un-Smurf and it will set you back to before you installed.
CREDITS
zeppelinrox for his excellent scripts.
tommytomatoe for answering all my ridiculous questions and also the space in which to post my work
Lpy for his loopy smoothness
eoghan2t7 for his tutorial on loopy smoothness
knzo for his collection of tweaks
[email protected] for his collection of scripts which I pulled some tweaks from
metalspring for his explanation of a lot of tweaks and some build.prop and init.d tweaks
scottypeterson for his ultimatescript
cwc3 for his collection of scripts which I borrowed settings from
tazzz811 for his thread on some great init.d tweaks
droidphile for his incredible guides and some great governor tweaks and I/O scheduler tweaks
Each persons name has a link attached to it to show their work and threads which to thank them.
These Settings are all over the Internet across multiple forums and presented by more than a dozen people. If any setting in here was initially created by you and you did not get credit please PM me with your Info so I can add you to the credits. No work here has been stolen or taken on purpose. If you created or founded any of these setting and do not wish for me to use them then again please PM me and I will remove them as soon as possible. Please do not start a flame war on this thread due to my ignorance. I am just trying to get these settings out to as many people as possible to bring the smoothest experience to Our phones.
Instructions
1. Download Smurfed Out script.
2. Open up Script Manager found here if you don't have it
3. Scroll Down to the Smurfed_Out.sh file and click on it. This could Possible be in your downloads folder.
4. Click on the su key, the skull and crossbones, or run as root depending on which version of script manager you have then click run
5. Follow instructions on the screen.
!!! Warning !!!
By using this script you acknowledge that it could possible break your phone. In other words don't come running to me when you phone burst into flames and or it leaves you for someone as sexy as it has now become.
Download
​
{
"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"
}
​
​
Smurfed Out V 6.6
Other Phones
Please feel free to post a thread in other forums or other site but please link back to here for the downloads. I am trying to give the user the best experience possible and if dl links are made all over the place then there is possibility for them to not get updated when I release a new version. Plus the info in the first three post here explains alot.
Developers
If you would like this baked into your ROM the PM me and I can help. I already have a ZIP file created with he exact files that you need and instructions with how to implement. I need to make a few corrections based on your specific Rom but it is an easy fix and would rather do it or help you do it so there arnt any conflicts at all. I have already helped a few other DEV's bake it into their Roms and it works great.
Thank Me
If You Find this post USEFULL and ENJOY using the SMURFED OUT Script then Please take the time out to THANK ME. I'm Not asking for Donations but this does take countless hours to put together. Also you can click the links in my sig to see my working in the google market(PLAY) follow me on my Twitter and Facebook sites
Info
I/O Scheduler descriptions
Different Governors
LMK Settings (Low Memory Killer)/ADJ & MINFREE Values
ICS USERS
IF running ICS then go here to auto patch your SERVICE.JAR for new OOM settings.
FYI your services.jar can be found /system/frameworks/services.jar.
Seriously
If your coming from a version before 4.0 I Highly recommend Un-Smurfing First
Highly Recommended
If you want to make sure the settings stick....go into your /system/etc/init.d folder with script manager and set the 45smurfed file to run as root and run at boot. Some say this makes the setting stick others see no effect.
MUST READ
If your launcher does not show up in the auto detector then please inform me of the package name (found in /data/data) usually looks like this blah.blah.launcher. I will add it to the database and update the script rather quickly.
Change log
V 6.6
Added Instant Smurf-Power option which will clear out caches and give your phone an oh so fresh feeling (kinda like restarting your phone without having to)
Added in half a dozen build.prop tweaks
Fixed Some issues with the 45smurfed file
Added in ability to choose how much you want your Dalvik heapsize to be
Rearranged the Loopy Smoothness Tweak
Added in EXT4 Tweaks (convert your sd card over to ext4 and answer the question in the script for it to go into effect)
Added in swap support
Added in some new checks
Added in some permission sets so settings dont get overwritten
I'm sure there are more but can't think of any
Highly recommended that you UN-SMURF before you run the newest version as some of the files that the script removed in last version are needed in this version.
V 6.5.1
Fixed name of Launcher not being correct
Fixed wifi and 3g not switching, addition of last minute build.prop tweak jacked it all up
V 6.5
Fixed some syntax errors
Corrected names of a few launchers
Added in redundancies to back up everything the script removes so when unsmurfing there is no residual effects and everything is returned to Pre-Smurfed conditions
Everything is now backed up to a folder created on your SD card now instead of spread all over. File is called SmurfedBackups
Tried to fix Launcher Detector not reading some Launchers but cant get pm list packages to sent list to a file with out getting a segmentation error...any suggestions would be helpful
If your launcher is not found and you know the name of it try it out cause its saved in the detector as a launcher just isn't being autodetected
On AOKP and roms based off of it some of the init.d tweaks you find in rom control startup tweaks will not work anymore as i removed them becuase my script does it for you now. They will be restored if you Un-Smurf
Updated HTML doc with latest build.prop edits
Changed a few settings in build.prop
V 6.4
Fixed launchers not being found
Reorganized code
Added the google dns servers to the resolv.conf file
Added in check for HWA and if there it removes cpu rendering to speed up os
Fixed some syntax errors in init.d file
Added in a few new build.prop tweaks
Added in regroupings of OOM Settings into the build.prop
V 6.3
Added Miui Launcher
Added Lightning Launcher
Changed the way the I/O Schedule List shows up
Changed the defraging database process. Should be a lot cleaner now.
Added a few extra build.prop tweaks. If you look at them the values are
supposed to be blank.
V 6.2
Fixed problem with Cron files not copying over correctly
V 6.1
Fix syntax error
V 6.0
Added checks to make sure no typing error occur
Added info on which settings you are using to menu
Added more options to the menu that allows you to
Change your Launcher
Change your LMK Settings
Change your I/O Scheduler
Changed LMK settings names (Spaceballs Reference now)
Added adj actual numbers to LMK settings so user knows the values
Added CRON to wipe different cache every hour ever day and every week
Script now Auto finds your Launcher(s) and has you select from a list (If
yours doesn't show up tell me in this thread and I will add it. I already have over 60 different launchers presearched)
Fixed init.d file (some variables wernt getting sent correctly
Removed some build.prop edits as to fix 3g and wifi issues
I think that's it. But im sure I missed something
V 5.0
Changed delivery of the init.d file
Changed the numbering of the init.d file
Took away 3g/wifi tweaks that were interfering with wifi connecting and toggles not working
Added in checks to remove some conflicting init.d scripts
Added in checks for Selection of aggressivness of OOM (adj & minfree) settings
Added in an option of what I/O scheduler you want to run
Added in a few other build.prop tweaks
Cleaned up some code
V 4.7
Added OOM levels
Added Min free values
Added Min KB values
Added option to choose from AOSP or SENSE
Added Option to Choose from ICS or Gingerbread
Lowered the Wifi option to normal levels for connection issues
V 4.6
Changed ro.ril.enable.a52=1
Changedro.ril.enable.a53=1
Changed net.tcp.buffersize.default=6144,87380,1048576,6144,87380,524288
Changed net.tcp.buffersize.wifi=524288,1048576,2097152,524288,1048576,2097152
Changed net.tcp.buffersize.umts=6144,87380,1048576,6144,87380,524288
Changed net.tcp.buffersize.gprs=6144,87380,1048576,6144,87380,524288
Changed net.tcp.buffersize.edge=6144,87380,524288,6144,16384,262144
Changed net.tcp.buffersize.hspa=6144,87380,524288,6144,16384,262144
Changed net.tcp.buffersize.lte=524288,1048576,2097152,524288,1048576,2097152
Changed net.tcp.buffersize.hsdpa=6144,87380,1048576,6144,87380,1048576
Changed net.tcp.buffersize.evdo_b=6144,87380,1048576,6144,87380,1048576
Added ro.media.enc.hprof.vid.fps=65
Govenor Tweaks for Interactive, Ondemand, OndemandX, SmartassV2, Lulzactive, and Conservative
Changed kernel.msgmni=64000
Cleaned up Code even more
V 4.5
Added a few more tweaks to the 01Smurfed file
Added a few more build.prop tweaks
Hopefully fixed the wifi->3g->wifi issue
Cleaned up the code a little
V 4.1
Changed picture and video settings...camcorder works now
Increased and decreased a few values
Added a huge amount to the init.d file
Removed the minfree values from the init.d (if you want them back I can release one for Gingerbread and one for ICS)
V 4.0
Removed some tweaks that were causing issues
Added in some new tweaks
Changed a few Settings for better response
Script now checks to see if your using a local.prop and if so copies settings to it as well
Now script creates a file in you init.d folder called 01smurfed. This has many new tweaks that will run on every boot
Comments put into script to explain what exactly is going on
Credits given in OP
V 3.3
Removed some setting that were either not necessary or we causing issues for some
Added in some new tweaks I figured out
Fixed 3g not connecting right after turning off WiFi
Fixed WiFi not connecting sometimes
Script now wipes dalvik-cache and requires a restart. Restart will take a little longer due to rebuild of dalvik
I HIGHLY recommend UN-SMURFING before you apply the newest script. I have noticed huge improvements from this last update
V 3.2
Added a few more tweaks
Fixed a typo
Made sure system was remounted as read/write before settings took place
V 3.1
Removed super user check. (Giving errors to some)
Fixed my bad spelling (lol)
V 3.0
Added 10 new edits
Cleaned up code
Made sure temp files were being deleted correctly
Change a number of setting for better tweaking
V 2.0
Huge code change. Now with options.
Now scans and removes duplicate lines
V 1.0
Initial release
Over 30 build.prop edits with more to come.
For a detailed list of settings that this script copies to your Build.prop go to /sdcard/SmurfedBackups/Smurfed_Out.html
!!! WARNING !!!
This Script now interferes with alot of other scripts. I'd recommend unsupercharging and removing some other scripts as well...Tweaks, Read Ahead SD card tweaks, Governor Tweaks, and I'm sure there are a few others. This script searches for some of the scripts mentioned and removers them if found.
Un-SMURF
During the Smurfing process a copy of all removed files is sent the the SmurfedBackups folder on your SD card. When un-smurfing your phone will be restored back to the exact way before Smurfing.
Future Releases
1. Adds in as many battery saving, speed, and responsiveness tweaks as I can find throught out many different forums.
2. removes any other script that is previously installed that may be using same tweaks....if not removing the script itself it will search out each line of each script and remove the lines individually.
FEEDBACK & BUG REPORTS
Please leave feedback after you run so others know how well this script works. I will try my best to help with any bugs that are found. If found please report in this thread with the following info
What Rom are you running?
What Phone are you using?
What settings did you choose in Smurfed Out script?
What Governor are you running?
What kernel are you using?
What things did you try before reporting?
What issues are you running into?
What is your Name and Social Security number? (lol)
What is your Blood Type? (LMAO)
Have you ever thought about donating an organ? (LMFAO)
Syntax Errors or Suggestions
If reporting syntax errors or suggestions to improve the script then please put them into code brackets so I can easily read them and also line number if you happen to remember helps as the script is over 2500 lines now. I appreciate all help with these errors and suggestions to improve the script.
Troubleshooting
My WiFi or 3G doesn't work or wont switch?
Go into recovery and wipe dalvik-cache and cache and reboot.
Check to see if data is enabled in your settings.
Check to make sure if your using a battery saver app like battery xl or juice defender that is not turning off your radios
My camcorder isn't working?
Make sure your using the most recent script. The fix was made available on V 4.1
Does this script work for other phones?
Yes in theory it does. Let me know if it works or not and I'll put it in the OP so others know
I can't get this script to run in script manager?
Make sure you are opening the script with superuser rights within script manager
Can I run this in terminal emulator?
yes type this is command line. also make sure that Smurfed Out is on root of your sd card
Code:
su
sh /sdcard/Smurfed_Out.sh
After running the script and rebooting Im getting a blank black screen?
First scroll down and read just in case and follow those instructions then follow Bug Reporting procedures
My phone got up and ran away from me?
Well this can be a problem....On one hand that would mean that this script really works...on the other hand it means your just not cool enough for you phone anymore and it found someone better.
Just In Case
Build.prop.zip attached is a flashable zip in case of emergency. It has the build.prop of aokp rom in it. If your not running that rom...download the zip. open it up. go into the system folder. Replace the build.prop with the build.prop from the Rom.zip that you are running. Put on your sd card. Flash in recovery. I am putting this here cause in the past there were issues with the script causing a freeze after boot and some people had to nand back or reflash their rom. This will fix that. Enjoy.
[SCRIPT] Smurfed Out V 5.0 (ultimate build.prop/init.d tweaks) Updated 3-18
I/O Scheduler Descriptions
Taken from this post here
Q. "What purposes does an i/o scheduler serve?"
A.
Minimize hard disk seek latency.
Prioritize I/O requests from processes.
Allocate disk bandwidth for running processes.
Guarantee that certain requests will be served before a deadline.
So in the simplest of simplest form: Kernel controls the disk access using I/O Scheduler.
Q. "What goals every I/O scheduler tries to balance?"
A.
Fairness (let every process have its share of the access to disk)
Performance (try to serve requests close to current disk head position first, because seeking there is fastest)
Real-time (guarantee that a request is serviced in a given time)
Q. "Description, advantages, disadvantages of each I/O Scheduler?"
A.
1) 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.
2) 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.
3) 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.
4) 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.
5) 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.
6) 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.
7) Anticipatory
Based on two facts
i) Disk seeks are really slow.
ii) Write operations can happen whenever, but there is always some process waiting for read operation.
So anticipatory prioritize read operations over write. It anticipates synchronous read operations.
Advantages:
Read requests from processes are never starved.
As good as noop for read-performance on flash drives.
Disadvantages:
'Guess works' might not be always reliable.
Reduced write-performance on high performance disks.
Q. "Best I/O Scheduler?"
A.There is nothing called "best" i/o scheduler. Depending on your usage environment and tasks/apps been run, use different schedulers. That's the best i can suggest.
However, considering the overall performance, battery, reliability and low latency, it is believed that
SIO > Noop > Deadline > VR > BFQ > CFQ, given all schedulers are tweaked and the storage used is a flash device
Explanation of Different Governors
Pulled from this page here
1) Ondemand:
Default governor in almost all stock kernels. One main goal of the ondemand governor is to switch to max frequency as soon as there is a CPU activity detected to ensure the responsiveness of the system. (You can change this behavior using smooth scaling parameters, refer Siyah tweaks at the end of 3rd post.) Effectively, it uses the CPU busy time as the answer to "how critical is performance right now" question. So Ondemand jumps to maximum frequency when CPU is busy and decreases the frequency gradually when CPU is less loaded/apporaching idle. Even though many of us consider this a reliable governor, it falls short on battery saving and performance on default settings. One potential reason for ondemand governor being not very power efficient is that the governor decide the next target frequency by instant requirement during sampling interval. The instant requirement can response quickly to workload change, but it does not usually reflect workload real CPU usage requirement in a small longer time and it possibly causes frequently change between highest and lowest frequency.
2) Ondemandx:
Basically an ondemand with suspend/wake profiles. This governor is supposed to be a battery friendly ondemand. When screen is off, max frequency is capped at 500 mhz. Even though ondemand is the default governor in many kernel and is considered safe/stable, the support for ondemand/ondemandX depends on CPU capability to do fast frequency switching which are very low latency frequency transitions. I have read somewhere that the performance of ondemand/ondemandx were significantly varying for different i/o schedulers. This is not true for most of the other governors. I personally feel ondemand/ondemandx goes best with SIO I/O scheduler.
3) Conservative:
A slower Ondemand which scales up slowly to save battery. The conservative governor is based on the ondemand governor. It functions like the Ondemand governor by dynamically adjusting frequencies based on processor utilization. However, the conservative governor increases and decreases CPU speed more gradually. Simply put, this governor increases the frequency step by step on CPU load and jumps to lowest frequency on CPU idle. Conservative governor aims to dynamically adjust the CPU frequency to current utilization, without jumping to max frequency. The sampling_down_factor value acts as a negative multiplier of sampling_rate to reduce the frequency that the scheduler samples the CPU utilization. For example, if sampling_rate equal to 20,000 and sampling_down_factor is 2, the governor samples the CPU utilization every 40,000 microseconds.
4) Interactive:
Can be considered a faster ondemand. So more snappier, less battery. Interactive is designed for latency-sensitive, interactive workloads. Instead of sampling at every interval like ondemand, it determines how to scale up when CPU comes out of idle. The governor has the following advantages: 1) More consistent ramping, because existing governors do their CPU load sampling in a workqueue context, but interactive governor does this in a timer context, which gives more consistent CPU load sampling. 2) Higher priority for CPU frequency increase, thus giving the remaining tasks the CPU performance benefit, unlike existing governors which schedule ramp-up work to occur after your performance starved tasks have completed. Interactive It's an intelligent Ondemand because of stability optimizations. Why??
Sampling the CPU load every X ms (like Ondemand) can lead to under-powering the CPU for X ms, leading to dropped frames, stuttering UI, etc. Instead of sampling the CPU at a specified rate, the interactive governor will check whether to scale the CPU frequency up soon after coming out of idle. When the CPU comes out of idle, a timer is configured to fire within 1-2 ticks. If the CPU is very busy between exiting idle and when the timer fires, then we assume the CPU is underpowered and ramp to max frequency.
5) Interactivex:
This is an Interactive governor with a wake profile. More battery friendly than interactive.
6) Lulzactive:
This new find from Tegrak is based on Interactive & Smartass governors and is one of the favorites.
Old Version: When workload is greater than or equal to 60%, the governor scales up CPU to next higher step. When workload is less than 60%, governor scales down CPU to next lower step. When screen is off, frequency is locked to global scaling minimum frequency.
New Version: Three more user configurable parameters: inc_cpu_load, pump_up_step, pump_down_step. Unlike older version, this one gives more control for the user. We can set the threshold at which governor decides to scale up/down. We can also set number of frequency steps to be skipped while polling up and down.
When workload greater than or equal to inc_cpu_load, governor scales CPU pump_up_step steps up. When workload is less than inc_cpu_load, governor scales CPU down pump_down_step steps down.
Example:
Consider
inc_cpu_load=70
pump_up_step=2
pump_down_step=1
If current frequency=200, Every up_sampling_time Us if cpu load >= 70%, cpu is scaled up 2 steps - to 800.
If current frequency =1200, Every down_sampling_time Us if cpu load < 70%, cpu is scaled down 1 step - to 1000.
7) Smartass:
Result of Erasmux rewriting the complete code of interactive governor. Main goal is to optimize battery life without comprising performance. Still, not as battery friendly as smartassV2 since screen-on minimum frequency is greater than frequencies used during screen-off. Smartass would jump up to highest frequency too often as well.
8) SmartassV2:
Version 2 of the original smartass governor from Erasmux. Another favorite for many a people. The governor aim 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.
9) Intellidemand:
Intellidemand aka Intelligent Ondemand from Faux is yet another governor that's based on ondemand. Unlike what some users believe, this governor is not the replacement for OC Daemon (Having different governors for sleep and awake). The original intellidemand behaves differently according to GPU usage. When GPU is really busy (gaming, maps, benchmarking, etc) intellidemand behaves like ondemand. When GPU is 'idling' (or moderately busy), intellidemand limits max frequency to a step depending on frequencies available in your device/kernel for saving battery. This is called browsing mode. We can see some 'traces' of interactive governor here. Frequency scale-up decision is made based on idling time of CPU. Lower idling time (<20%) causes CPU to scale-up from current frequency. Frequency scale-down happens at steps=5% of max frequency. (This parameter is tunable only in conservative, among the popular governors )
To sum up, this is an intelligent ondemand that enters browsing mode to limit max frequency when GPU is idling, and (exits browsing mode) behaves like ondemand when GPU is busy; to deliver performance for gaming and such. Intellidemand does not jump to highest frequency when screen is off.
10) Lazy:
This governor from Ezekeel is basically an ondemand with an additional parameter min_time_state to specify the minimum time CPU stays on a frequency before scaling up/down. The Idea here is to eliminate any instabilities caused by fast frequency switching by ondemand. Lazy governor polls more often than ondemand, but changes frequency only after completing min_time_state on a step overriding sampling interval. Lazy also has a screenoff_maxfreq parameter which when enabled will cause the governor to always select the maximum frequency while the screen is off.
11) 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.
12) Lionheart:
Lionheart is a conservative-based governor which is based on samsung's update3 source. Tweaks comes from 1) Knzo 2) Morfic. The original idea comes from Netarchy. See here. The tunables (such as the thresholds and sampling rate) were changed so the governor behaves more like the performance one, at the cost of battery as the scaling is very aggressive.
To 'experience' Lionheart using conservative, try these tweaks:
sampling_rate:10000 or 20000 or 50000, whichever you feel is safer. (transition latency of the CPU is something below 10ms/10,000uS hence using 10,000 might not be safe).
up_threshold:60
down_threshold:30
freq_step:5
Lionheart goes well with deadline i/o scheduler. When it comes to smoothness (not considering battery drain), a tuned conservative delivers more as compared to a tuned ondemand.
13) LionheartX
LionheartX is based on Lionheart but has a few changes on the tunables and features a suspend profile based on Smartass governor.
14) Brazilianwax:
Similar to smartassV2. More aggressive ramping, so more performance, less battery.
15) SavagedZen:
Another smartassV2 based governor. Achieves good balance between performance & battery as compared to brazilianwax.
16) Userspace:
Instead of automatically determining frequencies, lets user set frequencies.
17) Powersave:
Locks max frequency to min frequency. Can not be used as a screen-on or even screen-off (if scaling min frequency is too low).
18) Performance:
Sets min frequency as max frequency. Use this while benchmarking!
So, Governors can be categorized into 3/4 on a high level:
1.a) Ondemand Based:
Works on "ramp-up on high load" principle. CPU busy-time is taken into consideration for scaling decisions. Members: Ondemand, OndemandX, Intellidemand, Lazy, Lagfree.
1.b) Conservative Based:
Members: Conservative, Lionheart, LionheartX
2) Interactive Based:
Works on "make scaling decision when CPU comes out of idle-loop" principle. Members: Interactive, InteractiveX, Lulzactive, Smartass, SmartassV2, Brazilianwax, SavagedZen.
3) Weird Category:
Members: Userspace, Powersave, Performance.
[SCRIPT] Smurfed Out V 5.0 (ultimate build.prop/init.d tweaks) Updated 3-18
Explanation of LMK Settings (Low Memory Killer)
and
Explanation of Adj and Minfree settings
When your phone boots up, a file inside the boot image (init.rc) sets the system parameters. Things like the path to framework files, setting up your networks, and setting the limits at which programs are killed off to free RAM are done by this file. Now a super-Android-geek might dig inside the init.rc file and completely customize the low memory killer, but you don't have to do this to still get good results. The init.rc sets up six different "levels" of open applications. Let's have a look at them:
FOREGROUND_APP: This is the application currently on the screen, and running
VISIBLE_APP: This is an application that is open, and running in the background because it's still doing something
SECONDARY_SERVER: This is a process (a service that an application needs) that is alive and ready in case it's needed to do something
HIDDEN_APP: This again is a process, that sits idle (but still alive) in case it's needed by an app that's alive and running
For the most part, we never want to adjust when these apps and processes are killed off. They are the things that the programs we use need to properly function. For the more bold and advanced users, changing settings for HIDDEN_APP settings is possible, albeit with a LOT of trial and error. There's two more settings, and these are the ones most interesting to us today:
CONTENT_PROVIDER: This is apps that provide data (content) to the system. HTC Facebook Sync? That's a CONTENT_PROVIDER. So are things like the Android Market, or Fring. If they are alive, they can refresh and provide the content they are supposed to at the set interval. If you kill them, they can't of course.
EMPTY_APP: I call these "ghosts." They are apps that you have opened, but are done with them. Android uses a unique style of handling memory management. When an activity is ended, instead of killing it off Android keeps the application in memory so that opening them again is a faster process. Theses "ghost" apps use no battery or CPU time, they just fill RAM that would be otherwise empty. When this memory is needed by a different application or process, the RAM is flushed and made available for the new app. To satisfy the geekier people (like myself) Android does this by keeping a list of recently used apps, with the oldest apps in the list given the lowest priority -- they are killed first if RAM is needed elsewhere. This is a perfect way to handle 'ghost' processes, so there's no need to touch this part
So when you see settings like this 8,14,40,50,60, 75 you start with the first setting and it looks like this
FOREGROUND_APP = 8
VISIBLE_APP = 14
SECONDARY_SERVER = 40
HIDDEN_APP = 50
CONTENT_PROVIDER = 60
EMPTY_APP = 75
You can manipulate these numbers so that they are better managed and give You different aggressiveness and a faster UI
For the Smurfed Out script the settings are as follows
Lite = 8,14,55,70,85,100
Medium = 8,14,75,90,95,125
Max = 25,35,55,70,150,250
Extreme = 25,35,75,90,150,250
Minfrees are set as well but they are equal to the LowMemoryKiller ADJ settings.
I personally run them at Max while using ICS but everyone's experiences will be different.
Nice idea.....good job.
Sent from my PC36100 using XDA App
Looking forward to trying this!
Sent from my PC36100 using xda premium
Interesting
Sent from my PC36100 using XDA App
gonna try this now .
Um, where is the file?
Roman G said:
Um, where is the file?
Click to expand...
Click to collapse
Click on the link that says smurfed out basic
Trying new things never gets old... Let's take her for a spin and see what happens, Thanks Bro!
moreno4xl said:
Trying new things never gets old... Let's take her for a spin and see what happens, Thanks Bro!
Click to expand...
Click to collapse
Feedback is always welcome. As this is the first release I have many other changer that will be taking place in the future on this script nut wanted to release something I had working for now
Papa Smurf151 said:
Click on the link that says smurfed out basic
Click to expand...
Click to collapse
Thanks.
Typing with it now, will report back tomorrow.
I will say I do notice an instant difference, linpack say so as well.
Roman
When I click the link it just opens the file. How do I save it, so I can run it.
nickmus said:
When I click the link it just opens the file. How do I save it, so I can run it.
Click to expand...
Click to collapse
Same with me, I just opened the thread in the browser and saved file by pressing n holding. Renamed it "smurfedoutbasic.sh" and ran it in scripts manager.
Sent from my PC36100 using xda premium
Ya just long press and save. Don't need to rename. Then open it where ever downloads are saved.
Roman
So far I like being Smurfed
Mmmh... Ice Cream Sandwich
Got it using the web browser.
Thanks
Roman G said:
Ya just long press and save. Don't need to rename. Then open it where ever downloads are saved.
Roman
Click to expand...
Click to collapse
What he said lol i had to rename it cause for me it saved as a .bin file
Sent from my PC36100 using xda premium
Sweet. Been seeing the teaser in AOKP thread. Gonna give this a shot and see how it sits in after a day or so.
Sent from my PC36100 using xda premium
I've turned blue and I'm singing

[Kernel 3.0.30][RCMixSensationICS][Sense 3.6/4.0][OC 1.7][07JUN][5.6/5.5]

RC TEAM PRESENTS ​
HTC SENSATION ICS KERNEL
Come see ACS for Most recent updates
Feel free to use my kernel source without permission. Its open source so use it as you see fit. Enjoy.
{
"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"
}
FEATURES
CIFS
NLS
TUN
TMOBILE WIFI CALLING (Module supported)
OC 1.75ghz if you want to go there. Use setcpu
set to 1.5ghz by default
UV
Better wifi signal now you can connect at a weaker signal -108dbm over stock -88dbm
lower wifi voltage
you can use your flashlight with the battery at 10% over stock 30%
SWAP
ZRAM
Adjustable VDD table
5 I/O schedulers
[CFQ][NOOP][VR][DEADLINE][BFQ]
Perfect Sweep to unlock
Call Recording with app below
Click to expand...
Click to collapse
Click to expand...
Click to collapse
CPU FREQ TABLE​
192000
384000
432000
486000
540000
594000
648000
702000
756000
810000
864000
918000
972000
1026000
1080000
1134000
1188000
1242000
1296000
1350000
1404000
1458000
1512000
1566000
1620000
1674000
1728000​
Click to expand...
Click to collapse
Click to expand...
Click to collapse
Downloads below
CURRENT:
RCMix Sensation 5.5
RCMix Sensation 5.6 (Not working - Compile problems - Don't use!)
PREVIOUS:
RCMIX 5.4
RCMIX 5.4 STOCK GPU
--------------------------------------------------------------------
CALL RECORD APP
--------------------------------------------------------------------
This Kernel features 5 I/O schedulers
To change them download No Frills or System Tuner from the market and and change at will.
To Manually adjust the VDD Table use system tuner from the market or other programs
Click to expand...
Click to collapse
Click to expand...
Click to collapse
Change log
5.6
not working! wait the next build
updated s2w should fix lockscreen fixes
changed some drivers
5.5
updated to linux kernel version 3.0.30
updated sensation kernel updates
5.4
remaned rcmix smartdroid
updated linux kernel 3.0.28
updated sweep to wake (thanks showp1984)
lots of other tweaks. see git for full changelong
5.3
added sweep to unlock(showp1984)
fixed heptic feedback for sense 4(showp1984)
some ondemand tweaks
updated configs
V5.2
tweak ondemand gov
added compiler fixes
added new zip by showp
some other small code changes
V5.1
lowered flashlight usage to 5% battery power remaining
patched linux upstream to 3.0.26
added bfq IO scheduler
boosted banwith of the 2d and 3d gpu cores
changes to the OC
see git for all changes.
V5.0.1
set boot to 1512 forgot that one lol
v5
added adjustable VDD Table
added VR IO sched
UV more
multitouch tweaks
OC adjustments
see git for more
V4.3
OC to 1.72
set freq by default
set min freq to 192000
set max freq to 1.566
enabled more in configs
V4.2
tweaked OC
added muli touch tweak
updated configs
built cifs and nls into kernel
probably more
V4.1
built kernel with newest gcc compiler 4.5.2
updated htc battery core driver
OC GPU 2D core
OC GPU 3D core
updated htc sense 4 video driver
enabled zram and swap
V3
added linux kernel upstream .25
added lagfree gov
v2
added lots of wifi tweaks
added flashlight mods
added some other small tweak see git for full list.
v1
initial release
Click to expand...
Click to collapse
Click to expand...
Click to collapse
Major Credit for this project are of klquicksall! Thanks for The Beer ​
CREDITS:
To see the credits and developers that are workin on this kernel see the GIT
HERE - Kernel Source
Definitions and Terms you need to know​
Linux Android Kernel
Android's kernel is based on the Linux kernel and has further architecture changes by Google outside the typical Linux kernel development cycle.[57] Android does not have a native X Window System nor does it support the full set of standard GNU libraries, and this makes it difficult to port existing Linux applications or libraries to Android.[58]
Certain features that Google contributed back to the Linux kernel, notably a power management feature called wakelocks, were rejected by mainline kernel developers, partly because kernel maintainers felt that Google did not show any intent to maintain their own code.[59][60][61] Even though Google announced in April 2010 that they would hire two employees to work with the Linux kernel community,[62] Greg Kroah-Hartman, the current Linux kernel maintainer for the -stable branch, said in December 2010 that he was concerned that Google was no longer trying to get their code changes included in mainstream Linux.[60] Some Google Android developers hinted that "the Android team was getting fed up with the process", because they were a small team and had more urgent work to do on Android.[63]
However, in September 2010, Linux kernel developer Rafael J. Wysocki added a patch that improved the mainline Linux wakeup events framework. He said that Android device drivers that use wakelocks can now be easily merged into mainline Linux, but that Android's opportunistic suspend features should not be included in the mainline kernel.[64][65] In 2011 Linus Torvalds said that "eventually Android and Linux would come back to a common kernel, but it will probably not be for four to five years".[66]
In December 2011, Greg Kroah-Hartman announced the start of the Android Mainlining Project, which aims to put some Android drivers, patches and features back into the Linux kernel, starting in Linux 3.3.[67] further integration being expected for Linux Kernel 3.4.[68]
​
CIFS
(Common Internet File System) The file sharing protocol used in Windows. It evolved out of the SMB (Server Message Block) protocol in DOS, which is why the terms CIFS/SMB and SMB/CIFS are commonly used. The word "Internet" in CIFS does not refer to the global Internet but to generic internetworking. The term was coined in the 1996 time frame when Microsoft submitted CIFS to the IETF and before the global Internet had become mainstream. See file sharing protocol, SMB and Samba.
NLS UTF-8
UTF-8 allows you to work in a standards-compliant and internationally accepted multilingual environment, with a comparatively low data redundancy. UTF-8 is the preferred way for transmitting non-ASCII characters over the Internet, through Email, IRC or almost any other medium. Despite this, many people regard UTF-8 in online communication as abusive. It is always best to be aware of the attitude towards UTF-8 in a specific channel, mailing list or Usenet group before using non-ASCII UTF-8.
TUN
This allows you to access an openVPN network using your android device.
Kineto gan
this driver allows you to let your android device make phone calls over VOIP network. (Tmobile currently uses this feature)
Kernel Governors​
Ondemand
This governor has a hair trigger for boosting clockspeed to the maximum speed set by the user. If the CPU load placed by the user abates, the OnDemand governor will slowly step back down through the kernel's frequency steppings until it settles at the lowest possible frequency, or the user executes another task to demand a ramp.
OnDemand has excellent interface fluidity because of its high-frequency bias, but it can also have a relatively negative effect on battery life versus other governors. OnDemand is commonly chosen by smartphone manufacturers because it is well-tested, reliable, and virtually guarantees the smoothest possible performance for the phone. This is so because users are vastly more likely to ***** about performance than they are the few hours of extra battery life another governor could have granted them.
This final fact is important to know before you read about the Interactive governor: OnDemand scales its clockspeed in a work queue context. In other words, once the task that triggered the clockspeed ramp is finished, OnDemand will attempt to move the clockspeed back to minimum. If the user executes another task that triggers OnDemand's ramp, the clockspeed will bounce from minimum to maximum. This can happen especially frequently if the user is multi-tasking. This, too, has negative implications for battery life.
Performance Governor
This locks the phone's CPU at maximum frequency. While this may sound like an ugly idea, there is growing evidence to suggest that running a phone at its maximum frequency at all times will allow a faster race-to-idle. Race-to-idle is the process by which a phone completes a given task, such as syncing email, and returns the CPU to the extremely efficient low-power state. This still requires extensive testing, and a kernel that properly implements a given CPU's C-states (low power states).
Powersave Governor
The opposite of the Performance governor, the Powersave governor locks the CPU frequency at the lowest frequency set by the user.
Conservative Governor
This 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.
Userspace Governor
This governor, exceptionally rare for the world of mobile devices, allows any program executed by the user to set the CPU's operating frequency. This governor is more common amongst servers or desktop PCs where an application (like a power profile app) needs privileges to set the CPU clockspeed.
Interactive Governor
Much like the OnDemand governor, the Interactive governor dynamically scales CPU clockspeed in response to the workload placed on the CPU by the user. This is where the similarities end. Interactive is significantly more responsive than OnDemand, because it's faster at scaling to maximum frequency.
Unlike OnDemand, which you'll recall scales clockspeed in the context of a work queue, Interactive scales the clockspeed over the course of a timer set arbitrarily by the kernel developer. 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. This can eliminate the frequency bouncing discussed in the OnDemand section. Because of this timer, Interactive is also better prepared to utilize intermediate clockspeeds that fall between the minimum and maximum CPU frequencies. This is another pro-battery life benefit of Interactive.
However, because Interactive is permitted to spend more time at maximum frequency than OnDemand (for device performance reasons), the battery-saving benefits discussed above are effectively negated. Long story short, Interactive offers better performance than OnDemand (some say the best performance of any governor) and negligibly different battery life.
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.
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.
IO Schedulers​
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.
NOOP
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.
CFQ
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.
DEADLINE
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.
VR
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. May be best for benchmarking because at the peak of it's 'form' VR performs best. Performance fluctuation results in below-average performance at times. Least reliable/most unstable.
Old Rcmix Kernels for Download​
RCMIX SENSATION ICS V1
RCMIX SENSATION ICS V2
RCMIX SENSATION ICS V3
RCMIX SENSATION ICS V4.1
RCMIX SENSATION ICS V4.2
RCMIX SENSATION ICS 4.3
RCMIX SENSATION ICS 4.3 STOCK GPU
RCMIX SENSATION ICS 5.0.1
RCMIX SENSATION ICS 5.2
RCMIX SENSATION ICS 5.1
RCMIX SENSATION ICS 5.1 STOCK GPU
RCMIX SENSATION ICS 5.0.1 STOCK GPU
RCMIX SENSATION 5.3
RCMIX SENSATION 5.3 STOCK GPU
5.3 with sense 3.6 fixes in the zip
http://d-h.st/JYS
Nice..was looking for rcmix kernel.
Thank you
Edit. Moderator please delete this post for the OP
My apology
Sent from my HTC Sensation 4G using Tapatalk 2 Beta-2
epsix said:
Nice..was looking for rcmix kernel.
Thank you
Edit. Moderator please delete this post for the OP
My apology
Sent from my HTC Sensation 4G using Tapatalk 2 Beta-2
Click to expand...
Click to collapse
No need to delete. I only need the first 3 posts.
Thanks for the support.
nice work. looks good. will there be a version with no gpu oc? cpu we can control but gpu we cant. and mine tends to overheat with gpu oc kernels. also, what is the recommended cpu gov? thanks
walkinhotdog said:
nice work. looks good. will there be a version with no gpu oc? cpu we can control but gpu we cant. and mine tends to overheat with gpu oc kernels. also, what is the recommended cpu gov? thanks
Click to expand...
Click to collapse
That wouldn't be out of the question for a stock gpu. I use On demand. ICS On demand uses a two stage system to regulate the frequencies. It's not like the one stage gingerbread gov. So for I find On demand or the new ICS interactive gov to be the best. The ICS Interactive gov seems to be much better.
woah, recently there are so many wonderful kernels...
Hi there, just try the v4.3 in baad's B12 ROM, but it's strange that I cannot access the file in SD card. No music and phot files can be accessed. But after I flash to other kernel, the files are back. FYI. Any idea ?
chihliouma said:
Hi there, just try the v4.3 in baad's B12 ROM, but it's strange that I cannot access the file in SD card. No music and phot files can be accessed. But after I flash to other kernel, the files are back. FYI. Any idea ?
Click to expand...
Click to collapse
Weird I can access all my music and sdcard just fine. What app are you using to access your ad card.
Sent from my HTC Sensation Z710e using xda premium
chihliouma said:
Hi there, just try the v4.3 in baad's B12 ROM, but it's strange that I cannot access the file in SD card. No music and phot files can be accessed. But after I flash to other kernel, the files are back. FYI. Any idea ?
Click to expand...
Click to collapse
Works fine for me here, using root explorer to check. What app are you using?
Sent from my HTC Sensation Z710e using xda premium
Ishouldntbehere: testing your kernel for T-Mobile WiFi calling will let you know how stable WiFi calling is
Sent from my HTC Sensation Z710e using xda premium
do u even have klquicksall's permission to post this here?
Video???
Sorry to say but i am still experiencing lag after video
Link down.
Please fix.
shiningarmor said:
do u even have klquicksall's permission to post this here?
Click to expand...
Click to collapse
Well were close so its not a problem.
Sent from my HTC Sensation Z710e using xda premium
shiningarmor said:
do u even have klquicksall's permission to post this here?
Click to expand...
Click to collapse
He is a part of out team so no worries so is klquicksall so all together
Sent from my HTC Sensation Z710e using xda premium
d3vilskid said:
Ishouldntbehere: testing your kernel for T-Mobile WiFi calling will let you know how stable WiFi calling is
Sent from my HTC Sensation Z710e using xda premium
Click to expand...
Click to collapse
Nice let me know how it goes
Sent from my HTC Sensation Z710e using xda premium
capychimp said:
He is a part of out team so no worries so is klquicksall so all together
Sent from my HTC Sensation Z710e using xda premium
Click to expand...
Click to collapse
Nice work with the kernel
my phone is back alive too, i'm so happy hehehe
now i need to flash some stuff to update my self was hard times without the phone, 4 weeks is a loooong time
laserman123 said:
Link down.
Please fix.
Click to expand...
Click to collapse
Should be fine now
Sent from my HTC Sensation Z710e using xda premium

[KERNEL] 4.2.2 SaveEnergy K2_U/K2_UL

Code:
#include
/*
* I am not responsible for bricked devices, dead SD cards, thermonuclear
* war, or the current economic crisis caused by you following these
* directions. YOU are choosing to make these modificiations, and
* if you point your finger at me for messing up your device, I will
* laugh at you.
*/
FEATURES:
Based on 3.11.401.x stock kernel sources
New governors (Ondemand + MULTIPHASE, Smartmax, Intellidemand)
New I/O Sheduller (Deadline, ROW, FIOPS, SIO)
Fsync and cache optimizations
new CPU frequency table
AVS
cortex-a15 optimizations
1.674GHz CPU Overclocking and 487.5MHz GPU Overclocking (optional, separate kernel)
USB force fast charging
S2W/DT2W support
and more...
SaveEnergy K2_U/K2_UL 4.2.2 kernel ver. 1
Project stopped. GitHub
SaveEnergy K2_UL 4.2.2 kernel ver. 2
Project stopped. Link to download in the second message.
SaveEnergy K2_U 4.2.2 kernel ver. 3
Based on 3.11.401.106 stock kernel sources.
Project stopped. Link to download in the second message.
Credits:
@faux123, @flar2, @rmbq, @show-p1984, @Zarboz, @jrior001, @thicklizard - For his various kernel patches and features.
Special thanks to @rmbq, without whose invaluable assistance the process of appearance S2W we would not come to pass for a long time.
And all others mentioned on my github in contributors tab.
ver. 2
Download:
Kernel v.30 (CPU - 1.188 GHz, GPU - 450 MHz)
Kernel v.30 (CPU - 1.458 GHz, GPU - 450 MHz)
Kernel v.30 (CPU - 1.674 GHz, GPU - 487.5 MHz)
Full changelog
GitHub
ver. 3
Download:
Kernel v.20 (CPU - 1.188 GHz, GPU - 450 MHz)
Kernel v.20 (CPU - 1.458 GHz, GPU - 450 MHz)
Kernel v.20 (CPU - 1.674 GHz, GPU - 487.5 MHz)
Full changelog
GitHub
From which kernel sources is compiled?
xpirt
BrateloSlava said:
[*]...
[*]and more...
Click to expand...
Click to collapse
Does it include duoble tap to wake and sweep to wake?
Sent from my C5303 using Tapatalk
xpirt said:
From which kernel sources is compiled?
Click to expand...
Click to collapse
I'm sorry, but I'm just do not remember which source files from HTCDEV.COM I took as a basis. K2_UL - that's for sure.
J.ali.li said:
Does it include duoble tap to wake and sweep to wake?
Click to expand...
Click to collapse
No.
BrateloSlava said:
I'm sorry, but I'm just do not remember which source files I took as a basis. K2_UL - that's for sure.
Click to expand...
Click to collapse
Ok. That's enough
xpirt
Hi, I have a suggestion. Would be great if you can mod cpu frequency table and add 2xx and/or 3xx speed, there is to big gap between 162 and 432MHz. 162MHz have big Impact on performance.
Hello, I flashed your kernel but if I try to change the frequencies of the CPU as soon as I close the program back to those first, any ideas? Also i have sod
bataya said:
Hi, I have a suggestion. Would be great if you can mod cpu frequency table and add 2xx and/or 3xx speed, there is to big gap between 162 and 432MHz. 162MHz have big Impact on performance.
Click to expand...
Click to collapse
I never aimed to produce highly productive kernel. I have always striven to save energy. I specifically did overclock separate, assembly to save the source code in the github repository. To everyone could take advantage of this. I do not plan to release further overclocked kernel version.
Near710 said:
Hello, I flashed your kernel but if I try to change the frequencies of the CPU as soon as I close the program back to those first, any ideas? Also i have sod
Click to expand...
Click to collapse
I use the program TricksterMOD. It perfectly sets all the necessary parameters when starting the phone.
Link to a new version (v010) - the second message. Github will update tomorrow.
Ok, thanks a lot, any suggestions on which governor to use?
Near710 said:
Ok, thanks a lot, any suggestions on which governor to use?
Click to expand...
Click to collapse
Smartmax - for better energy saving. Ondemand - for better performance.
ADD.
If you view the my file version-2.txt - you can see that I experimented with other governor (badass, intellidemand, interactive, interactivex2, lagfree, lionheart). However, I have not noticed any particular advantages.
I also experimented with replacing mpdecision to auto_hotplug.
BrateloSlava said:
I never aimed to produce highly productive kernel. I have always striven to save energy. I specifically did overclock separate, assembly to save the source code in the github repository. To everyone could take advantage of this. I do not plan to release further overclocked kernel version.
Click to expand...
Click to collapse
You misunderstood me. I want to say that 1xx MHz is very low speed, and it is OK for low cpu task. But if you play music, or running some other task in background cpu will run on next higher speed 4xx MHz, because 1xx MHz is not enough for such task so it will use more power than if it is run on 2xx or 3xx. So if the is some cpu speed between 1xx and 4xx MHz cpu should use less power.
bataya said:
You misunderstood me. I want to say that 1xx MHz is very low speed, and it is OK for low cpu task. But if you play music, or running some other task in background cpu will run on next higher speed 4xx MHz, because 1xx MHz is not enough for such task so it will use more power than if it is run on 2xx or 3xx. So if the is some cpu speed between 1xx and 4xx MHz cpu should use less power.
Click to expand...
Click to collapse
Yeah, maybe you're right. I will try to add "a couple" of frequencies in the coming days. Although I doubt that when playing music, processor speed will be lower than 432.
bataya said:
... But if you play music, or running some other task in background cpu will run on next higher speed 4xx MHz, because 1xx MHz is not enough for such task so it will use more power than if it is run on 2xx or 3xx. So if the is some cpu speed between 1xx and 4xx MHz cpu should use less power.
Click to expand...
Click to collapse
Link to a new version (v011) - the second message.
If you are not hard - please, collect usage statistics processor frequencies when listening to music, etc.
Thanx in advance.
^Is cpu states log from BetterBatteryStates ok, or you want log from some other app?
bataya said:
^Is cpu states log from BetterBatteryStates ok, or you want log from some other app?
Click to expand...
Click to collapse
Charge the phone. Reboot. Use the usual way (listen to music, make calls, etc.). At the end of the day - to see the statistics for frequency processor. Any program, that is able to display. I'm interested to see duration of use of each frequency.
Oki, I will post cpu states at the end of the day.
BrateloSlava said:
Link to a new version (v011) - the second message.
If you are not hard - please, collect usage statistics processor frequencies when listening to music, etc.
Thanx in advance.
Click to expand...
Click to collapse
Listening to music with Spotify over WiFi CPU mostly stay on the 384MHz.
Sent from my HTC One SV using Tapatalk

Categories

Resources