[Kernel][Jan 14]Experimental v12[JB 4.1.2]

Search This thread

etch04

Senior Member
Jan 5, 2010
381
1,440
This kernel is self-used.
So something has not been added.
If you want,just tell me and problem you encounter.

Kernel Features:

General:
- Kernel version 3.0.y
- 390MB RAM
- Useful optimization flags
- jRCU [Joe Korty]
- Dynamic dirty page writebacks
- Timer slack controller
- Dynamic management of the minimal timer slack value during suspend/resume
- LowMemoryKiller management of not killable processes
- Android Logger Disabled(++Performance) (Check HOW TO on how-to enable)
- Frandom Read Me!
- Entropy tweaks.
- Cleaned off Debug stuff, which slows down the Kernel (FRAME POINTER, Log Buffer Size is 64KB).
- CWM 5
- LZ4 for Zram swap.
- Elf.3 included for better battery.
- DVFS(Dynamic Voltage and Frequency Scaling).What is DVFS? [Cocafe]
- Disable sched debug stuff
- Optimized SLUB memory allocator
- Optimized ARM RWSEM
- Low memory killer updated to Android 3.10
- Do not kill process
- ARM ThumbEE
- Build with neon
- Remove old version sha1 implementation
- Optimized AES and SHA1 routines for ARM cpu architecture
- Optimized string and memcopy libs
- Ram Console support
- L2 cache max reads writable
- Disable mali state tracking

I/O and Filesystem
SIOplus
CFQ
Deadline
ROW
V(R)
Zen
Noop


CPU
Pegasusq
Conservative
Ondemand
Performance
Interactive
Lazy
Wheatley
Sakuractive
Hotplug
SmartAssV2
Lionheart
Lulzactiveq
Nightmare
Dyninteractive

Download:
Experimental v12

Credits:
cocafe
Mujeni
stratosk
Christopher83
xx214718247

Source:
Github
 
Last edited:

etch04

Senior Member
Jan 5, 2010
381
1,440
Changelog:

14/01/2014
-clean and fixed source
-UKSM(disbaled by default)
-ABBamp Audio(thanks @cocafe)
-SLQB memory allocator
-CWM 6

12/12/2013
-removed all experimental stuff
-removed DVFS
-white cwm touch
-fixes and tweaks

04/12/2013
-updated source to 3.0.101
-changed default lmk values
-KSM
-fix and tweaks

11/11/2013:
-fixed reboot problem
-remove compressed copy from zram in-memory
-backport zram from 3.7 kernel
-backport zsmalloc from 3.7 kernel
-lz4 compression for zram
-lz4 compressor module
-lz4 Cryptographic API
-included more Governor
-included more IO scheduler

27/09/2013
-interactive gov updated
-compiled usung linaro 4.8.2
-O3 optimisation

20/09/2013
-Clean Source
-Kexec support
-Dynamic dirty page writebacks
-Dynamic management of the minimal timer slack value during suspend/resume
-Automatic zipalign and fstrim
-Not Killable Processes
-DVFS(Dynamic Voltage and Frequency Scaling)
-added dyninteractive
-added Sakuractive governor
-added SIOplus IO
-increased RAM to 390MB
-600mhz freq
-added HotplugX and Lazy governor

19/06/2013
Version 8.0
-kernel updated to 6.2.A.1.100
-fixed led permission
-fixed camera
-changed CWM recovery
-Minor Tweaks

Version 6b
-390MB RAM
-added Lulzactivew,Lulzactiveq and Lazy Governor
-added zen and row IO
-minor fixes

Version 5
-Started from sratch
-Added 600Mhz
Experimental:
-ported and tweaked some Governor(Hyper,Dynainteractive,InteractiveX,Pegasu sq,Hotplug,Interactive) for sola from latest Nexus kernel.
-Tweaks and fixes

07/06/2013
Version 4
-Added some new governor
-Remove some mali tweak
-Removed some governor
-Fixes

05/06/2013
Version 3
-Compiled using latest Linaro 4.8 with optimisation
-Frandom as module
-Logger compiled as module(free up some memory)
-other fix and tweak

04/06/2013
Version 2
-Fix Mali Tweak

03/06/2013:
Version 1
-Initial Version


TODO:
1.Update to latest kernel version
2.Add/Remove governor
4.Fsync control
5.Add more TCP congestions
3.More features
 
Last edited:

etch04

Senior Member
Jan 5, 2010
381
1,440
HOW TO:
Here are some intructions/tips about how to play with the kernel.
Terminal is needed.
If you want to change the values,it needs su permission.
If you get 'Permisson denied',you need su permisson.
If the devices lost responses,hold power button 8s to reboot.
You can cd to the folder first,then do echos.

( CPU Freqs )

With DVFS,we cannot tweak min/max scale freqs via apps like SetCPU or nofrill.
but there are two ways you can change cpu freq:
by using this app

or

by using terminal
For example: set 800Mhz as max limited
echo 800000 > cpufreq_max_limit

* When you switch on/off,power saving mode,this tweak will be overrided.
* If you want it to be permanet edit 05exp file in init.d.

No-fills CPU shows a wrong freqs
This is NOT issue. No-fills will show you Dynamic Min/Max scaling freqs,DVFS(dynamic voltage and frequency system) will adjust Min/Max freq according to system load.
Open SetCPU,it shows you real freqs.Or check sysfs directly.


ABBamp Audio
Please note that listening to too high volume music over 1 hour or more can damage your ears.
Too high volume can make your external speakers/headset overload or damage them.

First, why do i call it `AMP`?
Because most of our tweaks are about gain(volume)
Our codec is simple, It doesn't have any hardware EQ (although i want...)

ABBamp sysfs entries are in:
Quote:
* Use RootExplorer to view this folder,there are lots files

Tweaks will take effects immediately!
Most tweaks will accept inputs like "on", "off" (no quotes)...
So, say "on" to enable this tweak, then this tweak will apply the value stored/inputed
View(cat) these files, most of them will give you useful infomation about this tweak.
They will show you the volume in dB of gain

`cd` to /sys/kernel/abbamp first then do echos, will be more convenient.

[AnaGain3] (Headset analog gain path):
Enable tweaks:
echo on > /sys/kernel/abbamp/anagain3
Disable tweaks:
echo off > /sys/kernel/abbamp/anagain3
Gain control: (min:0 ,max: 15) Lower value,higher volume (default: 0[+4dB])
echo left=?? > /sys/kernel/abbamp/anagain3
echo right=?? > /sys/kernel/abbamp/anagain3
Write both left and right channels:
echo gain=?? > /sys/kernel/abbamp/anagain3


Not Killable Processes

This feature allows to define processes and system processes white-lists filled with the preferred process names and to not be killed by lowmemorykiller, unless it is absolutely necessary.

[APP][ROOT][4.0+] Performance Control - Open Source


Logcat

I have made android logger(logcat) as module to free more RAM.
Create a new init.d script:
Quote:
#!/system/bin/sh
insmod /system/lib/modules/logger.ko
Then you can use logcat command.


EGL Driver

To use Mali hardware egl driver only:
Edit /system/lib/egl.cfg
Quote:
0 0 android
0 1 mali
To
Quote:

Init.d script

Please install busybox in system first
I recommend you install busybox via apps
Create a new folder named 'init.d' in /system/etc
Set the permisson of init.d foler to 0777(rwxrwxrwx) (at least has read and exec permission)
Set the owner to 0.0 (root root)
Put some scripts (any name you like) in init.d folder with permisson 0777 (rwxrwxrwx) (at least has read and exec permission)
Scripts with right permisson will be runned when system boots.


zRAM/SWAP

zRAM is optimized for Android. It is not lazy anymore.
Using zRAM will take a little CPU, because it needs to compress/decompress memory.
Recommended compressing about 18% of RAM, about 100 mb.

Setup disksize first: (example: 96mb= 96×1024×1024)
echo 100663296 > /sys/block/zram0/disksize
* Larger size more RAM will be compressed.
* Too large size might make phone lag

To enable:
Code:
mkswap /dev/block/zram0
swapon /dev/block/zram0

To check how many does it use:
cat /sys/block/zram0/num_reads
cat /sys/block/zram0/num_writes
cat /proc/meminfo | grep swap
* We can get other info in its sysfs

[SWAP]
1. Format/resize external SDCard via computer first.
Enable:
mkswap /dev/block/mmcblk1p1
swapon /dev/block/mmcblk1p1
2. Using a FILE as swap RAM: (Create a continuity file first)
su
cd /cache
dd if=/dev/zero of=swapfile bs=1024 count=81920
mkswap swapfile
swapon swapfile
Then we will have an 80mb swap RAM.


Last_dmesg
Some Help about posting kernel bugs -last_kmsg:
After you have a random reboot do this to get last_kmsg.txt file:
- via Terminal Emulator apk form play store : do
this:
Open the app, type:
hit enter.
type(withoutall the spaces) :
cat(space)/proc/last_kmsg(space)>(space)/sdcard/last_kmsg.txt
and hit enter.Then go to your internal memory with any
file explorer and you will finde the last_kmsg file
and please post it here.


UKSM

UKSM is more advanced than KSM algorithm which is developed by Chinese.
UKSM is faster 20x than KSM, and it has been disabled by default.
Here is a document about HOW-TO use UKSM in its WebSite.

http://kerneldedup.org/en/projects/u...ge/usage0-1-2/

if you want stop uksm run:
echo 0 > /sys/kernel/mm/uksm/run

for (re)activating:
echo 1 > /sys/kernel/mm/uksm/run

* I have set cpu_governor mode to quiet by default in order to get smooth.
* If feel laggy, try to disable UKSM.
 
Last edited:

jatinrungta

Senior Member
Nov 2, 2012
1,987
2,315
Seems good :good:
1)Recovery is 6.0.1.2
2) Recovery usb mount does not work
 
Last edited:

troullis2004

Senior Member
Mar 1, 2012
758
129
I will definitely test and report. You look pretty good at what you do. I like that you are thorough to explain what you have included.

Sent from my ST25i using xda app-developers app
 

Wiplive

Senior Member
Jan 9, 2013
148
21
I see in your changelog you've changed RAM amount, AFAIK our GPU uses 120 MB of RAM. I wonder if it would be worth it to downgrade RAM amount for GPU to like 100? Or even 80 MB of RAM, so our system would have more, like 400 MB.
 
  • Like
Reactions: elocapitan

etch04

Senior Member
Jan 5, 2010
381
1,440
I see in your changelog you've changed RAM amount, AFAIK our GPU uses 120 MB of RAM. I wonder if it would be worth it to downgrade RAM amount for GPU to like 100? Or even 80 MB of RAM, so our system would have more, like 400 MB.
I have tried allocating 400MB to system and it worked but hd video playback doesn't work and games start to fc.so I set it to 390MB which is stable and doesn't have side effect.
 

alematt

Senior Member
Nov 17, 2012
549
188
I have tried allocating 400MB to system and it worked but hd video playback doesn't work and games start to fc.so I set it to 390MB which is stable and doesn't have side effect.

Wow 400MB!!! I think I could not play games and he video in order to have 400mb of free ram!!

Inviato dal mio Xperia U con Tapatalk 2
 

arnob_xperia

Senior Member
Nov 30, 2012
325
153
I have tried allocating 400MB to system and it worked but hd video playback doesn't work and games start to fc.so I set it to 390MB which is stable and doesn't have side effect.

can you make this version? advance thanks if yes :good:

dont want to play games or video playback but Xperia U will work fast...hope you make one
 

