Attend XDA's Second Annual Developer Conference, XDA:DevCon 2014!
5,730,490 Members 40,980 Now Online
XDA Developers Android and Mobile Development Forum

[KERNEL][GPL][8 DEC] franco.Kernel | BLX | DEEP IDLE | LIVEOC

Tip us?
 
franciscofranco
Old
(Last edited by franciscofranco; 8th December 2011 at 12:44 AM.)
#1  
franciscofranco's Avatar
Recognized Developer - OP
Thanks Meter 85334
Posts: 15,300
Join Date: Dec 2010
Location: Mountain View, CA

 
DONATE TO ME
Default [KERNEL][GPL][8 DEC] franco.Kernel | BLX | DEEP IDLE | LIVEOC

I've written many new kernel threads, so I'll just try to make this one simple, easy and light to read.

So, let me give you a little background on me: most of you don't know me as I only bought this device few days ago, but I'm a kernel dev for two other phones, the LG P500 and the Ideos X5. Worked on both .32 and .35 trees and my works became very popular, which can be seen by following the links in my signature - specially in the P500 community.

There are plenty of kernels to choose already, so why release another one? Simply because what I have to offer none of the other kernels had. What do I bring? Performance. How do I achieve that? Check the changelog and you'll understand...but not yet, lemme finish!

I have to say this: this kernel is based on KalimochoAz sources, so every changes up to his last pushed sources it's his job, so credits to him, I take no credit from his job.

I didn't start this kernel project for recognition or anything like that, I just want to share what I did for myself, maybe someone will find it useful

So let's get started, below you'll see what I changed on top of KalimochoAz source:

8th December
* Deep_idle code deleted, and re-added. Everything is exactly as Ezekeel has in his kernel, this might, or might not help with the data loss and whatever. If you still have problems please consider disabling deep_idle and see if it helps
* Deep_idle is off by default - changeable with NStools
* Calibrate.c reverted back to the .35 implementation
* Updated CRC32 library to the latest implementation directly from its creator
* Fsync disabling code deleted and re-implemented with a different implementation

