Introducing XDA:DevCon – A Conference For Developers By Developers
XDA Developers Android and Mobile Development Forum
Forgot your password?
View Poll Results: Would you like to see the "Hyper" governor added to the kernel?
Yes 37 48.68%
No 18 23.68%
Don't know 21 27.63%
Voters: 76. You may not vote on this poll

 
Post Reply+
Tip us?
 
boype
Old
(Last edited by boype; Today at 05:28 PM.)
#1  
boype's Avatar
Senior Member - OP
Thanks Meter 2097
Posts: 484
Join Date: Apr 2012
Location: Flensburg

 
DONATE TO ME
Arrow [KERNEL] Fancy Kernel (r26) (MAY-17-2013) [Android 4.2.x] [Linux 3.0.78]



"German engineering, so good that it's not even funny." [/pathetic advertising slogan]


Hello and welcome to fancy kernel. This kernel has been built with the following three main goals: good battery life, reliability and a smooth and snappy user experience.


Feature list:

Standard version features
  • Based upon:
    • latest CM10.1 kernel source
    • continuously updated Linux version (3.0.78)
    • selected patches from the device's chipset vendor Texas Instruments
  • CPU:
    • CPU frequencies: 192, 384, 537, 806, 1036, 1228, 1420 MHz (default on boot: 192 - 1228)
    • control to set a minimum CPU frequency for screen-on (default: 384 MHz)
      • Will help with smoothness and responsiveness when you use the phone. When screen is off, however, 192 MHz frequency is used as well.
    • CPU governors: ondemandplus (default; more info), hyper, dyninteractive, interactive, ondemand, powersave, performance
      • ondemandplus is an ondemand- and interactive-based governor that has additional power-saving capabilities while maintaining very snappy performance.
    • ARM CPU topology: multi-core scheduling (enabled by default; saves battery by scheduling load among the CPU cores; more info)
  • GPU & Display:
    • GPU frequency control: 307, 384 (default), 512 MHz
    • simple GPU governor
    • color, contrast and gamma contols
    • content adaptive brightness off by default, sane and natural looking color settings
  • I/O & memory:
    • I/O schedulers: SIOplus (default), deadline, noop, row, bfqv6
    • updated HSMMC driver (high speed multimedia card; the phone's 'hard drive bus controller' if you will)
    • optimized ext4 mountings
    • 'discard' mount option ('trimming') for /system, /data and /cache (more info)
  • Network:
    • TCP congestion control algorithms: westwood (default), cubic, reno
    • updated WLAN driver
  • Misc:
    • vibration strength control
    • battery life extender (BLX)
    • fast charge
    • PGM support
    • various performance and battery life tweaks
    • init.d support (no matter if the ROM supports it or not)
    • elevated systemui priority
  • kernel updater script in terminal ('FUSS' by gwindlord)
  • more things... go check the source if you're interested.
  • compiled with GCC 4.7 (Google Android NDK r8e toolchain)

Extended version additional features
  • sound control (high performance sound, volume boost; not enabled by default)
  • custom voltage control
  • fsync toggle
  • zRAM


Download links:

Note: The first boot can take several minutes! This is because your whole file system is trimmed and depends on how 'jammed' it actually is. I know it takes long, but it is worth the wait. Your phone has not crashed!

Standard version
  • md5sum: 1df9241b1db00169d037c2bd0daeafe9


Extended version
  • md5sum: ca609a409da544603a77dc0ffb240a3a


Old versions

Test versions
  • latest test version: tst-r26-05-ext
    • focus: fix data drops for toro



Notes:
  • Compatible to:
    • all Galaxy Nexus devices (maguro, toro, toroplus)
    • all Android 4.2.x ROMs
  • Installation:
    • Simply flash the provided zip file with TWRP or CWM. You can also extract the boot.img and then flash that file with fastboot. cache and dalvik-cache wipes are recommended.
    • Alternatively, you can update the kernel or change from standard to extended version (or vice versa) via the 'fuss' command from a terminal. Simply open a terminal, type 'su' and hit enter, then type 'fuss' and hit enter (do not type the quotes). Thanks to this method, there is no need to manually download the kernel and boot into recovery anymore.
  • Problems:
    • Do not report any potential bugs without doing cache and dalvik-cache wipes first.
    • If you have permission problems with the /sdcard/fuss folder (e.g. cannot delete the folder or write files to it), you need to flash this fix from CWM / TWRP.
  • Most settings can be controlled with kernel settings apps. Trickster MOD fully supports fancy kernel. With it you can control:
    • CPU min frequency
    • CPU max frequency
    • CPU max screen-off frequency
    • CPU min screen-on frequency
    • GPU frequency
    • CPU governor
    • CPU governor tunables
    • GPU governor
    • I/O scheduler
    • read-ahead buffer
    • TCP congestion algorithm
    • CPU multi-core scheduling
    • zRAM
    • fast charge
    • sound control
    • battery life extender
    • fsync
    • vibration strength
    • custom voltage
    • color, contrast, gamma, content-adaptive brightness


Changelog:

Code:
r25 >> r26
- removed async read starvation feature from sioplus (debugging showed it is not necessary)
- reverted several changes that caused worse performance than r24 (e.g., systemui priority is back to -20, sched_mc_power_saving is back to 2, readahead is back to 256)
- increased CPU transition latency to 30000 (was 20000, this aims to fix CPU stangenesses as SODs and jerky 1.4 GHz)
- nomerges back to 0 (thanks osm0sis)

r24 >> r25
- introducing SIOplus i/o scheduler (modifications: functionality for specifying the starvation of async reads against sync reads; starved write requests counter only counts when there actually are write requests in the queue; fixed a bug)
- swapped the 729 MHz CPU OPP with an 806 MHz OPP (someone told me ~810 MHz was a 'sweet spot' for responsiveness)
- updated to Linux 3.0.78
- set sched_mc_power_savings = 1 to get rid of microlags
- scheduler system fine tuning
- use dirty_bytes instead of dirty_ratio
- increased read_ahead_kb to 384 (good intermediate setting between the sometimes more snappy 512 and the sometimes more responsive 256?)
- nr_requests down to 160 (anything above causes slight stutter)
- renice systemui process to -17 instead of -20 (-20 should only be given to very critical processes)
- added lowmemorykiller launcher whitelist (makes the launcher 'unkillable'; thanks to osm0sis)

r23 >> r24
- elevated systemui process priority (smoother UI)
- trim filesystem on first boot after wiping cache and dalvik-cache (first boot takes a little longer due to this, but it pays off)
- re-enabled ro.adb.secure (all it needs is the updated adb version from the Android SDK)

r22 >> r23
- replaced busybox in ramdisk with a binary file that works as a standalone version (fixed all the fukkups ppl experienced in r22)
- fixed std version reporting itself as ext version
- hardcoded color settings again (ppl reported weird colors)
- disabled ro.adb.secure (adb wasn't working; this was recently added to the CM ramdisk)
- everything should be fixed on any ROM. Sorry for the trouble :(

r21 >> r22
- updated to Linux 3.0.77
- backported staging driver (including lowmemorykiller) from 3.4 kernel (introducing superior memory handling in my opinion)
- added Hyper CPU governor
- several scheduler tweaks
- read_ahead_kb down to 256 (this may appear very low, but it is still twice as high as the stock setting and improves responsiveness imo) 
- several block and file system tweaks (thanks to Franco dev team)
- fixed dirty_ratio behavior that was increasingly filling up the RAM with 'garbage' (thus slowing down the phone)
- revert attempt to fix Wifi disconnects (was apparently responsible for some idle battery drain)
- fix deadline and SIO read / write expiring (caused lags and jerky UI sometimes)
- increased voltage for 1.4 GHz CPU OPP by 0.02V (someone reported a laggy phone with 1.4 GHz, probably caused by too little voltage)
- SDRAM power management fix from TI repo
- bcmdhd: workaround broken AC video queue in IBSS mode (from CM10.1 upstream)
- pulled-in latest updates from CM10.1 ramdisk
- added automatic APK zip-alignment on boot
- moved many previously hardcoded settings to ramdisk init script
- init.d support is now independent of the ROM having busybox included or not (thanks to osm0sis)

r20 >> r21
- updated to Linux 3.0.76
- relaxed overtweaked SIO (smoother again, but still snappy)
- removed graphics memory related commit that most likely caused slowdowns
- fixed fsync not showing up in the ext version
- added random MAC id bugfix by imoseyon (someone had problems and requested it)
- added init.d execution to RAMDISK (still need busybox included in the ROM)
- added two block tweaks
- moved fuss from zip package to ramdisk
- moved powerHAL fix from zip package to ramdisk (thanks to osm0sis)

r19 >> r20
- updated HSMMC driver from TI repo (noticable loading times improvement if you ask me)
- tweaked SIO to squeeze the most out of the new HSMMC driver
- fixed custom voltage not playing along with smartreflex enabled
- fixed a common bug with custom voltage, where some voltage corridors were not applicable
- wireless: lowered DTIM skipping in when device is asleep (hoping to get rid of Wifi disconnects)
- bye bye pegasusq governor
- three other fixes from TI repo

r18 >> r19
- reverted from SLQB memory allocator to SLUB (fixes PGM issues)
- Add assembler versions of AES and SHA1 for ARM platforms (better encryption performance with webpages)
- 3 minor fixes from ARM and TI

r17 >> r18
- updated Linux to version 3.0.75
- added and enabled SLQB memory allocator
- reverted the 10 percent brightness decrease (was just too dark outside)
- reverted the still present slight CPU undervolt (was too low, could cause some micro lags)
- improved automatic /cache trimming
- added power.tuna.so to flashable zip package (fixes the issue with resetting CPU frequency)
- fixed slightly inaccurate pixel clock setting
- pulled-in another 2 OMAPDSS patches from omapzoom repo
- some memory handling tweaks
- updated Broadcom WLAN driver (not the backport one other devs use)
- decrease the amount of time the device waits after entering low power mode to freeze processes (by franco)
- removed nodiratime mount option
- probably solved the low-brightness on wake-up problem (not entirely sure; please report)

r16 >> r17
- fixed screen-flicker problem
- a few other minor things

r15 >> r16
- updated Linux to version 3.0.74
- increased voltages for lower frequencies again since some users reported freezes
- min_free_kbytes to 8192 since the UI could get choppy after one or two days
- pulled in two more things from the TI omapzoom repo (DSS optimization; retention voltage spec update)

r14 >> r15
- updated Linux to version 3.0.73
- pulled in a few patches from TI's omapzoom repo (save a little battery; make the UI smoother)
- Tweaked smartreflex for less voltage for lower CPU frequencies (will save a little battery)
- various memory and scheduler optimizations
- bcmdhd: Enable Ad-Hoc (IBSS) mode (from CM 10.1 upstream)

r13 >> r14
- updated Linux to version 3.0.72
- a number of small tweaks
- lowered screen brightness by 10% to save battery

r12 >> r13
- updated Linux to version 3.0.71
- updated build toolchain to latest GCC 4.7 from Android NDK r8e

r11 >> r12
- added and enabled simple GPU governor (by faux123; will save some battery by not only using GPU min & max freqs, but also the 307 MHz intermediate step; controls available from within Trickster MOD)
- tweaked deadline i/o scheduler for flash memory devices and set it as default (deadline gives a better and more consistent performance imo)
- reverted kernel sync options (didn't seem to make it all that much smoother at all)
- completely removed OMAP 4460 CORE/IVA voltage dependencies (graphics and IVA units' voltage is completely independent from CPU now) 
- decreased CPU transition latency to 15ms
- decreased readahead kbytes again, down to 768 now
- some more tweaks under the hood (check sources if you're interested)
- Extended version only: added Google's 'snappy (de)compression' algorithm for fast zRAM handling
- Extended version only: added zRAM support (can be enabled via Trickster MOD)

r10 >> r11
- updated Linux version to 3.0.70
- tweaked ondemandplus for more smoothness and modified downscaling logic a bit
- added custom lowmemorykiller values for better multitasking
- reduced readahead kbytes to 896 (snappier feeling but same i/o performance)
- enabled sync options in kernel config
- moved fuss / reflash to /data/fuss so they won't mess up the /sdcard/fuss folder's permissions. Also created symlinks for fuss and reflash (all you need to type in terminal is 'fuss' or 'reflash')  

r9 >> r10
- updated Linux version to 3.0.69
- removed automatic /cache trimming and activated 'discard' mount option instead (this will do it on all partitions in realtime)
- reverted previous commit: 'tightened vfs cache pressure a bit' (caused more battery drain?)
- optimized build with architecture specific CPU/FPU build flags
- tweaked sched_fair values (wanted to do this for a long time)
- if both fancy kernel and fuss updater script are not available anymore (e.g. after flashing a new ROM), you can now re-flash the kernel via terminal. type: '/sdcard/fuss/reflash' (no quotes, need to do a 'su' before; thanks to gwindlord)

r8 >> r9
- updated Linux version to 3.0.68
- changed toolchain to GCC 4.7 (provided by Google in the Android NDK)
- automatically trim /cache partition when the screen is switched off
- tightened vfs cache pressure a bit

r7 >> r8
- updated Linux version to 3.0.67
- reverted a commit (CPU-based alignment) to fix lag issues reported by some users
- increased system tickrate to 256 Hz for a more responsive UI
- removed color multiplier safety lock (values > 200 are now possible on boot)
- relaxed ondemandplus tunables a bit to eliminate signs of choppiness
- tweaked SIO write starvation (again) to eliminate signs of choppiness
- added FUSS kernel updater script (by gwindlord) to the flashable

r6 >> r7
- updated Linux version to 3.0.66
- made the same kernel file working for both 4.2.1 and 4.2.2 ROMs (credits go to imoseyon)
- added recent cm10.1 upstream changes
- ondemandplus: added some safety-locks for tunable values that don't make sense

Rel. #5 >> r6
- updated gpu: pvr to DDK 1.8@2198402 to support Android 4.2.2
- updated ARM CPU topology to latest version
- updated kernel to Linux version 3.0.63
- updated BFQ I/O scheduler to version 6
- updated interactive governor to latest version
- simplified ondemandplus code and made tunables easier to understand
- enabled NTFS support for USB-OTG (upstream change from CM10.1)
- a few more things and updates... check the sources if you're interested.

Rel. #4 >> Rel. #5
- fixed 1080p video issues
- completely rebased ondemandplus governor. The ondemandplus scaling routine is now embedded in the much better interactive governor framework, which effectively reduces lag and any remaining governor-related instabilities.
- updated RAMDISK with a recent CM10.1 upstream change

Rel. #3 >> Rel. #4
- introducing 'ondemandplus' governor and set is as default. ondemandplus is based on ondemand. I enhanced it with an advanced powersave_bias functionality, additional suspend-code and extra suspend-scaling handling. This governor is snappy as ondemand, but will potentially save more battery. 
- added SIO (simple i/o) scheduler and set it default. It just feels snappier than noop.
- updated kernel to version 3.0.62
- increased voltages for 729 and 1036 MHz very slightly. In case hotplugging was not the only cause for random freezes, this may further help stability.
- enabled CPU-frequency-independent and IVA-frequency-independent GPU voltage scaling to save battery. Previously, CORE voltage was automatically increased along with CPU and IVA frequencies due to voltage-dependence-tables, even though CORE clock stayed the same.
- fixed OMAP4460 initializing with max IVA frequency. I consider this a common bug which caused unneccessary battery drain from the time period from boot to first use of IVA.
- tweaked dirty_writeback/expire intervals to counter reported lag
- disabled interactivex governor, since its hotplugging-mechanism causes freezes. Even though pegasusq hotplugs as well, that governor remains as an experimental option.
- removed some more debug stuff
- some minor cleanup

Rel. #2 >> Rel. #3
- introducing two different versions: 'Standard' and 'Extended'. Extended is almost exactly like Standard, with the following three additional features: custom voltage control, fsync control, and sound control (high performance sound and volume boost)
- added custom voltage to Extendend version
- removed sound control from Standard version
- removed fsync control form Standard version
- defaulted BLX to 100 again (users should decide whether they want use it or not)
- announcement: The kernel is now where I wanted it. From now on, only kernel upstream patches and breakthrough developments will be considered for future releases. This will not be a kernel where no bit is left un-modded.

Rel. #1 >> Rel. #2
- added Ezekeel sound control (high performance sound, volume boost; controllable through Trickster MOD)
- added ARM CPU topology and enabled it by default (saves battery by scheduling load among the CPU cores in multi-core devices)
- applied some patches to pegasusq governor 
- updated kernel to version 3.0.61
- a few minor tweaks 'under the hood' (check the source if interested)

Chit-chat:
  • Why did I name it 'fancy kernel' and why is the logo so ugly?
    • Because I do not want to use some random fancy name, but somehow have to give the kernel a name that is easily remembered. So after some self-irony involvement, I picked this name and made a ****ty logo :>
  • What is so special about this kernel?
    • It offers superb battery life with a smooth and stable user experience. I am aware that all kernels claim that. Just try, see for yourself and report back. I for myself get mostly 4 1/2 to 6 minutes screen-on time per percent when reading web articles. What is really unique about this kernel is the screen-on min frequency setting, the ondemandplus governor and the SIOplus scheduler, since I implemented them myself. Also, I wanted many other improvements that exist across the several great kernels around XDA. After all, this kernel is based on other people's work for like 95 percent (like most kernels are).
  • Why did I build this Kernel initially?
    • Well that's rather easily answered. I used to use Franco kernel (which I really liked), but I wanted a kernel for myself which fits exactly to my needs. In particular, I especially wanted working hotplug, GPU OC controls, the option to set a minimum screen-on frequency and several hardcoded settings.
      Oh, and yes: I built the kernel because I had fun doing so. But be not mistaken that I am a 'playaround kid': I dislike pulling in every little mod someone made. What I want is stability.
      After some time I realized hotplugging would not be stable. After that I wrote the ondemandplus governor to save battery.
  • Why did I release it if I built it for myself?
    • I did not plan to release it at first. But I decided to release it since there was this one new feature (as named before: the screen-on min frequency control). I thought 'maybe it can contribute to others as well.' Also, maybe people like my compilation. Sharing is caring :>
  • Announcement:
    • The thread now has more than 100.000 hits! This is awesome, thank you for your interest!




Credits: Cyanogenmod, Google, kernel.org, Texas Instruments
anarkia1976, edoko, Ezekeel, faux123, franciscofranco, gokhanmoral, gwindlord, Huexxx, imoseyon, osm0sis, TeamHorizon



Source (including defconfig and RAMDISK): https://github.com/boype/kernel_tuna_jb42


A shout-out to the donators who help me pay the file hosting: 1haumann1, agritux, Ferhat Uğur CAN, James Ferrell, okanb3

Has my work improved your user experience? Hit 'thanks', rate this thread with 5 stars and consider a small donation.



Please do not PM me with questions, post in the thread instead.
The Following 145 Users Say Thank You to boype For This Useful Post: [ Click to Expand ]
 
-Jesco-
Old
#2  
Senior Member
Thanks Meter 651
Posts: 1,047
Join Date: Jun 2012
downloading now , will share results in a few charges !


Phone : Galaxy Nexus
Android : 4.2.2 [Jellybean]
Rom : AOSPA-L 3.50 16th May
Kernel : Ak Kernel SKL 207
The Following 3 Users Say Thank You to -Jesco- For This Useful Post: [ Click to Expand ]
 
GeekMcLeod
Old
#3  
Senior Member
Thanks Meter 515
Posts: 804
Join Date: Apr 2012
Location: Moose Jaw

 
DONATE TO ME
I usually stick with a couple certain kernels, because every time I try one outside of my 'safe' kernels, they don't play nice with my device.

I've decided to give this kernel a chance, mainly because it's new and I have the day off to test it out.
The Following User Says Thank You to GeekMcLeod For This Useful Post: [ Click to Expand ]
 
dratif
Old
#4  
dratif's Avatar
Senior Member
Thanks Meter 169
Posts: 418
Join Date: May 2012
Location: islamabad
Default Re: [KERNEL][4.2] Fancy Kernel (Rel. #1) (JAN-24-2013)

Who knowz m not becoming a part of a great thread in the future..lets try this out

Sent from my Galaxy Nexus using xda premium
 
agritux
Old
#5  
agritux's Avatar
Senior Member
Thanks Meter 337
Posts: 1,163
Join Date: Apr 2012
Location: Ankara
Trying this kernel for 2 days.
I can say, wonderful work.
Thanks boype!
 
GeekMcLeod
Old
#6  
Senior Member
Thanks Meter 515
Posts: 804
Join Date: Apr 2012
Location: Moose Jaw

 
DONATE TO ME
Running it now at 192/1420 with 537 as max screen off. Pegasusq and bfq. GPU = 384 and SR remains on.

Can't tell how battery life is, as I just installed it. Charging phone back to 100 right now.
It is very smooth and responsive from what I've done so far though. Going to keep with this kernel for a couple days, see how it compares to my fall back, LeanKernel + Tweaks. So far, so good though.
The Following User Says Thank You to GeekMcLeod For This Useful Post: [ Click to Expand ]
 
pageniao
Old
#7  
pageniao's Avatar
Senior Member
Thanks Meter 81
Posts: 136
Join Date: Nov 2011
Location: wuzhou

 
DONATE TO ME
Default Re: [KERNEL][4.2] Fancy Kernel (Rel. #1) (JAN-24-2013)

anybody test NFS17 game on this kernel?
 
thebogy
Old
#8  
thebogy's Avatar
Member
Thanks Meter 5
Posts: 65
Join Date: Sep 2010
Location: bandung
Default Re: [KERNEL][4.2] Fancy Kernel (Rel. #1) (JAN-24-2013)

Wow, sound great
So, Can i flash it over stock 4.2.1 ?
 
GeekMcLeod
Old
#9  
Senior Member
Thanks Meter 515
Posts: 804
Join Date: Apr 2012
Location: Moose Jaw

 
DONATE TO ME
Quote:
Originally Posted by thebogy View Post
Wow, sound great
So, Can i flash it over stock 4.2.1 ?
As long as you are rooted, I don't see why you wouldn't be able to. I'm pretty sure being rooted is all you need to flash a kernel.
The Following User Says Thank You to GeekMcLeod For This Useful Post: [ Click to Expand ]
 
pageniao
Old
#10  
pageniao's Avatar
Senior Member
Thanks Meter 81
Posts: 136
Join Date: Nov 2011
Location: wuzhou

 
DONATE TO ME
Default Re: [KERNEL][4.2] Fancy Kernel (Rel. #1) (JAN-24-2013)

great kernel !
keep it:thumbup:

Sent from my Galaxy Nexus using xda premium

 
Post Reply+
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

report this ad
Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Go to top of page...