Achilles.

Senior Member
Sep 19, 2012
255
93
Worcester
Sure i'll add it..but can somebody give me confirmation that kernel is working or not?.

Yes its working pretty good..
The games seem more responsive dnt knw why maybe a placebo effect..
But I guess u will have to work on it to tweak for gaming..
Hve tested it for hardly some time so cant say abt battery..
But this kernel looks really promising..
Keep up the development..
Good work..
:):):)

Sent from my ST25i
 

GEKTHEBOSS

Senior Member
Mar 22, 2012
1,986
2,963
Wow any screen of ram(poxible totally free)

---Signature---
I'M Busy With Exams Till First Of July, So Don'T Ask Me Any Update Or Support, Byee!
---End---
 

Top Liked Posts

  • There are no posts matching your filters.
  • 160
    This kernel is self-used.
    So something has not been added.
    If you want,just tell me and problem you encounter.

    Kernel Features:

    General:
    - Kernel version 3.0.y
    - 390MB RAM
    - Useful optimization flags
    - jRCU [Joe Korty]
    - Dynamic dirty page writebacks
    - Timer slack controller
    - Dynamic management of the minimal timer slack value during suspend/resume
    - LowMemoryKiller management of not killable processes
    - Android Logger Disabled(++Performance) (Check HOW TO on how-to enable)
    - Frandom Read Me!
    - Entropy tweaks.
    - Cleaned off Debug stuff, which slows down the Kernel (FRAME POINTER, Log Buffer Size is 64KB).
    - CWM 5
    - LZ4 for Zram swap.
    - Elf.3 included for better battery.
    - DVFS(Dynamic Voltage and Frequency Scaling).What is DVFS? [Cocafe]
    - Disable sched debug stuff
    - Optimized SLUB memory allocator
    - Optimized ARM RWSEM
    - Low memory killer updated to Android 3.10
    - Do not kill process
    - ARM ThumbEE
    - Build with neon
    - Remove old version sha1 implementation
    - Optimized AES and SHA1 routines for ARM cpu architecture
    - Optimized string and memcopy libs
    - Ram Console support
    - L2 cache max reads writable
    - Disable mali state tracking

    I/O and Filesystem
    SIOplus
    CFQ
    Deadline
    ROW
    V(R)
    Zen
    Noop


    CPU
    Pegasusq
    Conservative
    Ondemand
    Performance
    Interactive
    Lazy
    Wheatley
    Sakuractive
    Hotplug
    SmartAssV2
    Lionheart
    Lulzactiveq
    Nightmare
    Dyninteractive

    Download:
    Experimental v12

    Credits:
    cocafe
    Mujeni
    stratosk
    Christopher83
    xx214718247

    Source:
    Github
    60
    Changelog:

    14/01/2014
    -clean and fixed source
    -UKSM(disbaled by default)
    -ABBamp Audio(thanks @cocafe)
    -SLQB memory allocator
    -CWM 6

    12/12/2013
    -removed all experimental stuff
    -removed DVFS
    -white cwm touch
    -fixes and tweaks

    04/12/2013
    -updated source to 3.0.101
    -changed default lmk values
    -KSM
    -fix and tweaks

    11/11/2013:
    -fixed reboot problem
    -remove compressed copy from zram in-memory
    -backport zram from 3.7 kernel
    -backport zsmalloc from 3.7 kernel
    -lz4 compression for zram
    -lz4 compressor module
    -lz4 Cryptographic API
    -included more Governor
    -included more IO scheduler

    27/09/2013
    -interactive gov updated
    -compiled usung linaro 4.8.2
    -O3 optimisation

    20/09/2013
    -Clean Source
    -Kexec support
    -Dynamic dirty page writebacks
    -Dynamic management of the minimal timer slack value during suspend/resume
    -Automatic zipalign and fstrim
    -Not Killable Processes
    -DVFS(Dynamic Voltage and Frequency Scaling)
    -added dyninteractive
    -added Sakuractive governor
    -added SIOplus IO
    -increased RAM to 390MB
    -600mhz freq
    -added HotplugX and Lazy governor

    19/06/2013
    Version 8.0
    -kernel updated to 6.2.A.1.100
    -fixed led permission
    -fixed camera
    -changed CWM recovery
    -Minor Tweaks

    Version 6b
    -390MB RAM
    -added Lulzactivew,Lulzactiveq and Lazy Governor
    -added zen and row IO
    -minor fixes

    Version 5
    -Started from sratch
    -Added 600Mhz
    Experimental:
    -ported and tweaked some Governor(Hyper,Dynainteractive,InteractiveX,Pegasu sq,Hotplug,Interactive) for sola from latest Nexus kernel.
    -Tweaks and fixes

    07/06/2013
    Version 4
    -Added some new governor
    -Remove some mali tweak
    -Removed some governor
    -Fixes

    05/06/2013
    Version 3
    -Compiled using latest Linaro 4.8 with optimisation
    -Frandom as module
    -Logger compiled as module(free up some memory)
    -other fix and tweak

    04/06/2013
    Version 2
    -Fix Mali Tweak

    03/06/2013:
    Version 1
    -Initial Version


    TODO:
    1.Update to latest kernel version
    2.Add/Remove governor
    4.Fsync control
    5.Add more TCP congestions
    3.More features
    52
    HOW TO:
    Here are some intructions/tips about how to play with the kernel.
    Terminal is needed.
    If you want to change the values,it needs su permission.
    If you get 'Permisson denied',you need su permisson.
    If the devices lost responses,hold power button 8s to reboot.
    You can cd to the folder first,then do echos.

    ( CPU Freqs )

    With DVFS,we cannot tweak min/max scale freqs via apps like SetCPU or nofrill.
    but there are two ways you can change cpu freq:
    by using this app

    or

    by using terminal
    For example: set 800Mhz as max limited
    echo 800000 > cpufreq_max_limit

    * When you switch on/off,power saving mode,this tweak will be overrided.
    * If you want it to be permanet edit 05exp file in init.d.

    No-fills CPU shows a wrong freqs
    This is NOT issue. No-fills will show you Dynamic Min/Max scaling freqs,DVFS(dynamic voltage and frequency system) will adjust Min/Max freq according to system load.
    Open SetCPU,it shows you real freqs.Or check sysfs directly.


    ABBamp Audio
    Please note that listening to too high volume music over 1 hour or more can damage your ears.
    Too high volume can make your external speakers/headset overload or damage them.

    First, why do i call it `AMP`?
    Because most of our tweaks are about gain(volume)
    Our codec is simple, It doesn't have any hardware EQ (although i want...)

    ABBamp sysfs entries are in:
    Quote:
    * Use RootExplorer to view this folder,there are lots files

    Tweaks will take effects immediately!
    Most tweaks will accept inputs like "on", "off" (no quotes)...
    So, say "on" to enable this tweak, then this tweak will apply the value stored/inputed
    View(cat) these files, most of them will give you useful infomation about this tweak.
    They will show you the volume in dB of gain

    `cd` to /sys/kernel/abbamp first then do echos, will be more convenient.

    [AnaGain3] (Headset analog gain path):
    Enable tweaks:
    echo on > /sys/kernel/abbamp/anagain3
    Disable tweaks:
    echo off > /sys/kernel/abbamp/anagain3
    Gain control: (min:0 ,max: 15) Lower value,higher volume (default: 0[+4dB])
    echo left=?? > /sys/kernel/abbamp/anagain3
    echo right=?? > /sys/kernel/abbamp/anagain3
    Write both left and right channels:
    echo gain=?? > /sys/kernel/abbamp/anagain3


    Not Killable Processes

    This feature allows to define processes and system processes white-lists filled with the preferred process names and to not be killed by lowmemorykiller, unless it is absolutely necessary.

    [APP][ROOT][4.0+] Performance Control - Open Source


    Logcat

    I have made android logger(logcat) as module to free more RAM.
    Create a new init.d script:
    Quote:
    #!/system/bin/sh
    insmod /system/lib/modules/logger.ko
    Then you can use logcat command.


    EGL Driver

    To use Mali hardware egl driver only:
    Edit /system/lib/egl.cfg
    Quote:
    0 0 android
    0 1 mali
    To
    Quote:

    Init.d script

    Please install busybox in system first
    I recommend you install busybox via apps
    Create a new folder named 'init.d' in /system/etc
    Set the permisson of init.d foler to 0777(rwxrwxrwx) (at least has read and exec permission)
    Set the owner to 0.0 (root root)
    Put some scripts (any name you like) in init.d folder with permisson 0777 (rwxrwxrwx) (at least has read and exec permission)
    Scripts with right permisson will be runned when system boots.


    zRAM/SWAP

    zRAM is optimized for Android. It is not lazy anymore.
    Using zRAM will take a little CPU, because it needs to compress/decompress memory.
    Recommended compressing about 18% of RAM, about 100 mb.

    Setup disksize first: (example: 96mb= 96×1024×1024)
    echo 100663296 > /sys/block/zram0/disksize
    * Larger size more RAM will be compressed.
    * Too large size might make phone lag

    To enable:
    Code:
    mkswap /dev/block/zram0
    swapon /dev/block/zram0

    To check how many does it use:
    cat /sys/block/zram0/num_reads
    cat /sys/block/zram0/num_writes
    cat /proc/meminfo | grep swap
    * We can get other info in its sysfs

    [SWAP]
    1. Format/resize external SDCard via computer first.
    Enable:
    mkswap /dev/block/mmcblk1p1
    swapon /dev/block/mmcblk1p1
    2. Using a FILE as swap RAM: (Create a continuity file first)
    su
    cd /cache
    dd if=/dev/zero of=swapfile bs=1024 count=81920
    mkswap swapfile
    swapon swapfile
    Then we will have an 80mb swap RAM.


    Last_dmesg
    Some Help about posting kernel bugs -last_kmsg:
    After you have a random reboot do this to get last_kmsg.txt file:
    - via Terminal Emulator apk form play store : do
    this:
    Open the app, type:
    hit enter.
    type(withoutall the spaces) :
    cat(space)/proc/last_kmsg(space)>(space)/sdcard/last_kmsg.txt
    and hit enter.Then go to your internal memory with any
    file explorer and you will finde the last_kmsg file
    and please post it here.


    UKSM

    UKSM is more advanced than KSM algorithm which is developed by Chinese.
    UKSM is faster 20x than KSM, and it has been disabled by default.
    Here is a document about HOW-TO use UKSM in its WebSite.

    http://kerneldedup.org/en/projects/u...ge/usage0-1-2/

    if you want stop uksm run:
    echo 0 > /sys/kernel/mm/uksm/run

    for (re)activating:
    echo 1 > /sys/kernel/mm/uksm/run

    * I have set cpu_governor mode to quiet by default in order to get smooth.
    * If feel laggy, try to disable UKSM.
    24
    guys....new version has been released.
    the kernel has been updated to 3.0.101.you should find this version much smoother and better than previous version.you can find download link in op.
    as usual try it out and leave feedback.
    15
    guys.....Experimental 12 for stock has been released.
    since i had time and i was not satisfied with the last release,i started from scratch.i don't know if performance has improved since i am not heavy user but i am sure battery life has improved.
    i also included UKSM and Slqb memory allocator.UKSM is disable by default but you can enable it from performance app but the best feature would be ABBamp,that allows you to increase headphones volume,thanks to @cocafe for this. read about it and UKSM in the HOW-TO section.
    so, i suggest all of you to try this out and leave feedback if enabling UKSM or sqlb memory allocator improve your experience.