[KERNEL][2/2/12] KangBang 1.0.7 [OC/UV/GPU] - Samsung Galaxy Nexus

You guys have already had a taste of this (if you're on RootzBoat) but for the rest of you, here it is.
This kernel has been a collaboration between Jake Day and myself, bringing you tons of improvements over the stock kernel.
Jake has done the majority of the code fixes, he's doing great work on this kernel.
If you want to take a look at our voltages vs the stock voltages, they're posted in the 2nd post
Change Log:
1.0.7:
Update to 3.0.18
Kanged suspend and hotplug features from InteractiveX (just the features, to use them, stay running Interactive governor)
rcu: Eliminate in_irq() checks in rcu_enter_nohz()
nohz: Remove nohz_cpu_mask
nohz: Make idle/iowait counter update conditional
nohz: Fix update_ts_time_stat idle accounting
nohz: Remove update_ts_time_stat from tick_nohz_start_idle
ARM: SMP: use a timing out completion for cpu hotplug
ARM: cache: assume 64-byte L1 cachelines for ARMv7 CPUs
ARM: vmlinux.lds.S: align the exception fixup table to a 4-byte boundary
ARM: vmlinux.lds.S: do not hardcode cacheline size as 32 bytes
scheduler: domain: init next_balance in nohz_idle_balancer with jiffies
Enable KSM
Super AMOLED Color Hack now enabled (adjustable in new RootzBoat coming)
Fixed issue with gpio pins causing wakeups without enable_irq_wake() set
Fix bug with LPDDR CLK IO for suspend and idle to save power
Added open color format definitions
Force a DPLL clkdm/pwrdm ON before a relock
Fix gains on DL1 BE so values don't get lost and screw up sound
Fixed memory leak and dm timer handling
Create sysfs entry for egl.cfg so SGX can load correct OpenGL libraries
Readahead corrected
0.9.6:
Set default HZ to 250
disable fsync (makes data writes quicker and better on battery)
improve performance of deadline io scheduler
overclock core OPP100 to 220 and gpu OPP3 to 422
adjust voltages
improve cpu transition latency
OMAP4: HWMOD: UART1: disable smart-idle.
iosched (796d511): prevent aliased requests from starving other I/O
OMAP4: PM: work around for CPU1 onlining from OFF/OSWR state
fixed mbox recovery wakeup issue
adjust DSS latency constraint for deeper power state
OMAP4: HSI: Fix for back to back CAWAKE interrupts
Smartass2 stable again
Interactive adjusted
i2c-omap: use usleep_range(), get rid out of jiffies
hrtimers: teach usleep_range() to return how many usecs was slept
PM / Hibernate: Correct additional page calculation
ARM: smp_twd: make sure timer is stopped before registration
mm: vmscan: recompute page status when putting back
mm: vmscan: check page order in isolating lru pages
ARM: hwcaps: add new HWCAP defines for ARMv7-A
ARM: hwcaps: use shifts instead of hardcoded constants
mmc: fix deadlock from mmc core when suspend the device
ARM: Fix handling of pending IRQs at request time
mmc: change mmc_delay() to use usleep_range()
mm: memcg: update the correct soft limit tree during migration
OMAP4: USB: Fixed tshut reboot issue
Use same voltage for GPU OC as 307mhz
cpufreq: hotplug: do not synch threads on jiffies
block: avoid unnecessary plug list flush
block, sx8: kill blk_insert_request()
block: simplify force plug flush code a little bit
block: avoid building too big plug list
Some md updates from Linux mainline 3.2
Commits cherry picked from Linux 3.2
sched: don't call task_group() many times in set_task_rq()
nohz: Remove ts->inidle checks before restarting the tick
Init: Multithread initcalls to auto-resolve ordering issues.
memcg: mark rcu protected member as __rcu
mm/swap: make swapin readahead skip over holes
sched: fix nohz idle load balancer issues
Video playback solved
0.8.5:
improved CPU transition latency
fixed voltages for two addition frequency slots
fixed battery drain issues (battery life should be MUCH better)
added jRCU
tweaked smartass2 and interactive governors
some code and message clean up (going LEAN!)
fixed dispc issue with NO_SLEEP
patched to 3.0.17
fixed callbacks in mgr->blank
improved I/O latency
correct manager index for VSYNC irq handler
updated cpufreq and regulator driver
added version name to kernel
0.7.1:
added two additional frequency slots (from 5 slots to 7 slots) (please read known issues in second post)
lowest slot is now 250 mhz
fixed voltage ramping for lower frequencies (will help battery life)
some OTG clock and USB_DPLL fixes
0.6.8:
Hotplug governor stabilized
Ram issue fixed
0.6.7:
Added ramconsole
Reduced power consumption when idle
(both from Jake, great changes)
0.6.5:
Userspace undervolting fixed thanks to Jake.. guys a genius
updated to 3.0.14
SLOB is default memory allocator
adjust initialization of powerstates to fix power consumption
enable OMAP4_PMD_CLKS for saveram calls
add REG support for VCORE and gate resources during suspend
Improved clock frequency selection
Higher HSI throughputs
False IO wakeup fixed
PRM Register offsets fixed
Fast ramp down allowed
SmartAss2 optimizations
Change default scheduler CFS -> Autogroup
RCU boost enabled
cpufreq updates from 3.2
Use SWSUP instead of HWSUP to improve performance and power usage
SGX Active Power Latency set to 2ms
CK1 patched in (minus BFS)
On suspend, make sure resources will be gated with regulator_suspend_calls
Fixed suspend states for VAUX3, VUSIM, VANA, VCXIO, and VDAC
vfs cache pressure = 20
dirty ratio = 90
dirty background ratio = 70
swappiness = 0
Download Link:
http://bit.ly/zFDxxV
Mirror:
http://bit.ly/xrZvCh
Older Builds can be found here:
http://4ndr01d.com/gnex/kernels/
As always, I comply with GPL.
You can find my source here:
http://bit.ly/wA84bP
If you like our work, feel free to donate to me here:
https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=ZAPY38CTG4WS4
or
Jake here:
https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=HSADFMJTE2YB8

reserved for issues..

reserved just in case... you never know

dat changelog

I'm going to flash this and give it a go.
Sent from my Galaxy Nexus using Tapatalk

LexusBrian400 said:
dat changelog
Click to expand...
Click to collapse
It's beastly.. we've done a lot of work

Dudes. By FAR the best performing kernel I've used to date. Benchmark numbers are through to roof! Stable too. No reboots or hangups up to this point.
Sent from my Galaxy Nexus using Tapatalk

Enndr said:
Dudes. By FAR the best performing kernel I've used to date. Benchmark numbers are through to roof! Stable too. No reboots or hangups up to this point.
Sent from my Galaxy Nexus using Tapatalk
Click to expand...
Click to collapse
Glad to hear you like it working on some big changes for the next update. At some point, I want to get BFS booting. It's being a pain lol

sorry for this noob questions..but it works on gsm gnex?
EDIT ALREADY TRIED..WORKS GOOD!
i like this kernel..how governor do you reccomend for stability and performance?i like the 2 freq. slots added,i don't use 250 (to small)but i like 500 mhz because i usually set (with others kernelz)700 how the minimum freq (350 gave me little lags on homecsreen after lockdown).now i can use 500 how my minumum limit freq.i'll report how it goes also on battery managment!
ps..any chance to have also 1420 mhz step how lean kernel experimental?i definitely stick with this if you consider that thing!anyway,great job man!
EDIT2 this kernel give the best score ever on antutu....7380!!!kangbang rocks!also if don't care about benchs,this score is amazing!now let'see how it goes on real use!sliding pages on homecsrenns is more fluid....hope this isn't placebo effect!

gonna test this out..

after hours of testing,it seems that i have micro lag in the drawer,also with the minum freq. upped at 500 mhz...strange,after the flash,hours ago,i don't feel that...benchmark's scores are always very high for me..i want to redownload the file and reflash.

Kinda of a noob question, im currently running the Revolution HD rom, would this work without issues or is this just for rooted stock ICS?

not sure what the problem is
I flashed this last night and it seemed fine, then I notices that the top of the phone got really hot playing a game so I stopped playing it and went to bed, I woke up and my phone wouldn't turn on and it was burning up almost to hot to touch. I had to reflash to a different kernel and when it booted the battery was only at 56% charged. I know it wasn't my phone because I havent had this happen with any other kernel I have used.

-J450N said:
Kinda of a noob question, im currently running the Revolution HD rom, would this work without issues or is this just for rooted stock ICS?
Click to expand...
Click to collapse
No. It's only for 4.0.3 roms

sert00 said:
sorry for this noob questions..but it works on gsm gnex?
EDIT ALREADY TRIED..WORKS GOOD!
i like this kernel..how governor do you reccomend for stability and performance?i like the 2 freq. slots added,i don't use 250 (to small)but i like 500 mhz because i usually set (with others kernelz)700 how the minimum freq (350 gave me little lags on homecsreen after lockdown).now i can use 500 how my minumum limit freq.i'll report how it goes also on battery managment!
ps..any chance to have also 1420 mhz step how lean kernel experimental?i definitely stick with this if you consider that thing!anyway,great job man!
EDIT2 this kernel give the best score ever on antutu....7380!!!kangbang rocks!also if don't care about benchs,this score is amazing!now let'see how it goes on real use!sliding pages on homecsrenns is more fluid....hope this isn't placebo effect!
Click to expand...
Click to collapse
The problem is, the most recommended slots for OMAP processors are 7, because of the way the registry board works. I want to play around with the frequencies to find a better spread, but most phones can't handle 1400+ anyways (mine can't, for example, so there's no real way for me to test)
edit: And thanks for letting me know it works on GSM Nex I figured it did, as I use AnyKernel updater, but haven't had that tested.

jitajt said:
I flashed this last night and it seemed fine, then I notices that the top of the phone got really hot playing a game so I stopped playing it and went to bed, I woke up and my phone wouldn't turn on and it was burning up almost to hot to touch. I had to reflash to a different kernel and when it booted the battery was only at 56% charged. I know it wasn't my phone because I havent had this happen with any other kernel I have used.
Click to expand...
Click to collapse
You caught the frequency lock bug. Seems that it's been fixed in the new version released today, though.

Related

[KERNEL][RC12] Rm Kernel | Overclock 1Ghz | 2.6.32.59 |

RM KERNEL ​
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 parts or in its entirety, I kindly ask you mention its origins and 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
Rm -Kernel For Optimus me (pecan)
What is a Kernel?
The Kernel is the Foundation in which everything else builds upon in any software system.
NOTICE: This Kernel Only COMPATIBLE with Mine and Pax0r CM7.2 AND there Based Roms cooked roms.
Don't try to flash on stock roms or older cm7 or omgb/omfgb or cm9 roms becuase is not COMPATIBLE now with this roms
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).
IMPORTANT NOTES
Click to expand...
Click to collapse
No Guarantees! If it kills your grandmother or your device ,I'm not responsible if
you brick your device by heavy OC, flashing, voiding your warranty,or any other pain or suffering you may feel as result of using this kernel!!! ...
Using using very high frequencies (OVER 806Mhz) is dangerous for your phone.
if you oc your phone OVER 806MHZ on my kernel then no support provided
(If you download, please hit Thanks below my post! Thank you!)
NOTE: after wipe battery,system recreate the battery stats, forcing the battery to lose its capacity, i advice you recalibrate the battery after doing that.
KNOW BUGS
Click to expand...
Click to collapse
Not All CHIPS ARE CREATED EQUAL
Download:
No Guarantees! If it kills your grandmother or your device, I am NOT responsible! If you understand this:
(If you download, please hit Thanks below my post! Thank you!)
*RC12* [STABLE] Click me
Old Downloads: Click Me
INSTALL
Click to expand...
Click to collapse
How to Flash/Install the Kernel
Root Your LG Optimus Me , Then Install Custom Recovery
Download Newer Version Of Rm 32 Kernel From Topic
Copy Zip File to Sd Card
Reboot Your Phone To Recovery Mode
Wipe Cache,Wipe Dalvik Cache And Battery
Now Install Kernel And Enjoy:laugh:
​Note: After FLASHING, the first reboot may take longer than usual, please be patient... After the first reboot, it may lag during initial load (let everything finish loading). Once everything is loaded and phone is ready for use, reboot the phone a 2nd time and the lag will be gone and everything should be silky smooth...
SOURCE
Click to expand...
Click to collapse
I respect the GPL (the license covering the Linux kernel), so all the up-to-date source code for this kernel is avaiable on my github:https://github.com/kerneldevs/RM-32-kernel-pecan
My kernel is, in turn, based on the publicly-avaiable froyo kernel source from LG. You're free to fork, modify, and re-release the code as your own, but you must provide the source code for your resulting work. Doing so ensures you honor the terms of the license, but you're also giving back to the community. Basically, don't be a ****.
THANKS TO
Click to expand...
Click to collapse
drapalyuk- initial setup of pecan kernel source and for biggest work for this device
pax0r- 2nd setup of pecan kernel source and also for biggest work for this device
codeaurora forum - source and patches
Mik9-SOME PATCHES THAT I USED IN MY KERNEL
Fserve-for sharing his kernel source from his source i got some idea for this kernel
Andy572-used some patches
Tasssadar-for his kernel source based on mik9 kernel
Roqu3-for his kernel source for p350, i got a 1 fix from his source
Cyanogenmod - for sharing their kernel source code, used some 1 patches from cm kernel source.
burstlam- got i nice idea about kgsl from his zte blade source
SUPPORT
Click to expand...
Click to collapse
IF YOU LIKE MY WORK YOU CAN USE DONATE BUTTON TO SUPPORT MY WORK OR YOU CAN PRESS THANKS BUTTON TO SHOW YOUR SUPPORT .
SOME INFO OF SOME KERNEL THINGS
Click to expand...
Click to collapse
CleanCache(via ZCache backend)
ZCACHE is a compressed cache similar to ZRAM but the similarity ends there. ZCache is meant to provide as many "cleancache" pages (non-dirty or untouched "virgin" memory) to apps that request for new memory. CleanCache is very easy to allocate and no additional penalty are required to hand them out, so having more CleanCache pages will improve performance. Under heavy memory pressure, often times the kernel will NOT have enough CleanCache pages, so the kernel has to do EXTRA work to reclaim dirty cache pages and clean them for the new apps that's requesting for them. The described process creates a performance hit for the kernel and the app, so the idea is to use compression to create more CleanCache pages available for use. Of course there's a penalty to pay for using compression, but the trade-off between compression penalty and the penalty for reclaiming dirty cache pages and allocating them after cleaning is smaller for compression, so in the end, CleanCache should add more performance.
USER experience BENCHMARK ARE MOVED TO THIS LINK
MORE
Click to expand...
Click to collapse
WANT FAST NEWS ABOUT MY WORK? THEN JOIN MY FACEBOOK GROUP : https://www.facebook.com/groups/OADPROM/
If you want to donate some bucks for the work that i'm doing for LG Optimus Me, go to the my username and hit the 'donate to me' button. Otherwise I would be grateful if you can click the "Thanks" button on the bottom right of this post.
THANKS TO ALL
CHANGELOG
CHANGELOG
OLD CHANGELOG OF RM VERSIONS ARE MOVED CLICK HERE TO SEE OLD CHANGELOG
​
09-07-2012 RC7 http://www.mediafire.com/?sxh8wt2u1b9493t
serial: msm_serial_hs_lite: Use pm_runtime to indicate device state
mm: Make memory hotplug aware of memmap holes
mfd: Use min_uV for voltage setting
msm: timer: read clocksource from global clock variable.
msm_bus: APIs for MSM bus scaling.
arm: add ARM-specific memory low-power support
msm: rmnet: Add tailroom for sk buffer to be transmitted
msm: Add Timpani Sound Device Profile
14-07-2012 RC8 http://www.mediafire.com/?ld6lrnbxrghdewb
msm: camera: Support for Dynamic Camera Logging
add backlight driver in st1.5
msm: mfd: Use debugfs interface to allow timpani codec register access
spi_qsd: Modify timeout mechanism to check SPI state valid bit.
Define and process new type of memory tag (ATAG_MEM_RESERVED)
msm: Add XO aggregation and voting API stubs
Add tpmd_dev from the tpm-emulator source to the kernel
arm: common: CP register access tool for Read/Write to CP registers
serial: msm_serial_hs: Use runtime PM for HSUART power state transitions
21-07-2012 RC10 http://www.mediafire.com/?97g5pqr71xuuj9h
rcu: "Tiny RCU", The Bloatwatch Edition
fs: simple fsync race fix
Increase readahead value
acpuclock tweaks
axi oc back
add the Stochastic Fair Blue (SFB) network scheduler - from zachariasmaladroit
sched: Fix over-scheduling bug [author andy572]
block: introduce the BFQ I/O scheduler
block: Fix atomic functions in bfq & update bfq to v2
msm_kgsl: Fix corner cases while adding ringbuffer commands
msm_kgsl: Take the driver lock after waiting for wakeup to complete
msm_kgsl: enable writecombine
msm: 7x27: Update the SDC2 GPIO disable configs
msm: 7x27: mmc: Add platform data for dummy CMD52
usb: msm_gadget: Check both USB state and VBUS during initialization
and some more small changes, check github repo for that
25-07-2012 RC11 http://www.mediafire.com/?3l6fi81l4no860t
mmc: msm_sdcc: Enhance the current mechanism of simulating PIO interrupt
msm: socinfo: move sysdev creation outside init
fs: mark_inode_dirty barrier fix
vmalloc: remove redundant unlikely()
mm: remove likely() from mapping_unevictable()
mm: remove likely() from grab_cache_page_write_begin()
writeback: avoid unnecessary determine_dirtyable_memory call
brk: fix min_brk lower bound computation for COMPAT_BRK
mm/dmapool.c: take lock only once in dma_pool_free()
mm/dmapool.c: use TASK_UNINTERRUPTIBLE in dma_pool_alloc()
fs/select.c: fix information leak to userspace
PM: Lock PM device list mutex in show_dev_hash()
PM: Prototype the pm_generic_ operations
mmc: Attribute the IO wait time properly in mmc_wait_for_req().
Wifi fix
Last version of RM Kernel
09-08-2012 RC12 http://www.mediafire.com/?j6e21kzhdhw3x3v
revert axi oc back
revert update acpuclock
netlink: Make nlmsg_find_attr take a const nlmsghdr*.
netfilter/nf_conntrack_netlink: fix ctnetlink_parse_tuple()
net/ethernet/eth: remove deprecated: print_mac() [Marin Mitov]
ipv4/netfilter/nf_nat_standalone: workaround to make -Wswitch happy
ipv6/xfrm6_tunnel: missing middle operand
fs/ext4/move_extent: fix uninitialized start_ext.ee_block [tytso]
cpufreq: fix memory leak in cpufreq_add_dev [Xiaotian Feng]
cgroup: introduce cancel_attach() [Daisuke Nishimura]
block: rescan partitions on invalidated devices on -ENOMEDIA too
block: add proper state guards to __elv_next_request
mtd: mtdconcat: fix NAND OOB write
HERE THE INFO OF ANDROID GOV
ALL CREDITS GO TO Deedii
Android CPU governors explained
1: OnDemand
2: OndemandX
3: Performance
4: Powersave
5: Conservative
6: Userspace
7: Min Max
8: Interactive
9: InteractiveX
10: Smartass
11: SmartassV2
12: Scary
13: Lagfree
14: Smoothass
15: Brazilianwax
16: SavagedZen
17: Lazy
18: Lionheart
19: LionheartX
20: Intellidemand
21: Hotplug
​1: OnDemand Governor:
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.​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: 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).​4: Powersave Governor:
The opposite of the Performance governor, the Powersave governor locks the CPU frequency at the lowest frequency set by the user.
​5: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.
The Conservative Governor is also frequently described as a "slow OnDemand," if that helps to give you a more complete picture of its functionality.​6: 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.
​7: Min Max
well this governor makes use of only min & maximum frequency based on workload... no intermediate frequencies are used.​8: 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.​9: InteractiveX Governor:
Created by kernel developer "Imoseyon," the InteractiveX governor is based heavily on the Interactive governor, enhanced with tuned timer parameters to better balance battery vs. performance. The InteractiveX governor's defining feature, however, is that it locks the CPU frequency to the user's lowest defined speed when the screen is off.​10: Smartass
Is based on the concept of the interactive governor.
I have always agreed that in theory the way interactive works – by taking over the idle loop – is very attractive. I have never managed to tweak it so it would behave decently in real life. Smartass is a complete rewrite of the code plus more. I think its a success. Performance is on par with the “old” minmax and I think smartass is a bit more responsive. Battery life is hard to quantify precisely but it does spend much more time at the lower frequencies.
Smartass will also cap the max frequency when sleeping to 352Mhz (or if your min frequency is higher than 352 – why?! – it will cap it to your min frequency). Lets take for example the 528/176 kernel, it will sleep at 352/176. No need for sleep profiles any more!"​11: 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.​12: Scary
A new governor wrote based on conservative with some smartass features, it scales accordingly to conservatives laws. So it will start from the bottom, take a load sample, if it's above the upthreshold, ramp up only one speed at a time, and ramp down one at a time. It will automatically cap the off screen speeds to 245Mhz, and if your min freq is higher than 245mhz, it will reset the min to 120mhz while screen is off and restore it upon screen awakening, and still scale accordingly to conservatives laws. So it spends most of its time at lower frequencies. The goal of this is to get the best battery life with decent performance. It will give the same performance as conservative right now, it will get tweaked over time.​13: 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.​14: Smoothass:
The same as the Smartass “governor” But MUCH more aggressive & across the board this one has a better battery life that is about a third better than stock KERNEL​15: Brazilianwax:
Similar to smartassV2. More aggressive ramping, so more performance, less battery​16: SavagedZen:
Another smartassV2 based governor. Achieves good balance between performance & battery as compared to brazilianwax.​17: 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.​18: Lionheart:
Lionheart is a conservative-based governor which is based on samsung's update3 source.
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.​19: LionheartX
LionheartX is based on Lionheart but has a few changes on the tunables and features a suspend profile based on Smartass governor.​20: 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.
​21: Hotplug Governor:
The Hotplug governor performs very similarly to the OnDemand governor, with the added benefit of being more precise about how it steps down through the kernel's frequency table as the governor measures the user's CPU load. However, the Hotplug governor's defining feature is its ability to turn unused CPU cores off during periods of low CPU utilization. This is known as "hotplugging."
Obviously, this governor is only available on multi-core devices.
=============================================
ALL CREDITS GO TO THE USERS OF XDA WHO CREATED DIFF THREADS ABOUT I/O, THIS I/O INFO FROM ALL THREADS
ALL INFO ABOUT I/O
Click to expand...
Click to collapse
I/O:- short form of Input & Output​I/O Scheduler:- 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.​Info on I/O Scheduler
SIO:- cheduler is based on the deadline scheduler but it's more like a mix between no-op and deadline.In other words, SIO is like a lighter version of deadline but it doesn't do any kind of sorting, so it's aimed mainly for random-access devices (like SSD hard disks) where request sorting is no needed (as any sector can be accesed in a constant time, regardless of its physical location).​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.​ANTICIPATORY:- Anticipatory scheduling is an algorithm for scheduling hard disk input/output.
It seeks to increase the efficiency of disk utilization by "anticipating" synchronous read operations.
ADAPTIVE ANTICIPATORY SCHEDULER:- For the anticipatory scheduler, we scale up the anticipation timeout (antic expire) using the latency scaling factor over time. When the virtual disk latencies are low a small scaling of the timeout is sucient to prevent deceptive idleness, whereas when the latencies are high a larger scaling of the timeout value may be required to achieve the same. Note that such dynamic setting of the timeout value ensures that we attain a good trade-o between throughput (lost due to idling) and deceptive idleness mitigation. Setting a high value for the scaling factor (increasing idling time) only happens when the disk service latencies themselves are higher. This may not necessarily cause a signicant loss in throughput, because submitting a request from another process instead of idling is not going to improve throughput if the virtual disk itself does not get any faster than it is at the current period. A higher anticipation timeout might also be capable of absorbing process scheduling eects inside the VM. The results for the adaptive anticipatory scheduler are shown in Figure 2. The read time with our modied implementation (third bar in the dierent scheduler combi- nations) shows that it is possible to mitigate the eects of deceptive idleness by adapting the timeout. An interesting related observation is that the level to which the improve- ment is possible varies for dierent Domain-0 schedulers; noop - 39%, anticipatory - 67% and cfq - 36%. This again points to the fact that the I/O scheduler used in Domain-0 is important for the VM's ability in enforcing I/O scheduling guarantees. Dierent Domain-0 I/O schedulers likely have a dierent service latency footprint inside the VMs, contributing to dierent levels of improvement.​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.​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.​V(R):- The next request is decided based on its distance from the last request, with a multiplicative penalty of `rev_penalty' applied for reversing the head direction. A rev_penalty of 1 means SSTF behaviour. As this variable is increased, the algorithm approaches pure SCAN. Setting rev_penalty to 0 forces SCAN.
​SIMPLE:- Does not do any kind of sorting, as it is aimed foraleatory access devices, but it does some basic merging. We try to keep minimum overhead to achieve low latency.​BFQ:- BFQ is a proportional share disk scheduling algorithm based on the slice-by-slice service scheme of CFQ. But BFQ assigns budgets, measured in number of sectors, to tasks instead of time slices. The disk is not granted to the active task for a given time slice, but until it has exahusted its assigned budget. This change from the time to the service domain allows BFQ to distribute the disk bandwidth among tasks as desired, without any distortion due to ZBR, workload fluctuations or other factors. BFQ uses an ad hoc internal scheduler, called B-WF2Q+, to schedule tasks according to their budgets. Thanks to this accurate scheduler, BFQ can afford to assign high budgets to disk-bound non-seeky tasks (to boost the throughput), and yet guarantee low latencies to interactive and soft real-time applications.​
cips gokhle said:
Welcome to my RM kernel thread
About
THIS KERNEL IS BASED ON PECAN KERNEL .
RM KERNEL IS a very optimized kernel for 2.3 ROMS (in 2.2 you will face problem). i made this kernel to push performance as hard as it can.
Features & Changelog
Installation
Reboot intro recovery
Flash the latest kernel
Reboot
Enjoy
NOTE: THIS KERNEL IS ONLY FOR MY CM NIGHTLY AND PAX0R CM7.2 ROMS. DON'T FLASH ON VIVEK CM7.2,OMFGB,OMGB AND CM7.1 AND 2.2 ROMS. (FOR CM7.1,OMFGB,OMGB AND VIVEK CM7.2 I'M MAKING ANOTHER VERSION)
Downloads​​
V1000: http://www.mediafire.com/?aw3t3jrz99151zy
Click to expand...
Click to collapse
Goodjob bro
I will try
cooler1182 said:
Goodjob bro
I will try
Click to expand...
Click to collapse
i'm waiting for your review
I not absolutely well understand what changes installation of this kernel will make.
zizka said:
I not absolutely well understand what changes installation of this kernel will make.
Click to expand...
Click to collapse
this kernel will improve your touch screen and improve your phone performance
but about touch screen it's best work with my nightly
I made backup of data and established your kernel. Phone surprisingly quickly is loaded. Programs on a memory card need time that they could be used. Touch works also well as before. Changes didn't see. There can be I blind put on Nightly9
zizka said:
I made backup of data and established your kernel. Phone surprisingly quickly is loaded. Programs on a memory card need time that they could be used. Touch works also well as before. Changes didn't see. There can be I blind put on Nightly9
Click to expand...
Click to collapse
hmm in fb group 1 tested this and it's work for him any way in nightly 10 have update version of this kernel 2.6.32.59
now, I can mount the SD-ext with link2sd. In Fruit Ninja you feel the difference, is faster and more responsive than ever
I dont see changes. Multitouch have bug axis inversion and performance no changes for me. Thxs!
THIS KERNEL IS NOW OBSOLETE, DON'T USE IT.
newest and stable kernel releases are now integrated into my version of CYANOGENMOD 7.2
cn u just upload to some other site?? mediafire isnt working! m not able to download
ethan1234 said:
cn u just upload to some other site?? mediafire isnt working! m not able to download
Click to expand...
Click to collapse
SEE THIS
http://forum.xda-developers.com/showpost.php?p=25967572&postcount=12
Guys project restarted take test guys
this kernel is better than .35?
agen47 said:
this kernel is better than .35?
Click to expand...
Click to collapse
yes it's better it have new things that 1st time for p350
i tried both versions of this kernel and both worked well cant really tell the performance difference in vsync off, maybe in some heavy games a few more fps. atm im using vsync on on kang2 running at 806mhz no kernel panic yet
agen47 said:
i tried both versions of this kernel and both worked well cant really tell the performance difference in vsync off, maybe in some heavy games a few more fps. atm im using vsync on on kang2 running at 806mhz no kernel panic yet
Click to expand...
Click to collapse
you will be only feel diff in games on vsync off
here's the basic description about vsync:
vsync off = great for benchmarks but crap in real life.
vsync on = crap for benchmarks great in real life.
Say your screen refreshes at 60Hz - Vsync on will attempt to display 30fps to avoid tearing. 30 goes into 60 twice evenly... get it?
Vsync off will display as many fps as possible. So rather than holding back and displaying 30fps it will allow 35fps. This will cause tearing because 35 does not go into 60 evenly.
It's the same affect you get when playing video games on a PC.

[ROM[CyanogenMod][Fast][Stable][CM10] We make a stable difference

Features
Always get the latest additions
Ultra-fast
Ultra-stable
2012-10-06 Fixed power_profile.xml to show correct battery usage (bug was present in CyanogenMod, is also present in all other ROMS & custom kernels)
2012-10-06 Removed CMUpdater
2012-10-06 Recalculated correct smartreflex values with an average of 45mV less volts for the MPU.
2012-10-09 Deadline as default IO Scheduler & fifo_batch 1
2012-10-11 Patches to prevent sync_lost
IDEAS OMAP Gamma Control settings are disabled. They can be modified with 3rd party software. I disabled it because dmesg gets a SYNC_LOST on screen awake.
IDEAS Undervolt LCD by extensive testing. Should decrease heat which would in return prevent CPU throttling.
IDEAS Experiment to increase memory bandwidth. Overclock memory from 400 to 466 or 533?
IDEAS Our display is a huge battery eater. Letś make things black where we can. Also black MMS/People/... background.
COMING remove some code from the Power HAL to prevent spamming logcat with eg BOOSTPULSE not found. It's either this or stick with interactive governor.
IDEAS remove hotplug governor since it seems to crash every time I try it. If it doesn't crash today it will tomorrow
IDEAS increase throttling temperature from 65C to 85C as this is the Tjmax for OMAP4460, still seeing if this works well with the battery
PROGRESS Always fixing CM10 bugs
IDEAS 40Hz VSYNC for extra battery life. Kernel part is ready. Still need to find the Android part
Approved
I78377898 MPU 1350MHz: improve stability: - We give 1350MHz its own EFUSE - Smartreflex offset -90000 - All this should result in +30mv for extra stability CyanogenMod/android_kernel_samsung_tuna
Id17e6ca1 BFQ v5 enabled. After we installed the BFQ patches we should be enabling BFQ. (added at reqest of Rafael Salas) CyanogenMod/android_kernel_samsung_tuna
I81f5b749 block: introduce the BFQ-v5 I/O sched for 3.0 (added at reqest of Rafael Salas) CyanogenMod/android_kernel_samsung_tuna
I882c1e7a block: cgroups, kconfig, build bits for BFQ-v5-3.0 (added at reqest of Rafael Salas) CyanogenMod/android_kernel_samsung_tuna
I161fc7c4 block: prepare I/O context code for BFQ-v5 for 3.0 (added at reqest of Rafael Salas) CyanogenMod/android_kernel_samsung_tuna
Downloads
cm-10-20121011-UNOFFICIAL-maguro.zip
cm-10-20121010-UNOFFICIAL-maguro.zip
cm-10-20121006-UNOFFICIAL-maguro.zip
Results
These are based on the lowest MPU voltage my Nexus was able to run. I added 5mv to the last crashed MPU voltage, and next I added 80mv again which is the noise/ripple value. 1210mv was too close to the voltage making 1350mhz freeze (1170mv). These are safe for everyone.
MPU - Stock Smartreflex - Optimized smartreflex
350 - 840 - 810
700 - 1000 - 950
920 - 1090 - 1050
1200 - 1200 - 1170
1350 - 1210 - 1240
good
what is the correlation with Fixed power_profile.xml and kernel?
however, you're doing a great job on xda ... continues ... guy.
Welcome !!
Waiting for this !
If you have a fix, why not submit it to gerrit?
djjonastybe said:
Fixed power_profile.xml to show correct battery usage (bug was present in CyanogenMod, is also present in all other ROMS & custom kernels)
Click to expand...
Click to collapse
Looking forward to know whatis the bug in power_profile.xml too.
chadouming said:
Looking forward to know whatis the bug in power_profile.xml too.
Click to expand...
Click to collapse
+1. Gawd i hate suspense.
Galaxy S3 stock ROM had a bug in power_profile.xml and showed the display as 2nd or 3rd drainer instead of first and miles ahead...
chadouming said:
Looking forward to know whatis the bug in power_profile.xml too.
Click to expand...
Click to collapse
mpokwsths said:
Galaxy S3 stock ROM had a bug in power_profile.xml and showed the display as 2nd or 3rd drainer instead of first and miles ahead...
Click to expand...
Click to collapse
Hmm, I guess this?
thederekjay said:
If you have a fix, why not submit it to gerrit?
Click to expand...
Click to collapse
+1
i think he's just saying that he got the fix just to get some download numbers.
anyway,we expect the difference
Sent from my Galaxy Nexus
I am compiling it please hold on
https://docs.google.com/spreadsheet/ccc?key=0AuqacKmGLKJ6dEdJZG5QTmNtQnoyYk0zbm5IanluMHc#gid=1
If anyone here has undervolted and kept their crashing voltages please send them so I can improve smartreflex
k786 said:
+2
if you have a fix why make it rom exclusive? submit a gerrit and make all roms better
Click to expand...
Click to collapse
I did that. But they are not fond of my power consumption calculation being linear. Let s say they wanted me to prove it it is correct. No way to prove it except making a calculation based on their existing findings.
anarkia1976 said:
what is the correlation with Fixed power_profile.xml and kernel?
however, you're doing a great job on xda ... continues ... guy.
Click to expand...
Click to collapse
the power consumption of the CPU is preset in the power_profile.xml since android by itself cannot calculate power consumptions. Using kernels with custom frequencies for the CPU can screw all this up. 1350MHz or 1500MHz are not official so they are not included in power_profile.xml. So we have to add them to show correct battery stats
Anyone try this yet?
I am uploading todays version. I tweaked deadline and set it as default. I also revised my custom smartreflex code.
Does anyone here use a governor other than interactive?
I will start testing on undervolting the LCD right away.
Also new and being the first Nexus ROM to release:
40Hz refresh rate extra battery life! I believe 40Hz is plenty for gaming on a phone.
Going to test this tomorrow.
Uploaded todays version
why using a host that requires register\login?i want to try the rom,but not want to register a service that i'll never use..thanks anyways mate!
Good ideas djjonas.
Definitely going to try it.
However ... 40Hz are not enough. This is the concept of Project Butter. 60fps all the time!
I would say more than 45Hz would be good...
download link is very troublesome, very bad.

[KERNEL][13/09/13][306|188v4][3.xx][AOSP & SENSE4][S2W][GAMING][BATTERY][UV]XM-Kernel

[KERNEL][13/09/13][306|188v4][3.xx][AOSP & SENSE4][S2W][GAMING][BATTERY][UV]XM-Kernel
Please read and follow the notes and installation instructions.
They are not there for fun.
{
"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:
Quad 1.5GHz
MPDECISION from showp1984
CPU Hard Cap (Your max freq setting will be respected)
CPU UV Interface
[email protected]
Separate 2D/3D OC Interface
EMC OC Interface
LP Core OC
Audio Min. Freq. Interface
NTFS R/W
GPU UV Interface
Sweep2Wake
DoubleTap2Wake
Fast Charge
Governors: powersave,pmc,conservative,smartmax,ondemand,touchdemand,gaming,interactive,performance
I/O schedulers: noop,sio,row,deadline
Optimized gaming and battery life (1,2,3,4,5)
USB Mass Storage (On most Sense ROMs, you need Lyapota mod pack for this. Except Viper, it works on Viper out of the box.)
MHL (Only on Sense and old AOSP ROMs)
Differences between AOSP and Sense versions:
BLN
Sense: Auto-BLN on every ROM.
AOSP: Support for CM's BLN function.
Touchscreen calibration control
Sense: Auto-switch by switching governors
AOSP: Disabled
Click to expand...
Click to collapse
Click to expand...
Click to collapse
Changelog:
Beta:
#306
Rebuilt with Linaro 4.8 -O3. Should give more performance with better battery life.
#305
smartmax updates from maxwen.
#304
Disable JRCU, according to maxwen it caused lockups.
#303 cpu clock changes reverted.
Switching governors will no longer update calibration control.
Touch-screen updates(S2W,DT2W) from maxwen.
Variant info added back.
#303
Included maxwen's double-tap to wake (needs sysfs enable), and inner CPU clock changes.
#302
Included maxwen's fixes for freq. locks and LP mode switch with OC.
#301
Default UV removed.
#300
AOSP Audio fixed.
#299
Replaced 640MHz with 620MHz in freq table to be compatible with LP OC.
#298
Imported maxwen's CPU code to hopefully solve freq-lockups for everyone, and a few other things, so:
Added switchable LP OC to 620MHz.(Needs to be enabled through sysfs)
Added sysfs interface to configure audio min. freq.
#296
DriveDroid support.
#295
RIL boost removed again
#294
PMC values updated.
Touchscreen calibration control enabled via sysfs. (Thx maxwen)
On Sense calibration control will change with governor: gaming/interactive->off for best gaming experience, smartmax/pmc->on to prevent call bug.
#293
RIL Boost added back, as it was not the reason of freq. lock.
CPU related things are at #285. (I'm afraid of saying this again, but this should fix the frequency issue)
Smartmax (and so do PMC) updated to latest version.
#291
RIL Boost removed. Hopefully this will prevent frequency lockups.
#290
Frequency weirdness around 475MHz should be fixed now.
#289
Fixed min.freq stuck at 475MHz.
Fixed PMC ideal freq.
#288
Panel back to stock.
Wi-Fi back to stock.
Possible solution for screen not turning on from maxwen.
#286
Panel update reverted.
Suspend updates from maxwen.
#285
Old wi-fi driver.
Smartmax fixes from maxwen.
Previously introduced high freq usage fixed.
#283
Suspend/resume updates from maxwen and trip.
Panel update from trip.
#282
Wi-Fi config updates from kozmikkick.
#281
Added maxwen's fix to prevent high freq. spikes.
#280
Backlight brightness and BLN unlinked again.
#279
Smartmax boost duration fix. (Thx maxwen)
Auto-BLN defaults to much lower button brightness.
Backlight brightness value will limit BLN too.
Wi-Fi fix from kozmikkick. (Thx to trip also)
#274
Reverted video updates, as worse performance reported.
#273
Auto-BLN fixes.
Throttling from 80°C.
Video driver updates from trip.
Sleep/Resume updates from maxwen.
#268
Removed sustain_load from interactive/gaming.
Reduced default readahead size to 128KB.
UMS fixed.
#266
Added back Auto-BLN.
Added interface to configure maximal backlight brightness. (See the bottom of this post) (Requested by Tabtoub)
For UMS you need to disable USB debugging first. This will be fixed in next version.
#262
Rebased on 188v2, with everything important added back. This means (changes from #259):
More performance.
Less heat.
More stability.
LP Core max freq. back to 475MHz.
Stock freq. table. Stock UV table.
SCHED_MC is back. (Group task to cores option in Trickster)
8 step DVFS table.
Old releases:
#259
DVFS Table and so OC Interfaces(GPU/2D/EMC) reduced to 6 steps.
#257
Performance and stability improvements.
Low LP Core freqs reduced for better battery.
DVFS Table and so OC Interfaces(GPU/2D/EMC) reduced to 6 steps.
25MHz removed as it caused too much lag.
Another try to fix touchscreen unresponsiveness.
Auto-BLN won't change your button backlight settings.
#252
UV fixes.
Auto-BLN configurable. (See the bottom of this post)
#250
Fixed min. freq. and some other weird bug, introduced in the last update.
#249
Auto-BLN now only included in Sense build. +Some fixes.
Kernel updated to 3.18 base. (Only the sleep code changed)
Some task scheduler tweaks. (May fix alarm bug)
PMC updated to v7 interactive.
2D & 3D clocks synced by default for better performance.
#247
Initial version of Auto-BLN. (Back Light Notification will work automatically on every ROM.)
#243
CPU Throttling level lowered to 80°C.
Stock ondemand added back, if some ROM defaults to it.
Core<->CPU possible difference raised to stock 300mV. (This can cause less heat, more stability, but slightly less fps)
Another try to fix "can't answer call" bug on sense.
Some driver updates from Nvidia.
Included pabx's headphone tweak for AOSP users.
#241
UV should work for everyone now.
CPU<->Core voltage difference raised to 250mV. (See more about this in the Notes section)
New algorithm written for picking the lowest but still statisfactory core voltage. -> Less heat.
Min. possible CPU voltage reduced to 600mV.
Min. possible Core voltage reduced to 800mV.
Enabling GPU(core) UV will no longer result in unlocking GPU<->Core voltage relation.
Shared clock between emc and mpe from Trip for more bandwith.
Lock mpe to 3D clocks, again for more bandwith.
#235
EMC (Memory Controller) OC Interface. (See the bottom of this post)
Support for Viper UMS.
51MHz added for incompatible ramdisks, and 600MHz removed.
PMC Tuneable.
Another try to fix "can't answer call".
#232
Separate kernel for AOSP and SENSE based ROMs. (Trying to solve the "can't answer call" bug on Sense)
AOSP version def. ramdisk is CM10.1(nightly), Sense def. ramdisk is my modified Ordroid 13.0
Audio min freq. bug fixed.
Wi-Fi driver reverted to 3.14.
#227
CPU and CORE VDD brought closer for more stable performance.
Default RamDisk: Ordroid 13.0. Should be good for any sense ROM. Please try to use this without repacking on sense ROMs, or else you will lose these tweaks. (But I can't promise that it would work for yours too.)
RamDisk changes:
Disabled pnpmgr. -> Fix for facebook cap resetting, and 25MHz resetting to 100Mhz.
Removed some crazy boot time settings, locking to quad-core, or 1-core depending on some things.
Removed defaulting to ondemand.
(I suggest every sense ROM developer to do the same.)
#226
Performance bottleneck fixed.
Added Shan89's Performance May Cry smartmax tweaks as "pmc" governor.
#224
LP core OC'd to 500MHz, thus it can be used more, saving more battery.
Min. freq lowered to 25MHz, save more battery if we don't need any performance.
Freq table set to nice and round frequencies.
Benchmark scores on CPU will be lower. I didn't find the actual reason for that, but in every day usage and gaming wise this won't have any effect.
#217
Optimized memory functions.
Some video driver changes for MHL. (Needs test from sense guys)
#212
AHB and IOMMU driver reverted...it caused worse battery and more heat for me.
#211
A lot of scheduler optimizations and fixes, that help a lot in gaming. (Thx Metallice)
#210
Added Tegra AHB driver. (Thx kozmikkick & Metallice)
Updated IOMMU driver. (Thx kozmikkick)
Lowered 2D max. freq to stock again.
#207
Separate CPU DVFS table per variant is back for stability, with only minor UV.
#206
Performance bottleneck fixed.
A little more voltage on cpu. (~25mV)
Different DVFS Table for Variant 0.
#200
A little UV back on core. (25-50mV depending on clock)
Default Variant 3 freq. table. (So you might not be able to UV that much, and of course clear tuner app data.)
GPU min. clock is 247 again.
Small fixes.
Default ramdisk is CM10.1 Beta 10.
#198 (Still alpha)
Core clocks changed to safer values.
Seems to fix interactive/gaming issue.
#197(Quite much change...it's better to call this alpha version then.)
Interactive and gaming governors seem to quad-lock this to max freq...better not use them.
"Redesigned" DVFS table. Now every HOX will use 1 table(Variant1's) regardless of anything. -> Clear tuning app data
New Wi-Fi driver. (Thx kozmikkick)
Internal Core clock limit disabled(for GPU OC).
Small fixes from upstream.
GPU OC Interface back to 8 clocks.
GPU min. freq is at 267.
Pre-UV on CPU removed.
Pre-UV on Core removed.
Default readahead size is 4096KB.
#192
Previous lag should be fixed.
Added kernel changes for CM B10 BLN. (But repack needed)
#191
Better CPU spinlock handling. (A little faster and less overhead)
Spearate 3D and 2D OC Interface. (See the bottom of the post)
Video drivers is the same as #106.
Gaming governor added.
Interactive tweakable again.
Click to expand...
Click to collapse
Stable:
188v4
Added button_brightness interface.
Added PMC governor.
Added Auto-BLN, but disabled by default.
188v2
--Changes since #188>
AOSP Ramdisk: CM10.1 B10.
Sense Ramdisk: Ordroid 13. Should work for the most sense ROM.
Added gaming governor.
MHL fixed.
Viper UMS fixed.
--<Changes since #188
Better synced the core freqs. Should solve some issues, and even less heat.
Interactive is providing much better gaming now, as we have don't have to avoid heat that much.
Fastcharge doesn't need replug to be activated. (Thx to maxwen)
EMC(memory) ratio changed. (Thx to kozmikkick)
Switched to JRCU.
Boot freq is at 1300MHz. You can change that to lower of higher with your favorite tuner app, preferably Trickster Mod.
Some unnedded high boosts lowered to be more battery friendly.
Some cherry-picks from maxwen.
GPU OC and GPU UV interface added. (These are only for experts and brave warriors. For more information see the bottom of this post).
Please from now on use Trickster Mod to change anything. (Don't forget to accept the changes in the top right corner!)
Video drivers close to stock. MHL should work on stock, and in older AOSP ROMs(with ICS blobs).
Smartdimmer disabled by default. For enabling it, see the bottom of this post.
UMS works on stock ROMs with lyapota's modpack. (Thanks for n3o for the kernel part, and Zulake for testing)
Voltage control interface changes. (more info, even more info)
Audio min. freq is at 204MHz
Implemented proper voltage control. You NEED to clear the data of the apps that can change voltages to let them reset the default values!
S2W register threshold increased to prevent loss of touch on buttons.
Disabled Gentle Fair Sleepers
Added arm topology awareness patch and enabled arch power management
GPU min. freq. lowered to 247MHz for stability.
LED backlight fix. (Faster wake, thx to Thoemy)
Added TouchDemand governor per request.
ROW optimizations. Should be even smoother.
Switch to fget_light in do_fsync() -> Less overhead in fsync -> More battery, more speed.
Added ROW I/O scheduler and set as default.
Added smartdimmer from trip.
Disabled optimized RWSEM algorithm. (Possible cause of freezes)
Variant info on sysfs introduced. (/sys/kernel/debug/t3_variant, cpu_process_id is your variant. Reworked from faux's code.)
Various fixes/optimizations, mostly from faux's n4 kernel. (more info on github)
Little longer boost for smartmax.
Global input boost cap from maxwen.
Driver updates & other kernel fixes. (See github for more information)
USB Mass storage fix.
CIFS Support.
SIO added.
Better compression. (Smaller kernel size)
#106
GPU OC to 520MHz.
Driver updates from Nvidia.
Smartmax grovernor from maxwen. (It should be better for battery life, now this is the default)
Lower LP voltage from TripNRaVeR.
Fix LP lockup.
Fix for errors when trying to change governors on some ROMs.
SW AES optimized. (~30-50% faster)
HW Accelerated AES enabled.
Frequency lockup fixed.
Some other fixes from n3o and lord.
Replaced stock hotplug algorithm with MPDECISION. (Thx to showp1984 for the code).
Some fixes from maxwen.
Proper Hard Cap. Now it will be kept during suspend/resume.
Voltage Control.
Introducing CPU Hard Cap - Restoring after suspend is not working yet. For that use SetCPU "On Screen Unlock" profile.
Updated Touchscreen driver(Now should work for everyone)
Voltage Control
Volume wake
USB Fast charge
A few optimization for better gaming.
CPU tuning works
Fix for multitouch that S2W broke
Added Sweep2Wake
Working CPU hotplug and everything else
GCC optimizations (Compiled with linaro 4.7)
Click to expand...
Click to collapse
Click to expand...
Click to collapse
Notes/Issues/User guide:
The absolute stable version is 188v4, please consider anything above as a beta.
Use smartmax for daily/battery and gaming for performance/gaming.
If you want extra battery, and you are ready to give up smoothness for it, then use "pmc" governor, more info here.
If you want even more performance then you can use interactive or ondemand with gaming boost.
If you have hiccups in music, use interactive there too.
If too much heat generated during games, cap your CPU to 1-1.2GHz, the performance difference will be minimal, also a safe undervolt (25-50mV) should help a lot.
About UV: CPU VDD should be close to Core VDD, by default there is a 100-300mV(depending on kernel) lock between them. Core minimal voltage is 950 at default. This means even if you set 100mV to any freq, it won't go below 650-850. And this also means, if you UV your GPU, while you have CPU UV, CPU UV that seemed stable can become unstable.
So if you plan on UVing GPU, you should UV that first, and CPU only after that.
I'm not responsible for any damage, this kernel might cause.
Thanks to pabx, maxwen, n3ocort3x, tbalden, kozmikkick, showp1984,TripNRaVeR and everyone who contributed to this kernel.
There might be a 1sec delay after wake one sense roms, before the screen processes touches. It's a S2W thing, if you don't want it, disable S2W.(See below)
Here is an awesome guide about how to get the maximum out of your phone, both in battery and performance
Auto-BLN Issues:
Green led might stuck after removing from charger if there is an unseen notification. Just check the notification to solve.
Green led might not come up after a finished charge.
BLN will not work while charging the phone.
Click to expand...
Click to collapse
Click to expand...
Click to collapse
AOSP Installation:
Repack!
Install modules from recovery (Install the zip)
Wipe dalvik cache. Yes, it's important, the versions could have some binary level differencies (from different compiler options) which can lead to unknown behaviour with old dalvik code.
Erase fastboot cache
Flash kernel image with fastboot
Click to expand...
Click to collapse
Click to expand...
Click to collapse
Sense Installation:
Install modules from recovery (Install the zip)
Wipe dalvik cache. Yes, it's important, the versions could have some binary level differencies (from different compiler options) which can lead to unknown behaviour with old dalvik code.
Erase fastboot cache
Flash kernel image with fastboot
If you have problems with some functions not working on your ROM, then repack. Otherwise it's not needed.
Click to expand...
Click to collapse
Click to expand...
Click to collapse
Download:
Latest beta releases for Sense5/CM11
Beta releases / Mirror / Mirror #2
Stable releases:
188v4 AOSP
188v4 Sense
188v2 AOSP
188v2 Sense
#106
Repacks
Click to expand...
Click to collapse
Click to expand...
Click to collapse
Configuring kernel parameters:
S2W Configs:
Turn off:
Code:
echo "0" > /sys/android_touch/sweep2wake
Or you can download "Sweep2Wake-Widget" from Google Play.
Button panel locks to s2w after this distance:
Code:
/sys/android_touch/s2w_register_threshold
Screen turns on/off after this distance:
Code:
/sys/android_touch/s2w_min_distance
Direction independent(1 - Yes, 0 - No):
Code:
/sys/android_touch/s2w_allow_stroke
DoubleTap2Wake Configs:
Turn on:
Code:
echo "1" > /sys/android_touch/s2w_allow_double_tap
Activate fast charge:
Code:
echo '1' > /sys/devices/platform/htc_battery/fast_charge
Enable smartdimmer:
Code:
echo "1" > /sys/devices/tegradc.0/smartdimmer/enable
To get your variant:
Code:
cat /sys/kernel/debug/t3_variant
(Or see it in a root explorer)
cpu_process_id is your variant.
3D Tuning:
If you want to change clocks, you have to write the whole clock table again, from up to down. In case you want to reset to default, this is it:
Code:
echo '520 520 520 520 492 484 380 247' > /sys/devices/system/cpu/cpu0/cpufreq/gpu_oc
If you want to set them at boot, use an init script. Here is one. Just copy to /system/etc/init.d and set the permissions to executable by everyone with a root explorer. (Thx to Byrana)
Here is a flashable script that will work on newer kernels too for everyone. It also enables fast_charge. (Thx again Byrana)
2D Tuning:
If you want to change clocks, you have to write the whole clock table again, from up to down. In case you want to reset to default, this is it:
Code:
echo '520 520 520 520 492 484 380 247' > /sys/devices/system/cpu/cpu0/cpufreq/two_d_oc
You should NOT OC this higher than 3D.
EMC Tuning:
If you want to change clocks, you have to write the whole clock table again, from up to down. In case you want to reset to default, this is it:
Code:
echo '667 667 667 667 408 408 408 408' > /sys/devices/system/cpu/cpu0/cpufreq/emc_oc
If you want to OC let's say to 800MHz:
Code:
echo '800 800 800 800 667 667 408 408' > /sys/devices/system/cpu/cpu0/cpufreq/emc_oc
Auto-BLN Control:
Interface:
/sys/class/leds/button-backlight/auto_bln
Values:
0: BLN OFF/Green led ON
1: BLN ON/Green led ON
2: BLN ON/Green led OFF
Example:
Turn off Auto-BLN:
Code:
echo '0' > /sys/class/leds/button-backlight/auto_bln
The changes will apply from the next notification.
Backlight button brightness:
Interface:
/sys/class/leds/button-backlight/button_brightness
Values:
0-255: 0 is off, 255 is the maximum possible.
Example:
Code:
echo '50' > /sys/class/leds/button-backlight/button_brightness
The changes will apply from the next backlight turn on.
GPU Voltage control:
If you want to enable this you should write '1' to /sys/devices/system/cpu/cpu0/cpufreq/gpu_voltage.
In command line that is:
Code:
echo '1' > /sys/devices/system/cpu/cpu0/cpufreq/gpu_voltage
After that you need to restart your voltage control app (Trickster Mod).
Now you will see the GPU frequencies multipled by 1000 to separate them from the CPU frequencies. So you will see 520000MHz, etc.
Be advised that there are a really few HOX's that can handle more UV on Core, than the preset 50.
Also incrasing your Core voltage over 1300mV is NOT ADVISED AT ALL. Almost everything uses this voltage on your motherboard.
If you want to enable the values at boot, you need an init script that enables it, so later Trickster mod or anything can set them.
LP OC:
Interface:
/sys/module/cpu_tegra/parameters/enable_lp_oc
Values:
0: LP OC OFF
1: LP OC to 620MHz
Example:
Turn on LP OC:
Code:
echo '1' > /sys/module/cpu_tegra/parameters/enable_lp_oc
Audio Min. Freq.:
Interface:
/sys/module/snd_soc_tlv320aic3008/parameters/audio_min_freq
Example:
Change audio min. freq. to 204MHz:
Code:
echo 204000 > /sys/module/snd_soc_tlv320aic3008/parameters/audio_min_freq
Save settings:
If you want any of the above settings saved, you can use iba21's recovery package.
Click to expand...
Click to collapse
Click to expand...
Click to collapse
Battery life:
Source:
GitHUB
BitBucket
DONATORS
(Thank you)​
fantomster,evo1rs,71nh0,dsonex,Lextermina(3),Byrana,97_3,glen.ricky,Whiskey103,damanrico,RiceDie(3)
Click to expand...
Click to collapse
Click to expand...
Click to collapse
github link is broken
BTW: take a look at my fixes in cpufreq.c
At least governor switching for all cpus is fixed there
REPACKS(Click)​
If your ROM is not in the list, then you should repack yourself, or wait until there is a repacked version out.
You can use this tool to repack the kernel: [TOOL]One X One Click v1.9 then please upload it to d-h.st:
username: xmrepacks
password: xmrepacks
For file name use the following: xm_kernel_<num>_<rom>.img or xm_kernel_<num>_<rom>.zip if you include the modules, for example: xm_kernel_95_viper336.img
And for description use the following: XM-Kernel #<num> for <rom>, for example: XM-Kernel #95 for Viper 3.3.6
Tick to Make it public.
I'm trusting you, that you won't upload anything else than repacked XM-kernels. Please don't fail my expectations.
There is an alternative link for repacked boot images, thanks to Whiskey103: http://www.whiskey103.nl/Onex_kernels/index.php?dir=xm/Repacked/
TODO:
Release the next stable version.
Benchmark results (Antutu only for now)
#111(beta) With CyanogenMod 10.1 beta3
TO TELL OTHERS I DIDNT GET HIRE SCORE IN LATER RELEASES.I DONT KNOW WHY.
Xmister said:
As I see, it depends on faux's OC code. I don't want to implement that yet.
Click to expand...
Click to collapse
The fix for governor switching has actually nothing to do with OC
So you can just use that without any OC - which we dont really need on HOX+
The only OC I have is enabling of 4x1.7Ghz
maxwen said:
The fix for governor switching has actually nothing to do with OC
So you can just use that without any OC - which we dont really need on HOX+
The only OC I have is enabling of 4x1.7Ghz
Click to expand...
Click to collapse
I will look into it tomorrow then. Thanks.
You did good job.A little suggestion. Show the version and features on title.I even didn't know you update to #11even#12until get in here^_^
Re: [KERNEL][07/02/13][3.1.10][AOSP]XM-Kernel
Anyone tested this on CM10.1 without repack?
Sent from my Venom Infected One X
nice to see another one here welcome to our world :highfive:
on icj 1.7 wlan is on but not connect to my router
Re: [KERNEL][07/02/13][3.1.10][AOSP]XM-Kernel
Wow! Another kernel, another good day Cheers dev!
Sent from my One X running Blade v4.7.0. At a mere 217 MB, with tons of AROMA Mods and tweaks, this, is what you want.
rafkin said:
on icj 1.7 wlan is on but not connect to my router
Click to expand...
Click to collapse
Hi,
did you check your mac address ? and the rules on your router ?
1.6.9/cm10.1/aosp all fine without WiFi issue.Maybe it's ROM problem.
tmotard said:
Hi,
did you check your mac address ? and the rules on your router ?
Click to expand...
Click to collapse
no mac filter or other secruity only wpa2 protect
Re: [KERNEL][07/02/13][3.1.10][AOSP]XM-Kernel
JohnYang1997 said:
1.6.9/cm10.1/aosp all fine without WiFi issue.Maybe it's ROM problem.
Click to expand...
Click to collapse
Should we repack n use on ICJ or just flash modules n kernel
sent on earth from 1x
Dont work on cm.And no need to repack to flash on 1.6.9/AOSP(tested myself)
You f#cking cool awesome
Re: [KERNEL][#18][07/02/13][3.1.10][AOSP]XM-Kernel
So I come after 4 hours and see a 18 ..super fast work man. ..
Sent from my HTC One X using xda app-developers app
Re: [KERNEL][#18][07/02/13][3.1.10][AOSP][S2W][520GPU]XM-Kernel
Why is there no activity on this thread !! The kernel is holding up awesome till now !! #12 repacked with tbaldens 3.1xkernel a3 with cm10.1 everything works like a charm !! Now gonna flash #18 ...please don't hold back from trying this kernel !! Its awesome !
Sent from my HTC One X using xda app-developers app

[KERNEL] [25/9] [LP][ KK] Carbon Kernel R5

CARBON KERNEL
Code:
#include <std_disclaimer.h>
/*
* Your warranty is now void.
*
* I am not responsible for bricked devices, dead SD cards,
* thermonuclear war, or you getting fired because the alarm app failed. Please
* do some research if you have any concerns about features included in this KERNEL
* before flashing it! YOU are choosing to make these modifications, and if
* you point the finger at me for messing up your device, I will laugh at you.
*
*/
R1
Bricked_hotplug
custom governors (conservative , ondemandplus , intelliactive, smartass, optimax, wheatley, n more )
new power management mode PowerSuspend for deep sleep fixes
frandom add
kernel mode NEON
LCD KCAL Color Calibration
Double Tap 2 Wake
Sweep 2 Wake+Sweep 2 Sleep
Multi Core Power Saving
Faux Sound 3.8
RAM management n optimization
Underclock upto 96 Mhz
dynamic fsync
simple algorithm for GPU from faux123
latest Linaro 5.1.1 (UBER) used for the build with full -o3 optimizations
R2
msm_hotplug and brick_hotplug (msm_hotplug enabled by default)
added state notifier
added USB fast charging
GPU overclock upload 650 Mhz
GPU underclocked to 100 Mhz
Franco Thermals added back with fixes
added governors
abyssplugv2
adaptive
badass
dancedance
darkness
hyper
intelliactive
intellimm
lazy
lionheart
nightmare
ondemandplus
optimax
pegasusq
slim
smartmax
smartmax_eps
uberdemand
wheatly
I/O schedulers added
BFQ
SIO
ZEN
FIOPS
VR
TRIPNDROID
Multicore powersaving enabled to aggressive by default
Added 10 new TCP cong
Used SaberMod 6.0 with -O3 optimizations
and much more check my github for more details
https://github.com/tarunkapadia93/android_kernel_xiaomi_armani/tree/cm-12.1
R3 :
compatible with CM R7 n Nameless R3 n the other lastest builds (that means no SystemUI FC any more )
based of caf kernels by @rebelos
few fixes
led notification light fixed
R4 BETA FINAL:
back to bricked hotplug with proper tuning this time
rebased of armani-dev kernel
video recording issue solved
dt2w & s2s+s2w added
new governor
same list of i/o
gpu max clock too 533Mhz (i dont see a real good scaling at 650 Mhz i m working on this part so pls wait)
R5:
Compiled with Linaro 4.9.4 Cortex A7 (Thanx to Christopher83)
O3 Optimizations
MultiROM support aka Kexec Patched
Works with Both KK n LP Roms
Hotplugs
Intelli_plug
Bricked_Hotplug aka MSM_MPDecision
MSM_Hotplug
Alucard_Hotplug
Governors
Intellidemand
Intellimm
Alucard
Hyper
Impulse
Pegasusq
Nightmare
Intelliactive
Yankactive
Smartmax
Zzmove
I/O Sched
BFQ
FIOPS
SIO
Zen
Vr
TripNdroid
CPU Overclock to 1.7Ghz
GPU Overclock to 590 Mhz
Double Tap 2 Wake
Simple Thermal Driver by @SultaXDA
Dynamic Fsync
Kcal Updates
Faux Sound
Much more
KNOWN BUGS :
LED NOT BLINKING SOMETIMES N STAYS SOLID
How to Install :
Boot into recovery
Wipe cache
Wipe dalvik cache
Flash kernel
Reboot and enjoy!
*use Kernel auditor(best) or Aero Kernel Control (full native sysfs best if you know what you are doing) to activate or tweak with kernel settings
## NOTE ##
After Flashing any Kernel Or Rom let you Phone Cool down to normal temp before you start using it. Pls dont complain the phone is heating n lagging. Flashing n things have heavy CPU usage so if will Heat.
Disable "Enable per-app Profile" if you are running benchmarks like Antutu
Downloads
Carbon kernel downloads
CARBON_KERNEL_LP_KK_25092015_1734.zip - 8.29 MB
its can be flashed on all aosp and cm based roms​
Thanx to everyone with helped me all the dev who i cherry-picked from thanx alot :angel:
XDA:DevDB Information
[KERNEL] [25/9] [LP][ KK] Carbon Kernel R5, Kernel for the Xiaomi Redmi 1S
Contributors
Tarun93, fellow kernel dev (kD a.k.a thewisenerd, zeroblade1984, LuffyXDA, armani-dev )
Source Code: https://github.com/tarunkapadia93/android_kernel_xiaomi_armani
Kernel Special Features:
Version Information
Status: Stable
Current Stable Version: R5
Stable Release Date: 2015-09-25
Current Beta Version: R4 BETA Final
Beta Release Date: 2015-06-19
Created 2015-01-23
Last Updated 2015-09-25
Setting n tweaks
daily use settings
governor = alucard
i/o scheduler = BFQ
cpu = 300 min 1689 max
Alucard Hotplug
gpu mac clk = 450
DT2W will drain battery so think before you tweak around with the kernel n end up telling me your kernel is giving me **** Battery packup
Faux Sound
dont complaint if sound distorts at loud profile
loud profile is mean for full size cans (headphones) n similar things where you need a little more power
dont switch it on if you are using IEM (in-ear earphones) or normal earphones
i normally keep a setting of
digital output gain = 3
analog output gain=5
Hope that this clears some questions n helps you guys :fingers-crossed:
msm_mpdecision
show-p1984 said:
What is msm_thermal?
What is msm_mpdecision?
100% kernel based multi core decision! (should cpu1/2/3 be online or not?)
This replaces your /system/bin/mpdecision binary which is renamed by the installer to mpdecision_bck.
Check /sys/kernel/msm_mpdecision/conf/ for the configuration.
startdelay = time until mpdecision starts doing it's magic
delay = time between checks
pause = if something else plugs in the cpu, fall asleep for 10000ms
max_cpus_online_susp = if the screen is off, how many core should be active when the screen is off
enabled = enable(1) or disable(0) mpdecision. This does not affect max_cpus_online_susp
min_cpus = min cpus to be online, cannot be < 1. Default: 1
max_cpus = max cpus to be online, cannot be > 4. (if you set it to 2 and min_cpus to 1 you will basically have a dualcore) Default: 4
idle_freq = a value against that will be checked if a core +/- is requested. (300000)
If cpu0 is below that value and a core up of another cpu is requested, nothing will happen.
If any other cpu is above that value and a core down of that cpu is requested, nothing will happen. (otherwise it would now put down that cpu even though it is still working, which isn't what we want)
Hot plug thresholds (aka now it gets 'complicated')
This small formula calculates which value will be used: (number_of_cpus_online - 1) * 2
The result of this formula will be the nwns_threshold where a new cpu is hotplugged.
The result of this formula + 1 will be the nwns_threshold where a cpu is unplugged.
nwns_threshold_x = runqueue threshold, if this is reached cpuX will be hot/unplugged
twts_threshold_x = time threshold, this amount of time must have passed for the related action to be taken (hot/unplug)
Example:
One cpu is online.
(1 - 1) * 2 = 0 ergo:
nwns_threshold_0 = cpu1 will be hotplugged at this value
((1 - 1) * 2) + 1 = 1
nwns_threshold_1 = cpu0 will be unplugged at this value
Since we can't unplug cpu0 this is '0'.
Two cpus are online.
(2 - 1) * 2 = 2 ergo:
nwns_threshold_2 = cpu2 will be hotplugged at this value
((2 - 1) * 2) + 1 = 3
nwns_threshold_3 = cpu1 will be unplugged at this value
etc...
Some values are:
NwNs_Threshold: 12, 0, 25, 20, 32, 28, 0, 35
TwTs_Threshold: 140, 0, 140, 190, 140, 190, 0, 190
Where the position and function of the number equals the result of the above explained formula.
(all times are in ms)
If you want to see the mpdecision magic happening:
Code:
adb shell
cat /proc/kmsg | grep 'MPDEC'
mpdecision's input event boost, aka project butter
This will boost your min cpu speed if you touch the screen or press a button and gives you full control.
In those events the min cpu freq will be risen to a predefined value (look below) on every online cpu. This boosts overall reaction times and smoothness a lot. (works similar to the qcom mpdecision binary)
Configuration files:
[email protected]:/sys/kernel/msm_mpdecision/conf # ls | grep boost
boost_enabled
boost_freqs
boost_time
All of them work like the usual sysfs files, except one special case:
boost_freqs will list all frequencies from cpu 0 to cpu x. Cpu 3 and any following cpu will share one frequency.
To change those frequencies echo the cpu number + the frequency in khz.
Example: To change the boost freq of cpu3 (and 4,5,6,7,8, etc) the echo would look as follows:
Code:
echo "3 960000" > /sys/kernel/msm_mpdecision/conf/boost_freqs
for cpu0:
Code:
echo "0 960000" > /sys/kernel/msm_mpdecision/conf/boost_freqs
Defaults:
Code:
cat /sys/kernel/msm_mpdecision/conf/boost_freqs
960000
960000
729600
576000
Why do I have no WLAN?
Due to this kernels very high optimization settings it is too big for our boot.img with WLAN included into the kernel, so it is built as a module. That means it needs to be inserted into the kernel upon boot up, which needs to be automated for maximum comfort.
​
Click to expand...
Click to collapse
enabling n disabling a hotplug is simple
1 = enabled
0=disabled
to disabling a hotplug here is a example via terminal
Code:
echo "0" /sys/kernel/msm_mpdecision/conf/enabled
you can use third party apps too to make it a macro
i like aero kernel control available in the playstore
goto misc settings
tap "+" sign
navigate to the path you want n set the parameter as a macro
msm_hotplug
enabling n disabling msm_hotplug
/sys/module/msm_hotplug/enabled
other parameters
/sys/module/msm_hotplug/
msm_mpdecision
enabling n disabling the msm_mpdecision
/sys/kernel/msm_mpdecision/conf/enabled
other parameters
/sys/kernel/msm_mpdecision/conf/
intelli_plug
enabling n disabling the intelli_plug
/sys/module/intelli_plug/parameters/intell_plug_active
other parameters
/sys/module/intelli_plug/parameters/
MAKE SURE YOU DISABLE THE OTHER HOTPLUGS BEFORE YOU ENABLE ONE
if you enable intelli_plug make sure bricked_hotplug and msm_hotplug are disabled
if you enable msm_hotplug make sure bricked_hotplug n intelli_plug are disabled
bricked_hotplug is enabled by default as i feel its the best daily driver for max sot n battery life without compromising on performance
The zip adds module insertion to your ramdisk, if that fails for some reason the wlan module cannot be inserted.
if
Code:
adb shell lsmod
doesn't show this:
Code:
tun 14701 0 - Live 0x00000000
cifs 275399 0 - Live 0x00000000
bcmdhd 2964650 0 - Live 0x00000000 (C)
Then something went horribly wrong.
Chances are that I broke it and this should never happen.
One post in the issue tracker will probably fix it with the next release
You can restore wlan for your current bootup by executing:
Code:
adb shell
su
insmod /system/lib/modules/bcmdhd.ko
Thanks. Downloading. Gonna try asap. Will leave feedback.
bhu1 said:
Thanks. Downloading. Gonna try asap. Will leave feedback.
Click to expand...
Click to collapse
which rom are you trying it out on ??? pls mention the ROM if you can guys
Tarun93 said:
which rom are you trying it out on ??? pls mention the ROM if you can guys
Click to expand...
Click to collapse
Flashed it on cm11 RC16 for now, everything seems swift and smooth for now. Gonna leave more feedback soon on CM11 RC16.
Tomorrow I'll move to carbon RC6, will provide more feedback then.
Now, I'm gonna go and play around with the settings. Heh.
---------- Post added 24th January 2015 at 12:07 AM ---------- Previous post was 23rd January 2015 at 11:35 PM ----------
So, I played around with some settings and I found a bug. Sweep2Sleep (Also Sweep2Wake) isn't properly implemented, neither is it working nor are its settings proper. https://app.box.com/s/q58sztnn0y8eizuu0go99jlizyngnn3m
Edit : So, I tried the wake settings in trickster mod and when I selected s2w+s2s then s2s is working but s2w is just not working, I tried swiping in many ways, many many times but Its just not working. Also, if u select just s2s then it just reverts back to s2w+s2s probably because s2s isn't working.
I did a standard test I do with all kernels that I try (I have tried all the latest versions of all kernels that are currently available), I close every app that is running in background using greenify, CPU is set to 1.6ghz - 300 MHz, intelliplug (eco mode disabled in urs, no other has eco mode, I use mp-decision on those which doesn't have intelliplug), on demand governer, GPU set at Max (550 on urs and beast kernel and 450 on others) and I play a 720p hevc video, on ur kernel i was getting the smoothest playback among all (It was lagging for the least amount of time, same lag times as beast kernel, so might be just cause of OCd GPU). But in any case, currently this kernel is the best performing and feature rich kernel available. Period.
I'll try other settings (especially eco mode), and will leave further feedback soon.
Thanks, I await further updates. Loving the increasing amount of kernels on our forums.
bhu1 said:
Flashed it on cm11 RC16 for now, everything seems swift and smooth for now. Gonna leave more feedback soon on CM11 RC16.
Tomorrow I'll move to carbon RC6, will provide more feedback then.
Now, I'm gonna go and play around with the settings. Heh.
---------- Post added 24th January 2015 at 12:07 AM ---------- Previous post was 23rd January 2015 at 11:35 PM ----------
So, I played around with some settings and I found a bug. Sweep2Sleep (Also Sweep2Wake) isn't properly implemented, neither is it working nor are its settings proper. https://app.box.com/s/q58sztnn0y8eizuu0go99jlizyngnn3m
Edit : So, I tried the wake settings in trickster mod and when I selected s2w+s2s then s2s is working but s2w is just not working, I tried swiping in many ways, many many times but Its just not working. Also, if u select just s2s then it just reverts back to s2w+s2s probably because s2s isn't working.
I did a standard test I do with all kernels that I try (I have tried all the latest versions of all kernels that are currently available), I close every app that is running in background using greenify, CPU is set to 1.6ghz - 300 MHz, intelliplug (eco mode disabled in urs, no other has eco mode, I use mp-decision on those which doesn't have intelliplug), on demand governer, GPU set at Max (550 on urs and beast kernel and 450 on others) and I play a 720p hevc video, on ur kernel i was getting the smoothest playback among all (It was lagging for the least amount of time, same lag times as beast kernel, so might be just cause of OCd GPU). But in any case, currently this kernel is the best performing and feature rich kernel available. Period.
I'll try other settings (especially eco mode), and will leave further feedback soon.
Thanks, I await further updates. Loving the increasing amount of kernels on our forums.
Click to expand...
Click to collapse
Hey plz comment on the battery life, SOT also.... Thnx
bhu1 said:
So, I played around with some settings and I found a bug. Sweep2Sleep (Also Sweep2Wake) isn't properly implemented, neither is it working nor are its settings proper. https://app.box.com/s/q58sztnn0y8eizuu0go99jlizyngnn3m
Edit : So, I tried the wake settings in trickster mod and when I selected s2w+s2s then s2s is working but s2w is just not working, I tried swiping in many ways, many many times but Its just not working. Also, if u select just s2s then it just reverts back to s2w+s2s probably because s2s isn't working.
Click to expand...
Click to collapse
This is what happens when you don't read the phuxking documentation.
thewisenerd said:
This is what happens when you don't read the phuxking documentation.
Click to expand...
Click to collapse
What do u mean by 'Documentation' ? If u inferring that I didn't read the OP, then I'll inform that I properly read it before flashing the kernel, it says nothing about this. I did notice that the feature list says 'Sleep 2 Sleep' instead of 'Sweep 2 Sleep' but nothing else. What am I missing here, buddy ?
bhu1 said:
What do u mean by 'Documentation' ? If u inferring that I didn't read the OP, then I'll inform that I properly read it before flashing the kernel, it says nothing about this. I did notice that the feature list says 'Sleep 2 Sleep' instead of 'Sweep 2 Sleep' but nothing else. What am I missing here, buddy ?
Click to expand...
Click to collapse
S2w work from bottom left to right,while s2s work from bottom right to left
press thanks if i helped you
Hsmetric181 said:
S2w work from bottom left to right,while s2s work from bottom right to left
press thanks if i helped you
Click to expand...
Click to collapse
I know that, S2W isn't working in any case.
Great Work.
Using this kernel currently with CM R16, everything is working fine.
Battery life is excellent for me. After nearly 15h - there is still 72% battery left. Usage: Screen on: 30 min, Wifi, Bluetooth always enabled.
Only thing so far is that Netflix is not working, but this might be totally Rom related, as it was also not working with the orginal kernel.
bhu1 said:
I know that, S2W isn't working in any case.
Click to expand...
Click to collapse
only s2w wouldnt work s2s n s2w both with be enable together
Thanks for this kernel tarun...really a great one...every thing works awesome...just by using trickstar mod...and this kernel is working for me on PAC latest nitly...just have to flash kernel comparability patch updated!!! Lol
little warm
is this only for me or not, but i feel little warm when using this kernel on carbon. and thats make battery reduce faster.
justian said:
is this only for me or not, but i feel little warm when using this kernel on carbon. and thats make battery reduce faster.
Click to expand...
Click to collapse
fir the first start yes it is let it cool down for a while n you are good to go it wont heat there after
is this working on Mokee 4.4.4 Nightly?
I cant turn the zram off. If i turn it off and save it emidiately gets turned on again. Am i doing something wrong?
everything is working for me guys.
bhu1 said:
I know that, S2W isn't working in any case.
Click to expand...
Click to collapse
S2W is also working properly for me. I am on CM11 RC16.
Tarun93 please mention the settings for best battery and best performance separately please coz I play games a lot and I want to get max battery when I'm not gaming .

[Kernel][August 9] Electroactive Kernel 2.52 (Lollipop) Electroactive 3.10 (AndroidM)

{
"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"
}
+Electroactive Kernel
FEATURES
Overclocking/underclocking options
Electroactive default CPU governor with dual-phase frequency, boost_sampling factor, and boostpulse
Many other popular CPU governors including UberDemand(Cl3Kener), Badass(Dennis Rassman), Impulse(neobuddy89), and much more.
MSM MP-Decision Hotplug
Full KCAL support
Bleeding-edge CAF updates
Full Gamma reverse engineering support
Synapse + script & runparts built-in
Optional improved Cpu optimization level 'l2' and bus overclocking
Power Aware CPU Scheduling
Partial-Resume
Full voltage control
Wake gestures
Kernel Samepage Merging
CPU Deferred Timers
Msm-Thermal-X thermal driver
Optional sweep2wake and doubletap2wake
Optional USB fastcharge
Optional backlight dimmer
Kernel compressed with LZ4-r127, GZIP for faster boot times
Several I/O controls with ROW as default
Optional cooler color
Advanced color and gamma control
Power-efficient workqueues ported from 3.18 mainstream - improves power efficiency
3.4.x updates and fixes from upstream
Build with optimized Toolchains
Use Android device as USB keyboard/mouse
Full -O3 & graphite and -pthread support
Optional max screen off frequency at 1190 MHz
Charge light support
Optional disable fsync
Enhanced TCP with wifi and network enhancements
Optimized AES, SHA1, and RWSEM
OTG flash drive support FAT32
NTFS r/w, CIFS, and exFAT support
Fastest ZRam backported from Linux 3.18 kernel
Enhanced LMK
Tuned virtual memory
MultiROM support
init.d support
/dev/frandom support
DriveDroid compatible
electroactive.conf support
F2FS support
Linaro enhancements
Thermal throttling control: elexcool, extracool, and stockcool options
Compatible with TricksterMOD, Device Control, Kernel Tweaker, Franco Display Control and FauxSound Control, and Synapse Kernel manager
Vibration strength tunable
FSTRIM built-in kernel
NOTES & INFORMATION
Electroactive governor
The Electroactive CPU governor has been created to get some of the best balances between battery life and performance that you will see on a device. It is a hybrid class governor, using a unique way to merge the best of both interactive and ondemand. It includes some extra additions and enhancements to be more battery saving than interactive governor and some boost tunes and additions that allow better power management and performance in games as well as better power saving when in normal use. CPU boost, graphics boost, fast_start deep_sleep and detection features are built in as well as 300 MHz clock speed in suspend. This governor performs extremely well in games, normal use, battery performance, and just about everything. Some tunables available in the governor:
boostpulse: Immediately boost speed of all CPUs to hispeed_freq for min_sample_time, after which speeds are allowed to drop below hispeed_freq according to load as usual.
boosted_sampling_down_factor: This custom made parameter's set default setting will give several 0.4 second bursts of full throttle CPU to programs. It's about the time that user interface has to produce some meaningful response to your input so to feel smooth, especially while gaming. Besides better responsiveness, this setting will also give better overall speed to many programs which often interchange high CPU demand with IO waits and then suffer because the CPU governor too eagerly throttled down the frequency during those waits.
default_freq_boost_time: this is the default time that the CPU will spend in 'boost mode' before scaling down to normal frequencies, such as when in normal use.
ui_sampling_rate: when you touch the screen, the sampling rate changes temporarily to whatever you set it to.
down_differential: After spending sampling_down_factor*sampling_rate micro seconds at maximum frequency on high load, governor samples the load again to calculate an approximate targeted frequency to scale-down-to which should not trigger up_threshold in the next sample. (Triggering up threshold may cause jumping to max frequency again). Max_load_freq is checked against (up_threshold - down_differential) * current frequency. If found to be smaller, CPU is scaled down to a target frequency as described above. Down_differential also act as the factor to prevent aggressive scale down. Higher value of down_differential corresponds to delayed scaling down.
two_phase_frequency: Two-phase is a battery saving technique where even during max cpu frequencies, there are still gaps of inactivity so instead of running @ max frequency all the time, the two phase will alternate between busy/idle phase. Accepts four frequency values separated by comma, for cores 0, 1, 2, and 3.
input_event_min_freq: takes four values separated by comma. These are the input boost frequencies for cores 0, 1, 2, and 3.
input_event_timeout: this is the length of time in milliseconds that the input boost will be active (default 500). Setting this to 0 disables input boosting.
powersave_bias: this parameter takes a value between 0 to 1000. It defines the percentage (times 10) value of the target frequency that will be shaved off of the target. For example, when set to 100 -- 10%, when ondemand governor would have targeted 1000 MHz, it will target 1000 MHz - (10% of 1000 MHz) = 900 MHz instead. This is set to 0 (disabled) by default. When AMD frequency sensitivity powersave bias driver -- drivers/cpufreq/amd_freq_sensitivity.c is loaded, this parameter defines the workload frequency sensitivity threshold in which a lower frequency is chosen instead of ondemand governor's original target. The frequency sensitivity is a hardware reported in a value between 0 to 100% that tells software how the performance of the workload running on a CPU will change when frequency changes.
ignore_nice_load: this parameter takes a value of '0' or '1'. When set to '0' (default), all processes are counted towards the 'cpu utilisation' value. When it's set to '1', the processes that are run with a 'nice' value will not count aka ignored in the overall usage calculation. This is useful if you are running a CPU intensive calculation that you do not care how long it takes to complete as you can 'nice' it and prevent it from taking part in the deciding process of whether to increase your CPU frequency.
freq_for_responsiveness: up threshold considered for sampling load is up_threshold_at_min_freq. Also during the part where CPU is at maximum load frequency, governor need to find the optimal frequency as the next frequency - which should not trigger up_threshold in the next sampling. When such a frequency_next is found to be a) less than freq_for_responsiveness b) will not trigger down_threshold in the next sample, then the optimal frequency is set to freq_for_responsiveness.
Electroactive Configuration File
Kernel defaults are used to build a configuration file, based off of elementalx's original config file. The config file is found at /etc/electroactive.conf. You can edit this file to change kernel settings. Whatever is set in this file will take effect when the device is booted (unless other scripts or apps interfere).
If settings are not sticking:
Make sure you have busybox installed correctly and updated to the latest version
Make sure the file permissions for /sbin/electroactive.sh are set to execute.
Check to see if any scripts or apps are interfering with your settings.
To execute the script file:
Install Terminal Emulator from the Play Store if you haven't already and open it.
In the emulator type: "su" and press enter
Type: "cd sbin" and press enter
Type: "sh electroactive.sh" and press enter
The values should now be applied, with no need to reboot
As always, you can also edit the values using the Synapse app or reboot to apply.
fsync
fsync can be disabled if you're looking for the last ounce of performance. If you disable it however there is a slight risk of data loss if your phone shuts off unexpectedly before the filesystems are synced.
Max screen off frequency
The default max screen off frequency is 1190MHz, which is a good balance between limiting the voltage/frequency and the time required to complete tasks while the screen is off. This can be changed manually at /sys/devices/system/cpu/cpu0/cpufreq/screen_off_max_freq
NTFS and exFAT support
This is for anyone who wants to use OTG cable to connect a USB stick or portable hard-drive formatted with Microsoft's NTFS or exFAT filesystems. (Useful for installing and transporting files from your device) You will need Stickmount or a similar app
F2FS support
F2FS support is built into the kernel. No need to flash any other support patches before installing Electroactive.
Color preset
Some users complain that the Nexus 5 screen has too 'warm' colors, so there are two color presets: stock and slightly cooler. You can edit /etc/electroactive.conf to change the setting on boot.
/sys/module/mdss_dsi/parameters/color_preset
0 = stock color
1 = slightly cooler color
Sweep2wake (flar2)
Sweep2wake allows you to turn on your phone by swiping your finger across the screen. There are four sweep actions that will work
Gesture........Value
Sweep right......1
Sweep left........2
Sweep up.........4
Sweep down....8
Add up the values for each gesture you want to enable and put the total in /sys/android_touch/sweep2wake. For example, to enable all gestures, the value is 15 (1+2+4+8). To enable sweep right, sweep left and sweep up, the value is 7 (1+2+4)
/sys/android_touch/sweep2wake
Doubletap2wake
DoubleTap2Wake (DT2W) allows you to wake the device by double tapping anywhere on the screen. This causes significant battery drain, so you choose at your own choice if you want it enabled or not. You can edit /etc/electroactive.conf to change the setting on boot.
/sys/android_touch/doubletap2wake
0 = disabled
1 = enabled (bottom of screen only)
2 = enabled (full screen)
Sweep2Sleep
Sweep2Sleep allows you to put the device to sleep by sweeping your finger across the navigation bar area. You can choose different directions to swipe. Unlike Sweep2wake, this does not cause any battery drain. You can edit /etc/electroactive.conf to change the setting on boot.
/sys/android_touch/sweep2sleep
0 = disabled
1 = sweep right
2 = sweep left
3 = sweep left or right
Backlight dimmer
Backlight dimmer allows you to adjust the LCD screen brightness lower than is possible with stock. You can edit /etc/electroactive.conf to change the setting on boot.
/sys/module/lm3630_bl/parameters/backlight_dimmer
0 = disabled
1 = enabled
USB fast-charge
This will allow you to charge at a faster rate when connected to a USB port. The default limit for USB ports is 500ma, this increases it to 900ma. This only works on laptops/desktops/any computer but not the phone's charger. You can edit /etc/electroactive.conf to change the setting on boot.
MSM Thermal-X Driver Options
MSM Thermal-X will throttle your cpu speed to keep it cool and unleash it if the cpu has cooled down enough. The input-event boost will temporarily boost the cpu frequency to prevent any lag while not hogging up battery.
Check /sys/kernel/msm_thermal/conf/ for the thermal configuration
allowed_max_high = highest threshold (phase 3)
allowed_max_low = remove the throttling if we cooled down to this (clr_thrshold)
allowed_max_freq = max frequency if throttled (limit)
[...]mid[...] = same as above, just for phase 2
[...]low[...] = Lowest threshold (phase 1)
check_interval_ms = how often shall we check? (sampling rate)
shutdown_temp = if we reach this shut down the device!
MSM MP-Decision Hotplug Options
MP-Decision Enabled
Enables/Disables the hotplug. On disabled the backup cpu-control will be stock Qualcomm mp_decision
# 1 for enabled
# 0 for disabled
echo "1" > /sys/kernel/msm_mpdecision/conf/enabled
Touch Boost
Touch-boost will temporarily raise cpu_min to a frequency determined by an mp_decision algorithm.
# 1 for enabled
# 0 for disabled
echo "1" > /sys/kernel/msm_mpdecision/conf/boost_enabled
Idle Frequency
If the first core is below this frequency, then don't plug the other cores.
echo "300000" > /sys/kernel/msm_mpdecision/conf/idle_freq
EcoMode
Ecomode tries to limit cores to just 2 unless there is a very heavy workload in which cores 3 and 4 are temporarily brought online and won't kick on until both CPUs are maxed out then it will allow for all 4 cores to come temporarily online.
echo "99" > /sys/kernel/msm_mpdecision/conf/nwns_threshold_4
StrictMode
Strict mode functions so only 1 CPU tries to be online at first before bringing up cpu1 and cpu2 online.
echo "85" > /sys/kernel/msm_mpdecision/conf/nwns_threshold_2
echo "99" > /sys/kernel/msm_mpdecision/conf/nwns_threshold_4
Max CPUs online
Max cpus to be online, cannot be > 4. (if you set it to 2 and min_cpus to 1 you will basically have a dualcore).
echo "4" > /sys/kernel/msm_mpdecision/conf/max_cpus
Min CPUs online
Min cpus to be online, cannot be < 1.
echo "1" > /sys/kernel/msm_mpdecision/conf/min_cpus
Screen-off Single core
If the screen is off, don't plug in cpu1/2/3. Additionally: Unplug all cpus except cpu0 when screen is turned off.
echo "1" > /sys/kernel/msm_mpdecision/conf/scroff_single_core
Pause
If something else plugs in the cpu, i.e. CPU-Governor or Thermal, fall asleep for <#>ms.
echo "10000" > /sys/kernel/msm_mpdecision/conf/pause
StartDelay
Time until mpdecision starts to work.
echo "20000" > /sys/kernel/msm_mpdecision/conf/startdelay
Delay
Time between checks.
echo "130" > /sys/kernel/msm_mpdecision/conf/delay
Hot plug thresholds
This formula calculates which value will be used: (number_of_cpus_online - 1) * 2
The result of this formula will be the nwns_threshold where a new cpu is hotplugged.
The result of this formula + 1 will be the nwns_threshold where a cpu is unplugged.
nwns_threshold_x = runqueue threshold, if this is reached cpuX will be hot/unplugged
twts_threshold_x = time threshold, this amount of time must have passed for the related action to be taken (hot/unplug)
Example:
One cpu is online.
(1 - 1) * 2 = 0 ergo:
nwns_threshold_0 = cpu1 will be hotplugged at this value
((1 - 1) * 2) + 1 = 1
nwns_threshold_1 = cpu0 will be unplugged at this value
Since we can't unplug cpu0 this is '0'.
Two cpus are online.
(2 - 1) * 2 = 2 ergo:
nwns_threshold_2 = cpu2 will be hotplugged at this value
((2 - 1) * 2) + 1 = 3
nwns_threshold_3 = cpu1 will be unplugged at this value
echo "#" > /sys/kernel/msm_mpdecision/conf/nwns_threshold_X
echo "#" > /sys/kernel/msm_mpdecision/conf/twts_threshold_X
etc...
Some values are:
NwNs_Threshold: 12, 0, 25, 20, 32, 28, 0, 35
TwTs_Threshold: 140, 0, 140, 190, 140, 190, 0, 190
Where the position and function of the number equals the result of the above explained formula (all times are in ms).
INSTALLATION
If you come from another kernel, dirty-flash your ROM first without wiping any data
If you are an F2FS user, flash the F2FS support patch found below
Flash Electroactive kernel in recovery
Reboot
*F2FS users:
THIS KERNEL USES YOUR RAMDISK, it will just modify it on the fly while flashing. These changes are so to not create any incompatibilities with ROMs or other kernels. Some things to consider when using F2FS:
Use F2FS in only r/w partitions (/data and /cache).
F2FS in /system does not make any difference and requires selinux to be set to permissive, and Electroactive kernel is enforcing by default, although you can change this in the .config file found in /etc/electroactive.conf, but is still not recommended.
DOWNLOADS
Android M Preview/2
Electroactive-N5-3.10-M
Android 5.1/5.1.1
Electroactive-N5-2.50
Please consider a donation to support the Electroactive Kernel Project, and support for more devices.
Donors Hall of Fame
Send me a PM or email me if I didn't add you after you donated and I'll add you to the list
- danmaman
- Chirag7
- Zidane23
XDA:DevDB Information
Electroactive Kernel, Kernel for the Google Nexus 5
Contributors
Electrex
Source Code: https://github.com/Electrex/Electroactive-N5
Kernel Special Features:
Version Information
Status: Stable
Current Stable Version: 2.50/3.10
Stable Release Date: 2015-08-09
Current Beta Version: 2.52
Beta Release Date: 2015-09-27
Created 2015-04-10
Last Updated 2015-09-27
Changelog:
August 9, 2015 - Electroactive-N5-2.50/3.10-M
-MSM-Thermal-X input/output control, 3-phase, inputboost
-MSM MP-Decision Hotplug
-Electroactive CPU Governor Revision 2
-Set FIOPS default io scheduler
-Add Zen io scheduler
July 21, 2015 - Electroactive-N5-2.45/3.05-M
-MSM-Thermal-X
-KSM-Kernel Samepage Merging
-CPU Deferred-Timers
-Power Efficient Workqueues
-Cortex-A15 target architecture overhauls
-Merge Android M Prev2
-Linux 3.4.108
-Resolve some memory leak issues, more like a band-aid until Google gets their game up
-Fix performance regression in vfs
-push readahead value to 512 kb
-Back to ROW i/o scheduler w/change of params
-Revert PM-Suspend Freeze to prevent processes from running when device is idle.
-Add suspend_again mechanism to Partial Resume
-linaro-4.9.4 toolchain
-Remove android logger
-Use Android device as USB keyboard/mouse
June 29, 2015 - Electroactive-N5-2.40/3.00-M
-CPU Power Aware Scheduling
-Partial-Resume Framework
-Merged android M sources
-Fix cpu sticking issue
-Introduce PM Suspend Freeze
-Remove compiler warnings to prevent any issues in installation
-Re-add fsync control
-Add GPU sysfs reporting in pwrctrl
-Add 8974 support for enabling GPU GDHS
-Use new global screen-off detection variable
-Electroactive cpu governor: Introduce powersave-bias
-Greatly improve memory access performance
-Skip sensor_ind wakeup source activation via sysfs to prevent wakelocks
June 2, 2015 - Electroactive-N5-2.10
-Major Update. Getting close to second major release.
-More chrome fixes, should be almost completely gone. General UI speed-up and smoothness optimizations.
-Memory leak issue fixes, a bit better memory efficiency.
-Fix issues with any previously installed kernel files not being removed/reappearing after installation.
-Battery life issues with wake-locks and screen power consumption are fixed, GPU and CPU drivers updated.
-2 different versions of kernel: TC-DEF and TC-TEST. Only differences are the compiler toolchains and GCC. Try both and report which is better. TC-DEF uses the default old style build compiler and TC-TEST uses the new test compiler.
-Update advanced color control
-Kernel sources updated back to 3.4.107 from 3.4.0, some backports from Linux 3.18+ kernel sources.
-F2FS Support Built-In to ramdisk. No need to flash any F2FS support patch before installing kernel.
-More focus on optimization.
May 19, 2015 - Electroactive-N5-2.00
-Kernel Rebased
-Removed unneeded/unwanted commits and left all the good stuff in new base
-Add deeper incremental overclocking up to 2.95 GHz. Still boots at stock frequency
-Min CPU frequency down to 96 MHz, options for 192 and 249 MHz. Still boots at stock frequency
-Built with -O3 CFLAGS Makefile variables for extreme optimization
-Add MultiROM support
-exFAT support built-in to kernel rather than a module
-Add some speed and stability updates
-Add additional thermal driver settings
May 14, 2015 - Electroactive-N5-1.56
-Add sanity check to avoid unregistering the driver twice (therefore preventing kernel panic)
-Add optimized SHA-256/224
-Update kernel sources to linux 3.4.107
-Move VFP init to an earlier boot stage
-CAF sound codec driver
-Fix voltage tables and scripts
-Specifically modified PVS voltage tables per each unique device. Stock voltages now set
differently depending on your CPU binning.
-Update msm-kernel sources to android-5.1.1_r0.10
-Update Documentation & arch to 3.4.104
-Fix SMD packet sync loss issue
-lmk tune up
-Fix kernel script errors
-Chrome freeze issues gone
-Overclocking up to 2.9 GHz (experimental)
-Min CPU frequency down to 96 MHz
-Can have different frequencies for each CPU core
-Ramdisk updated to be more compatible and better performance on more ROMs
-FSTRIM now built-in: trims /data and /cache to discard any unused data blocks on boot, no more lag (only f2fs)
April 30, 2015 - Electroactive-N5-1.47
-optimize memory allocation in check_partition()
-Fix changes not applying on boot
-Add electroactive.sh script support
-Thermal throttling set to Cooler by default for less heat
April 25, 2015 - Electroactive-N5-1.45
-Add Optimax governor and Electrodemand
-NEW GOVERNOR: Electroactive (Hybrid: Interactive + Ondemand) with two-phase frequency and over 20 tunables
-Fix kernel, governor, and cpu tables. More .config functionality
-Stability improvements
-Synapse integration built-in
April 17, 2015 - Electroactive-N5-1.40
-More options in the .config file. Customize ALL hotplug settings
-Fix hotplug compatibility issues
-Update clock vote for improved performance
-Removed some unneeded governors
-Stability improvements
-First major release
April 11, 2015 - Electroactive-N5-1.35
-Add new improved default hotplug: Intelli_Plug, (much more added features and functionality)
-Update kernel sources to 3.4.106 from Kernel.org
-O3 graphite and -pthread optimizations/improvements
-LZ4 compression for much faster boot times
April 9, 2015 - Electroactive-N5-1.30
-Initial release
-Use UBERTC Compiler for kernel
-Add fixed PCI i/o mapping
Just hit the thanks button, he doesn't bite your finger. Try it.
Thanks!
Feature Requests
If anyone wants any feature requests, please post them in the feature requests tab at the top of the page. I will try my best to add the most features that I can without sacrificing stability or performance.
Seems stable und fast so far, pretty good work ... A few governors for my taste to much, but the default one is a beast
Bricked Cataclysm
---------- Post added at 09:39 PM ---------- Previous post was at 09:37 PM ----------
I really like ElementalX as a base
Bricked Cataclysm
Notechis said:
Seems stable und fast so far, pretty good work ... A few governors for my taste to much, but the default one is a beast
Bricked Cataclysm
Click to expand...
Click to collapse
Thanks,
If you have any features you want me to add to my kernel them feel free to ask.
Everything is fine, unleashed kernel uses alucard hotplug, this would be an unique feature
Bricked Cataclysm
Notechis said:
Everything is fine, unleashed kernel uses alucard hotplug, this would be an unique feature
Bricked Cataclysm
Click to expand...
Click to collapse
Uses Intelli_Plug much more tunables and configurations
Electrex said:
For now I am using the msm_sleeper hotplug. In the future there should be a new one.
Click to expand...
Click to collapse
Good to know that msm_sleeper is a hotplug... I think u missing the all thing.
Hi Electrex,
1st thanks for your awesome work!
2nd your kernel is ukm compatible? (or trickster or elementalx app?)
Tia!
Trickster works fine but due to the config file you did not need such apps
Bricked Cataclysm
idkidk said:
Hi Electrex,
1st thanks for your awesome work!
2nd your kernel is ukm compatible? (or trickster or elementalx app?)
Tia!
Click to expand...
Click to collapse
Yes, in the description, I posted all of the compatible kernel managers. I'll put them here too, as my OP is a bit cluttered:
Compatible with ElementalX Kernel app, TricksterMOD, Device Control, Kernel Tweaker, Franco Display Control, FauxSound Control, and Synapse Kernel manager.
You can also edit the .config file in /etc folder without an app to change kernel settings.
Electrex said:
Yes, in the description, I posted all of the compatible kernel managers. I'll put them here too, as my OP is a bit cluttered:
Compatible with ElementalX Kernel app, TricksterMOD, Device Control, Kernel Tweaker, Franco Display Control, FauxSound Control, and Synapse Kernel manager
Click to expand...
Click to collapse
My apologies. I see, thanks!
Kudos!
Hello,
This is a really nice piece of work, the responsiveness is excellent and battery life is great! Using stock settings. Has all the features i need.
Thank you for sharing your work with us!
Ok so does it work on cm 12 based roms? Blisspop and all?
i'm using "Semaphore Manager" is that okay??
maybe i'm missing on features.
kingserpent said:
Ok so does it work on cm 12 based roms? Blisspop and all?
Click to expand...
Click to collapse
Yes, it works on any 5.1 Lollipop ROM and ONLY 5.1 lollipop versions. Do not use this build for earlier versions of lollipop.
Your kernel is blazing fast and rock solid the last days. Cool project
Bricked Cataclysm
I agree. Great work!

Categories

Resources