4th December
Too many changes, so I'll be just brief and simple:
* CFS autogroup tweaks
* CFS optimizations
* Readahead values automatically calculated by the kernel for the optimal performance
* Several optimizations to lib files
* Added dm-cache (http://visa.cs.fiu.edu/ming/dmcache/)
* More stability
* Much more...

25 November
* Fsyncs disabled - more IO speed, more battery (less IO operations)
* Compiled with the optimized Mjolnir toolchain
* Added 1,2ghz step
* New default colors for the SAMOLED screens
* Cgroup: speed up access to cgroupfs mounted entries in /proc/mounts
* One or two more minor tweaks and optimizations

23 November
* No more BFS code and BFS builds. I want to make sure this is stable enough. If you want BFS compile it yourself. I hope this fixes the data/gsm drops
* Minfree settings unlocked forever
* Readahead value bumped to 1024
* BLN/touchwake fix

17 November
* Patched up to the latest deep_idle version from Ezekeel
* SAMOLED colors tweaked, should be a lot better now
* Few stability updates and reverts to ensure everything is up and running without issues
* Interactive governor added again
* Interactive patched up with around 10/15 patches
* Minor tweaks and optimizations

13 November
* Based on the latest testing builds, which includes:
* Some defconfig options change for a more leaner kernel
* Delete two cflags to ensure maximum Hummingbird performance
* Internal sdcard remount bug fixed
* Minfree settings unlocked by users demand
* Deep_idle implementation changed (it's the same that I used in the last testing version)
* Added latest deep_idle patch that when the phone vibrates it uses the TOP=ON idle state
* Removed obsolete screen dimmer
* Updated BLN to latest v9
* Lazy governor changes based on morfics lazy changes
* Remove Big Kernel Lock tracing
* Some stability patches from the kernel mainline

8 November
* PMEM disabled as herring doesn't use it - this way we recover 12,5mb ram
* Ext4 mounted with special flags directly on the kernel source - more performance without needing init.d scripts
* Writeback settings now working correctly and are not overwritten by the ramdisk
* Minfree settings are now correctly set and are not overwritten by the ramdisk

6 November
* Latest deep_idle bugfix from Ezekeel
* Added Ezekeel's custom_voltage mod. For more info about it visit the respective thread. Yes it's compatible with SetCPU, maybe with Proton too, I didn't test it
* Added back BLD, touch wake and screen dimmer
* Improved CRC32 algorithm - it's used for many kernel functions
* CFS version: Cgroups: introduce timer slack subsystem - Provides a way of tasks grouping by timer slack value. This functionality is useful in mobile devices where certain background apps are attached to a cgroup and minimum wakeups are desired

3 November
* Latest deep idle bugfix from Ezekeel
* Offering two separated downloads, one CFS and another BFS. Don't ask me which one is better, try it and see, I'll be really mad if I get questions like that
* Idle_stats show 0 in every field - don't worry about that, it happens because of my cpu_idle 3.1 backport, but I assure you deep idle is working. Again I'm not answering questions like "WHY IS IDLE STATS 0?!?!? HALP PLZ".
* 'screenoff_maxfreq' is disabled by default. If you want that behavior write this in the terminal: echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/lazy/screenoff_maxfreq

2 November
* Newest deep idle bugfix from Ezekeel
* Reverted back to CFS because stock users had mounting problems with the sdcard and some users had data/wifi drops and I don't want that

1 November
* First and entirely BFS kernel with the newest 0.413 version
* Optimized the tunable BFS parameters for extra interactivity and smoothness
* More debugging disabled - I'm pretty sure 99% of the debugging flags are now disabled
* All the latest bugfixes and implementations from Ezekeel, including live_oc up to 150, lazy maxfrequency_screenoff enabled by default and all the other small fixes to ensure maximum stability
* Small changes to the lowmemorykiller
* Added optimized RWSEM algorithm
* Added some minor improvements and tweaks
* Sorry devs that wanted logcat, it's still a module because I suspect I'll have to update this build again with some extra fixes from Ezekeel in a very near future thus not making much sense to release two kernels now, one with logcat on and other with it off because that takes time to compile. If you desperatly need logcat go to my .config and change CONFIG_ANDROID_LOGGER=m to CONFIG_ANDROID_LOGGER=y and recompile it

27 October
* Latest deep idle and live oc bugfix from Ezekeel - should fix that extra battery drain reported by some users
* Changed lowmemorykiller.c - minfree settings already incorporated in the file. Settings kanged from morfic's tweak file, thanks
* Add cleancache - driver to cache clean pages
* Fixed ext4 disk write performance regression
* Small power management fix to back off suspend if repeated attempts fail - avoid continually trying to suspend in situations in which a driver is repeatedly rejecting suspend or a pending wakeup interrupt is not handled, burning CPU in the continuous suspend attempts
* Lib file added for the users where BLN didn't work
* Logcat module added inside /system/modules. If you want to use logcat just load the module with insmod

24 October
* BLX added again by default and patched up to the latest fix from Ezekeel
* Deep idle patched up to the latest fix from Ezekeel
* Live OC added and patched up to the latest fix from Ezekeel. To overclock you need to do this in the terminal or in an init.d file: echo 110 > /sys/class/misc/liveoc/oc_value. The 110 value means that both cpu frequency and bus frequency will be increased by 10%. You can increase this value as much as you want, as long as you increase the voltages otherwise the device won't handle it, but that's obvious.
* Changed dirty_writeback values from morfic to increase smoothness
* Overclock frequencies removed. The device is fast enough with 1000,800,400,200 and 100 frequencies. If you want to overclock use Live OC, it's enough to make it fly
* Conservative governor tweaked - smooth as butter
* Removed a ton of debugging ****
* Deadline I/O scheduler made default - after much testing it seems to produce the best and more regular results
* Swappiness disabled
* For more information visit my github, this are the most important changes

21 October
* Latest Deep idle bugfix from Ezekeel
* sched: disable GENTLE_FAIR_SLEEPERS
* Remove few obsolete governors
* BLN fix for MIUI users - now it should be propely set and full working
* Just 3 more tweaks:
PM QoS: Correct pr_debug() misuse and improve parameter checks
mmc: core: put eMMC in sleep (cmd5) mode before suspend
vmscan: prevent background aging of anon page in no swap system

19 October
* UV **** is fixed, SetCPU and Proton should work fine now
* Config_HZ increased to 1000 by request of an user
* Small tweak to VR
* Compiled with special Cflags from netarchy
* Calibration tweaks for touchscreen from netarchy

18 October
* Update cpu freq. to allow UV interface - you can modify the voltages on the fly going to /sys/devices/system/cpu/cpu0/cpufreq/UV_mV_table with an easy layout
* Auto BLN added again - it works now out of the box without the need of an extra app
* Add Lazy governor by Ezekeel
* config edited again, removed alot of **** options that are not needed at all - this way the kernel is even leaner
* cpu_idle backport from 3.1 - maybe helps with the BSOD problem
* Tweaked VR scheduler to work better for flash devices like our Nexus
* Ext4 tweaks
* A lot of USB tweaked code
* More fs tweaks to decreast CPU usage on unecessary ****
* More TCP/IP tweaks
* vfs_cache_pressure -> 25
* dirty_background_ratio -> 60
* dirty_ratio -> 90
* vm_swappiness -> 30
* Sysfs interface for deep_idle created by Ezekeel was added. If you want to disable deep_idle run this command: echo 0 > /sys/class/misc/deepidle/enabled
* Screen refresh rate increased to 65hz, everything should be even smoother (thanks morfic)
* If you want more detailed information about all the tweaks added you can visit my github

----------

* No more debugging **** in the kernel. No logcat, no dmesg, no debug_kernel etc etc, this **** is clean on that logging stuff that only consume CPU cycles in the background
* CFS scheduler tweaked with custom settings
* dirty_writeback value increased from 5*100 to 15*100, reducing unnecessary I/O activity, thus releasing a few CPU cycles
* Deep Idle mod by Ezekeel (latest version)
* Few patches to lowmemorykiller.c hopefully to optimize memory usage
* Add VR I/O scheduler and made default. A lot of performance gain comes from this one.
* Also enabled BFQ scheduler to be an option with no-frills
* init/calibrate.c port from 2.6.39. Better loops per jiffy calculations
* vfs_cache_pressure 100->50
* Add Stochastic Fair Blue (SFB) network scheduler and make it default. This is a network packet scheduler, should make internet usage a lot smoother
* Changed TCP_congestion scheduler to TCP_Veno. TCP Veno module is a new congestion control module to improve TCP performance over wireless networks. The key innovation in TCP Veno is the enhancement of TCP Reno/Sack congestion control algorithm by using the estimated state of a connection based on TCP Vegas. This scheme significantly reduces "blind" reduction of TCP window regardless of the cause of packet loss.
* Tiny RCU is the default RCU engine. More explanation on this RCU here http://lwn.net/Articles/323929/
* Kernel compiled with -O2, meaning the code is more optimized instead of being compiled for size
* WiFi = PM_FAST in standby
* Optimized the config options for CFS Autogroup in the .config file, it should be perfect now
* Again more and more debugging disabled
* Obviously some minor changes and tweaking, but that can all be seen in my github below


https://github.com/franciscofranco/Nexus-S

Downloads: http://androtransfer.com/franciscofranco/Nexus_S/ (thanks sixstrings for the FTP hosting)

Please give me your feedback

Enjoy

Peek
FacesIn
Per-App Modes
Nexus Display Control
franco.Kernel updater Free
franco.Kernel - Galaxy Nexus
franco.Kernel - Nexus 4
franco.Kernel - Nexus 5
franco.Kernel - Nexus 7
franco.Kernel - Nexus 7 2013
franco.Kernel - Nexus 10


Google+ | Twitter

You don't like my reply? Read this

However, if you put any trust in Quadrant scores you could use them to prove that dancing naked for 5 minutes in your garden affects device performance. By Chainfire

My applications translations are managed by:

The Following 117 Users Say Thank You to franciscofranco For This Useful Post: [ Click to Expand ]
 
simms22
Old
#2  
simms22's Avatar
Recognized Contributor
Thanks Meter 20646
Posts: 24,872
Join Date: Jun 2009
Location: BROOKLYN!
niiice..
Google+ Profile
Twitter Simms22
DerKernel For Trinity kernels and more!
The Following User Says Thank You to simms22 For This Useful Post: [ Click to Expand ]
 
mathkid95
Old
#3  
mathkid95's Avatar
Recognized Developer
Thanks Meter 5793
Posts: 7,539
Join Date: Jun 2010

 
DONATE TO ME
I knew you were gonna release this lol

Sent from my Nexus S using XDA App
The Following User Says Thank You to mathkid95 For This Useful Post: [ Click to Expand ]
 
franciscofranco
Old
#4  
franciscofranco's Avatar
Recognized Developer - OP
Thanks Meter 85334
Posts: 15,300
Join Date: Dec 2010
Location: Mountain View, CA

 
DONATE TO ME
Quote:
Originally Posted by mathkid95 View Post
I knew you were gonna release this lol

Sent from my Nexus S using XDA App
When I bought my Nexus I thought "No, I'm not compiling any kernels for it, no more flashing endlessly in a loop every night."... I guess I wasn't successful

Jokes aside, better share it to the community instead of being selfish and use it only myself - I'm kinda happy with the result and maybe I can make someone happy too, that's my goal!

Peek
FacesIn
Per-App Modes
Nexus Display Control
franco.Kernel updater Free
franco.Kernel - Galaxy Nexus
franco.Kernel - Nexus 4
franco.Kernel - Nexus 5
franco.Kernel - Nexus 7
franco.Kernel - Nexus 7 2013
franco.Kernel - Nexus 10


Google+ | Twitter

You don't like my reply? Read this

However, if you put any trust in Quadrant scores you could use them to prove that dancing naked for 5 minutes in your garden affects device performance. By Chainfire

My applications translations are managed by:

The Following 5 Users Say Thank You to franciscofranco For This Useful Post: [ Click to Expand ]
 
FL0OD
Old
#5  
FL0OD's Avatar
Senior Member
Thanks Meter 948
Posts: 2,556
Join Date: Jul 2010
Is this just for the Nexus S or will it run on the 4G also?

Sent from my Nexus S 4G
 
simms22
Old
#6  
simms22's Avatar
Recognized Contributor
Thanks Meter 20646
Posts: 24,872
Join Date: Jun 2009
Location: BROOKLYN!
Quote:
Originally Posted by franciscofranco View Post
When I bought my Nexus I thought "No, I'm not compiling any kernels for it, no more flashing endlessly in a loop every night."... I guess I wasn't successful
typical crackflasher
Google+ Profile
Twitter Simms22
DerKernel For Trinity kernels and more!
 
tehgeekguy
Old
#7  
Senior Member
Thanks Meter 142
Posts: 508
Join Date: Apr 2010
Sweet, I'll give it a try!
 
franciscofranco
Old
#8  
franciscofranco's Avatar
Recognized Developer - OP
Thanks Meter 85334
Posts: 15,300
Join Date: Dec 2010
Location: Mountain View, CA

 
DONATE TO ME
Quote:
Originally Posted by FL0OD View Post
Is this just for the Nexus S or will it run on the 4G also?

Sent from my Nexus S 4G
Hmmm... good question. I used CM's kernel sources, like I mention in the op. Considering that probably S and 4G versions of CM7 share the same kernel, I'm mostly certain that it will work. Just do a backup of your installation and try it out, I'm kinda curious as well.

Peek
FacesIn
Per-App Modes
Nexus Display Control
franco.Kernel updater Free
franco.Kernel - Galaxy Nexus
franco.Kernel - Nexus 4
franco.Kernel - Nexus 5
franco.Kernel - Nexus 7
franco.Kernel - Nexus 7 2013
franco.Kernel - Nexus 10


Google+ | Twitter

You don't like my reply? Read this

However, if you put any trust in Quadrant scores you could use them to prove that dancing naked for 5 minutes in your garden affects device performance. By Chainfire

My applications translations are managed by:

The Following 3 Users Say Thank You to franciscofranco For This Useful Post: [ Click to Expand ]
 
FL0OD
Old
#9  
FL0OD's Avatar
Senior Member
Thanks Meter 948
Posts: 2,556
Join Date: Jul 2010
Quote:
Originally Posted by franciscofranco View Post
Hmmm... good question. I used CM's kernel sources, like I mention in the op. Considering that probably S and 4G versions of CM7 share the same kernel, I'm mostly certain that it will work. Just do a backup of your installation and try it out, I'm kinda curious as well.
No smoke or fire so I am good to give it a whirl. Thanks for sharing this.

Sent from my Nexus S 4G
 
morfic
Old
#10  
morfic's Avatar
Recognized Developer
Thanks Meter 12904
Posts: 7,177
Join Date: Aug 2008
Location: San Antonio
Quote:
Originally Posted by franciscofranco View Post
Hmmm... good question. I used CM's kernel sources, like I mention in the op. Considering that probably S and 4G versions of CM7 share the same kernel, I'm mostly certain that it will work. Just do a backup of your installation and try it out, I'm kinda curious as well.
Should work just fine.

Sent from my LG-P999 using Tapatalk
Email me, i suck at replying to PMs.



Direct link to my GIT - http://www.bitbucket.org/morfic/
Direct link to my *old* GIT - http://morfic.euroskank.com/git/

twitter - @morfique
Talk to me on freenode's #trinitykernel
1KBSMtMTDSTr9XU23sYr9wZJBfb2RwpWnf

You may call me "gun powder"

The Following User Says Thank You to morfic For This Useful Post: [ Click to Expand ]
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes