[TIP] Filesystem improvements. with linux IO scheduler - Hero, G2 Touch Android Development

hi guys .. I've found a way to tune the Linux IO scheduler for flash drives. which is both ROM and SD in our phones case..
Linux have 4 I/O schedulers:
- No-op Scheduler
- Anticipatory IO Scheduler (AS)
- Deadline Scheduler
- Complete Fair Queueing Scheduler (CFQ)
the default is "CFQ", which brings great performance for "Magnetic Disks drives". but not for Flash drives.
in the ".config" file of Android kernel source I noticed that "Deadline" is set as default. but it's not the fastest for Flash drives.
here are some benchmarks I found which is done on a 1 GB flash drive connected on Debian:
Code:
[email protected]:/media/vfat# cat /sys/block/sdb/queue/scheduler
noop anticipatory deadline [cfq]
[email protected]:/media/vfat# postmark
PostMark v1.51 : 8/14/01
pm>set size 500 500000
pm>set subdirectories 1000
pm>run
Creating subdirectories...Done
Creating files...Done
Performing transactions..........Done
Deleting files...Done
Deleting subdirectories...Done
Time:
351 seconds total
160 seconds of transactions (3 per second)
Files:
757 created (2 per second)
Creation alone: 500 files (55 per second)
Mixed with transactions: 257 files (1 per second)
257 read (1 per second)
243 appended (1 per second)
757 deleted (2 per second)
Deletion alone: 514 files (2 per second)
Mixed with transactions: 243 files (1 per second)
Data:
69.80 megabytes read (203.62 kilobytes per second)
208.94 megabytes written (609.56 kilobytes per second)
pm>exit
[email protected]:/media/vfat# echo noop > /sys/block/sdb/queue/scheduler
[email protected]:/media/vfat# cat /sys/block/sdb/queue/scheduler
[noop] anticipatory deadline cfq
[email protected]:/media/vfat# postmark
PostMark v1.51 : 8/14/01
pm>set size 500 500000
pm>set subdirectories 1000
pm>run
Creating subdirectories...Done
Creating files...Done
Performing transactions..........Done
Deleting files...Done
Deleting subdirectories...Done
Time:
147 seconds total
1 seconds of transactions (500 per second)
Files:
757 created (5 per second)
Creation alone: 500 files (3 per second)
Mixed with transactions: 257 files (257 per second)
257 read (257 per second)
243 appended (243 per second)
757 deleted (5 per second)
Deletion alone: 514 files (514 per second)
Mixed with transactions: 243 files (243 per second)
Data:
69.80 megabytes read (486.20 kilobytes per second)
208.94 megabytes written (1.42 megabytes per second)
pm>exit
[email protected]:/media/vfat# echo deadline > /sys/block/sdb/queue/scheduler
[email protected]:/media/vfat# cat /sys/block/sdb/queue/scheduler
noop anticipatory [deadline] cfq
[email protected]:/media/vfat# postmark
PostMark v1.51 : 8/14/01
pm>set size 500 500000
pm>set subdirectories 1000
pm>run
Creating subdirectories...Done
Creating files...Done
Performing transactions..........Done
Deleting files...Done
Deleting subdirectories...Done
Time:
279 seconds total
250 seconds of transactions (2 per second)
Files:
757 created (2 per second)
Creation alone: 500 files (17 per second)
Mixed with transactions: 257 files (1 per second)
257 read (1 per second)
243 appended (0 per second)
757 deleted (2 per second)
Deletion alone: 514 files (514 per second)
Mixed with transactions: 243 files (0 per second)
Data:
69.80 megabytes read (256.17 kilobytes per second)
208.94 megabytes written (766.86 kilobytes per second)
pm>exit
[email protected]:/media/vfat# echo anticipatory
> /sys/block/sdb/queue/scheduler
[email protected]:/media/vfat# cat /sys/block/sdb/queue/scheduler
noop [anticipatory] deadline cfq
[email protected]:/media/vfat# postmark
PostMark v1.51 : 8/14/01
pm>set size 500 500000
pm>set subdirectories 1000
pm>run
Creating subdirectories...Done
Creating files...Done
Performing transactions..........Done
Deleting files...Done
Deleting subdirectories...Done
Time:
266 seconds total
131 seconds of transactions (3 per second)
Files:
757 created (2 per second)
Creation alone: 500 files (166 per second)
Mixed with transactions: 257 files (1 per second)
257 read (1 per second)
243 appended (1 per second)
757 deleted (2 per second)
Deletion alone: 514 files (3 per second)
Mixed with transactions: 243 files (1 per second)
Data:
69.80 megabytes read (268.69 kilobytes per second)
208.94 megabytes written (804.34 kilobytes per second)
pm>exit
Src: http://www.debianhelp.org/node/9148
summary: (less is better)
1) NOOP 147 sec
2) Anticipatory 266 sec
3) Deadline 279 sec
4) CFQ 351 sec
I've made and attached a shell script to set NOOP as default. to install unzip file to your home folder and do this in a terminal:
Code:
adb push 11iosched /system/etc/init.d
adb shell chmod 655 /system/etc/init.d/11iosched
adb shell sh /system/etc/init.d/11iosched
and if you have a kernel source, and want the kernel to use NOOP as default always, open .config file and change to this settings:
Code:
#
# IO Schedulers
#
CONFIG_IOSCHED_NOOP=y
CONFIG_IOSCHED_AS=y
CONFIG_IOSCHED_DEADLINE=y
# CONFIG_IOSCHED_CFQ is not set
# CONFIG_DEFAULT_AS is not set
# CONFIG_DEFAULT_DEADLINE=y
# CONFIG_DEFAULT_CFQ is not set
CONFIG_DEFAULT_NOOP=y
CONFIG_DEFAULT_IOSCHED="noop"
CONFIG_FREEZER=y
i'm using my ROM Fallah 1.4 on my phone and for the first time Softweg filesystem benchmarks reached 37. before I hardly get 31.
to check if it's working, do this:
Code:
adb shell
cat /sys/block/*/queue/scheduler
you should see something like this
[noop] anticipatory deadline
[noop] anticipatory deadline
[noop] anticipatory deadline
[noop] anticipatory deadline
[noop] anticipatory deadline
[noop] anticipatory deadline
[noop] anticipatory deadline
Click to expand...
Click to collapse
the [] brackets shows the selected scheduler..
enjoy

What is it acutally? can you describe in brief?

Cool going to try it right away. Thanks

When I run the "cat /sys/block/*/queue/scheduler" command without changing anything I get:
Code:
noop [deadline] bfq
noop [deadline] bfq
noop [deadline] bfq
noop [deadline] bfq
noop [deadline] bfq
noop [deadline] bfq
noop [deadline] bfq
Is this actually going to make any noticeable difference?
Backing up and trying anyway

vijaysapkota said:
What is it acutally? can you describe in brief?
Click to expand...
Click to collapse
The NOOP scheduler inserts all incoming I/O requests into a simple, unordered FIFO queue and implements request merging. without calculating rotate and seek latencies (as in magnetic disks).
this will boost the IO tasks in Flash drives since there is no rotate or seek.

MaXo64 said:
The NOOP scheduler inserts all incoming I/O requests into a simple, unordered FIFO queue and implements request merging. without calculating rotate and seek latencies (as in magnetic disks).
this will boost the IO tasks in Flash drives since there is no rotate or seek.
Click to expand...
Click to collapse
How do I get this to stick on boot? I tried it and got it to work but when I reboot it goes back to normal :/

Is it possible to run this script from Terminal Emulator on the phone?
If yes: What do I have to type in?

Interesting. Could you please test out BFQ as well?
http://retis.sssup.it/~fabio/linux/bfq/
It is the default at CM kernels (also my .35 port). However I'm not sure whether I should be that fond of it. NOOP really looks promising due is simplicity aye

On my opinion the default IO scheduler for any phone should be deadline. It really doesn't matter how much your device scores on benchmarks, when you hold it in your hand, you want it to respond as fast as possible to your current actions.

IakobosJ said:
How do I get this to stick on boot? I tried it and got it to work but when I reboot it goes back to normal :/
Click to expand...
Click to collapse
if you pushed it to init.d as I described it'll be executed on boot.

MaXo64 said:
if you pushed it to init.d as I described it'll be executed on boot.
Click to expand...
Click to collapse
I did push it to init.d but when I reboot it sets it back to normal :/ It also reset my CPU overclock setting back to stock and changed the governor back to ondemand :/

GZFan said:
Is it possible to run this script from Terminal Emulator on the phone?
If yes: What do I have to type in?
Click to expand...
Click to collapse
after pushing it to your phone, you can do this in Terminal Emulator:
Code:
sh /system/etc/init.d/11iosched

Elemag said:
On my opinion the default IO scheduler for any phone should be deadline. It really doesn't matter how much your device scores on benchmarks, when you hold it in your hand, you want it to respond as fast as possible to your current actions.
Click to expand...
Click to collapse
been testing a while, my phone became more responsive with NOOP. and less lag when updating too many apps from the market in the same time.

IakobosJ said:
When I run the "cat /sys/block/*/queue/scheduler" command without changing anything I get:
Code:
noop [deadline] bfq
noop [deadline] bfq
noop [deadline] bfq
noop [deadline] bfq
noop [deadline] bfq
noop [deadline] bfq
noop [deadline] bfq
Is this actually going to make any noticeable difference?
Backing up and trying anyway
Click to expand...
Click to collapse
i got the same command also, is this mean im success applying the NOOP?

dikabuzz9447 said:
i got the same command also, is this mean im success applying the NOOP?
Click to expand...
Click to collapse
I think you are. Will test this when at work. Looks nice.
Sent from my Hero using Tapatalk

dikabuzz9447 said:
i got the same command also, is this mean im success applying the NOOP?
Click to expand...
Click to collapse
You need to apply this and then run that command again, as long as noop is enclosed with the brackets [] then it means you are using NOOP.
The scheduler with the [] is the one that is running.

IakobosJ said:
You need to apply this and then run that command again, as long as noop is enclosed with the brackets [] then it means you are using NOOP.
The scheduler with the [] is the one that is running.
Click to expand...
Click to collapse
thanx, i've check again and i got this
Code:
[noop] deadline bfq
[noop] deadline bfq
[noop] deadline bfq
[noop] deadline bfq
[noop] deadline bfq
[noop] deadline bfq
[noop] deadline bfq
this mean i was success didnt i.

GZFan said:
Is it possible to run this script from Terminal Emulator on the phone?
If yes: What do I have to type in?
Click to expand...
Click to collapse
I did this by using Root Explorer to move the script file to /system/etc/init.d/ and then used the Terminal Emulator to:
Code:
su
chmod 655 /system/etc/init.d/11iosched
sh /system/etc/init.d/11iosched

dikabuzz9447 said:
thanx, i've check again and i got this
Code:
[noop] deadline bfq
[noop] deadline bfq
[noop] deadline bfq
[noop] deadline bfq
[noop] deadline bfq
[noop] deadline bfq
[noop] deadline bfq
this mean i was success didnt i.
Click to expand...
Click to collapse
yes. now noop is is used..

Question: How to revert to the default (in my case, deadline) scheduler? Will deleting the script and rebooting do this?

Related

[RESEARCH] Undervolting Club (POST YOUR STABLE RESULTS)

This club is for posting your stable undervolts
Please post MPU/IVA/CORE voltages
REQUIREMENTS:
- 1 MONTH stable
- 1 voltage value is allowed. You don't need to have all MPU voltages undervolted for this table for example.
SPREADSHEET: https://docs.google.com/spreadsheet/ccc?key=0AuqacKmGLKJ6dEdJZG5QTmNtQnoyYk0zbm5IanluMHc
Please post in format:
Stable since: DDMMMYYYY (eg: 23FEB2012)
MPU:
350 - xxx mv
700 - xxx mv
920 - xxx mv
1200 - xxx mv
IVA:
- ...
CORE:
- ...
Click to expand...
Click to collapse
The results will be taken into account and merged. I will use the results to undervolt the official CM10 kernel and I will commit these changes to become official.
added spreadsheet with results I found from Google

[KERNEL][14 OCT] [P93x|SU640][OC/UV][3.0.100] Wind Kernel [ICS|JB]

original xda post
move to this for better mangement
bbs.gfan.com
DISCLAIMER
Code:
*
* 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 ROM
* 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. Hard. A lot.
*/
DEVICE SUPPORT
SU640 (i_skt)
P930 (i_atnt)
FEATURES
Based on LG Stock ICS Kernel Source(ICS VERSION)
Based on latest CM10.1 Kernel Source(JB VERSION)
Latest Linux Kernel 3.0.y source
CPU [email protected] MAX CLOCK 1.83Ghz
GPU [email protected]_320Mhz 2D 266Mhz
Undervolting Support(700mV-1400mV)
L2 Performace Boost
Smooth as Butter :]
Some tweaks, fixes
and something I missed (discover it ! )
Stable Version
ICS - v3.5
CM10.1 - v2.5
KNOWN BUG
CM10.1 BUGS
INSTALLATION INSTRUCTION
Copy *.zip to External SD card
Boot into Recovery Mode
Flash *.zip
Reboot and Enjoy it!
OPTIONAL
NANDROID BACKUP before flash
Wipe Cache/DalvikCache,Fix Permission after flash
DEFAULT SETTING
CPU 384Mhz-1512Mhz
Stock GPU FREQ [email protected] /[email protected]
Ondemand + ROW
MSM8x60 DEFAULT VOLTAGE
Code:
192000 800000
310500 825000
384000 825000
432000 850000
486000 850000
540000 875000
594000 875000
648000 900000
702000 900000
756000 925000
810000 975000
864000 975000
918000 1000000
972000 1025000
1026000 1025000
1080000 1050000
1134000 1075000
1188000 1100000
1242000 1125000
1296000 1150000
1350000 1150000
1404000 1175000
1458000 1200000
1512000 1225000
WIND KERNEL DEFAULT VOLTAGE
Code:
192000 775000
310500 775000
384000 775000
432000 775000
486000 775000
540000 787500
594000 800000
648000 825000
702000 837500
756000 850000
810000 862500
864000 887500
918000 900000
972000 925000
1026000 937500
1080000 962500
1134000 987500
1188000 1000000
1242000 1025000
1296000 1050000
1350000 1062500
1404000 1087500
1458000 1112500
1512000 1150000
1566000 1175000
1620000 1212500
1674000 1250000
1728000 1275000
1782000 1300000
1836000 1325000
PERFORMANCE SETTING
Rom Settings -> Developer Options -> Windows Animation Scale,Transition Animation Scale -> 0.5x
Nova Launcher Settings -> Look and Feel -> Scroll Speed,Animation Speed -> Faster than light
use any system tools on Playstore ,set by your preference.
Example: To increase maximum GPU frequency in 3D mode to 320 MHz:
echo 320000000 > /sys/devices/platform/kgsl-3d0.0/kgsl/kgsl-3d0/max_gpuclk
Example: To increase maximum GPU frequency in 2D mode to 266 MHz:
echo 266667000 > /sys/devices/platform/kgsl-2d0.0/kgsl/kgsl-2d0/max_gpuclk
echo 266667000 > /sys/devices/platform/kgsl-2d1.1/kgsl/kgsl-2d1/max_gpuclk
Available frequencies:
3D: 320000000, 300000000, 266667000, 228571000, 200000000, 177778000, 27000000
2D: 266667000, 228571000, 200000000
Click to expand...
Click to collapse
Monitor MSM_MPDECISION
adb shell
su
cat /proc/kmsg | grep 'MPDEC'
CHANGELOG
CM 10.1 - v2.6 (14 OCT)
Ondemand and dynamic hotplug patches by stratosk
More RAM(790-791MB) (Experimental)
Remove some governors and IO schedulers (lean kernel)
Disable some debugging functions (lean kernel)
Linux 3.0.100
JB - v2.5 (27 JUL)
remove mpdecision
backport stratosk 's nexus 4 ondemand and dynamic hotplug
ondemand: touch_load increased to 1134Mhz for 1.3sec duration
ondemand: touch_load is applied only to CPUs the load is above 35%. So, CPUs with low load (and most probably unused) are not boosted.
These ondemand governor parameters are tunable in TricksterMod
Few patches to improve video overlay
Linux 3.0.87
JB - v2.4 (26 JUN)
"simple" GPU governor by faux123 + patch by franco
"simple" GPU governor set by default ( Currently only fauxclock shows/supports the correct option of simple governor )
Backport ondemand from CAF 3.4 kernel
Set SIO IO Scheduler by default (I did some benchmark tests and found out this is the fastest)
Update latest CM10.1 kernel source
Linux 3.0.83
ICS - v3.7 (15 JUN)
Smoothing voltage table (+12.5/25.0mV if get reboots)
Proper ROW for 3.0.y Linux
Intelliplug by faux123 (experimental) to replace mpdecision
Linux 3.0.82
JB - v2.3 (13 JUN)
Smoothing voltage table (+12.5/25.0mV if get reboots)
Proper ROW for 3.0.y Linux
Intelliplug by faux123 (experimental) to replace mpdecision
some patches,check github for detail
Linux 3.0.81
ICS - v3.6 (30 MAY)
tune some values(e.g. LCD voltage 3V->2.8V) according to leak 4.1 sourcecode
lower the max overclock freq to 1.83ghz
Set tweaked ROW from franco.kernel by default
Logger driver update by stratosk
turn on KSM by default
Linux 3.0.80
many misc changes, check github for detail
JB - v2.2 (30 MAY)
update latest CM10.1 kernel source
Linux 3.0.80
JB - v2.1 (20 MAY)
tune some values(e.g. LCD voltage 3V->2.8V) according to leak 4.1 sourcecode
lower the max overclock freq to 1.83ghz
use original fix of stopping the bootanimation
Linux 3.0.79
Some patches & fixes ,check GITHUB for detail
JB - v2.0RC1 (9 MAY)
update latest CM10.1 kernel source
fix bluetooth wakelock [dczz]
update latest mpdecision [showp-1984]
Add max screen off freq to userspace - echo "702000" > /sys/module/cpufreq/parameters/suspend_freq
update mach-msm/cpufreq.c from CAF
Linux 3.0.77
JB - v1.91 (29 APR)
Fix bluesleep.c
Alternative boot animation hack (now should get rid of screening off issue, try to turn on boot animation)
both provided by my friend dczz
JB - v1.9 (28 APR)
Limit MAX screen off freq = 702Mhz
Disable msm_mpdecision and use Auto Hotplug by _thalamus
Kernel -O2 optimization (thats why file size larger)
Set tweaked ROW from franco.kernel by default
Logger driver update by stratosk
some misc backport,fixes
Linux 3.0.75
JB - v1.8 (15 APR)
BSODs from v1.7,v1.71 should be fixed
- Sorry for previous instable release and late coming v1.8
IO Scheduler: Add ROW
- As requested
CPU Governor: Set Ondemand(tweaked 2phase) as default
- By my observation, onedemand,badass seem to be more battery friendly due to shorter time in max freq.
Remove UKSM
- Cons>Pros
- if needed, Check stock KSM in Option - > Performance - > Memory Management
Revert CM screen off fix
- It seems disturbing wifi fix
- If you have screen off issue, reboot can fix temporarily. Or disable boot animation for permanently fix
Backported CAF Linux 3.4 patches
Linux 3.0.72
Misc fixes,tunes
JB - v1.71 (4 APR)
Repack boot.img using new CM Ramdisk which fixed screen off issue
ICS - v3.5 (2 APR)
Remove UKSM
USB Force Fast Charging
Tune mpdecision
CPU 384Mhz-1512Mhz
Linux 3.0.71
JB - v1.7 (30 MAR)
improve WIFI idle drain - creditsss to tdmcode
Latest In-kernel CPU hotplug management aka msm_mpdecision (show-p1984)
Backport mach-msm/cpuidle,mach-msm/pm-8x60,mach-msm/hotplug etc (mrg666)
TCP congestion control : westwood
minor fixes
Linux 3.0.71
CPU Default Freq. = 192Mhz to 1512Mhz
JB - v1.6 (25 MAR)
Latest(24 MAR) CM10.1 kernel
Linux 3.0.70
CPU Default Freq. = 384Mhz to 1512Mhz
ICS - v3.4 (17 MAR)
Clean up some previous updates
Fixed SU640 NFC
Merged latest SU640 20f sourcecode
Add ROW I/O Scheduler by Qualcomm
Removed security error
Minor fixes
ICS - v3.3 (13 MAR)
update governor : interactive from francisco franco galaxy nexus kernel
fix cpufreq.c ( intellidemand works better )
lowmemorykiller updates from faux123
revert some v3.1-3.2 changes which potentially caused lag feedback
Linux 3.0.67
JB - v1.5 (4 MAR)
revert : mpdecision: advanced scroff freq (default 486Mhz)
revert : previous mm: writeback commit
Two commits potentially caused delay of wakeup or BSODs.
ICS - v3.2 (3 MAR)
use i_bell ramdisk (no Optimus LTE bootscreen now )
driver/thermal: create kernel MSM thermal management [faux123] (show correct CPU temp. now)
mpdecision: modify idle_freq decision points to improve efficiency
mpdecision: settings to be battery friendly
mpdecision: advanced scroff freq (default 486Mhz)
mm: uksm: tweak cpu usage
Linux 3.0.66
JB - v1.4 (1 MAR)
Latest(28 FEB) CM10.1 kernel
governer : badass
mpdecision: advanced scroff freq (default 486Mhz)
Linux 3.0.66
JB - v1.3 (23 FEB)
Latest CM10.1 kernel
driver/thermal: create kernel MSM thermal management [faux123] (show correct CPU temp. now)
mpdecision: modify idle_freq decision points to improve efficiency
mpdecision: settings to be battery friendly
mm: uksm: tweak cpu usage
add Wifi Screen-Off Power Management from franco.Kernel (refer to #2 post for setting)
a bit wireless driver changes aimed for battery improve
JB - v1.2 (17 FEB)
tweak p930 wireless driver (P930 only)
bcm4329: allow low-wifi-signals to be seen ( showp1984) (P930 only)
Linaro GCC 4.6 -> Google GCC 4.6 Compiled ( improve stability )
Linux 3.0.64
minor tweaks
JB - v1.1 (12 FEB)
Linaro GCC 4.6 Compiled
USB Force Fast Charging
Improve touchscreen response
Latest CM10.1 kernel
Entropy tweaks
Frandom (http://billauer.co.il/frandom.html)
Adjusted wifi aligned scan time
some lowmemorykiller commits
minor patches,tweaks
JB - v1.0 ( 6 FEB)
patches, tweaks, governers, io schedulers from wind ics kernel
OC/UV etc
ICS - v3.1 (17 FEB)
Linux 3.0.64
Improve touchscreen response (faux123)
Entropy tweaks
Frandom (http://billauer.co.il/frandom.html)
tweak p930 wireless driver (P930 only)
bcm4329: allow low-wifi-signals to be seen ( showp1984) (P930 only)
More or less the same tweaks as CM10.1 kernel
SOURCE
MY GITHUB
CREDITS
tdmcode (great works on our device)
rmcc (bring us CyanogenMod)
faux123 (msm8x60 kernel works, intellidemand etc.)
show-p1984 (kernel based decision, badass etc.)
edoko ( source inspiring me to start dev kernel)
altvolt74 ( introducing the kernel to xda )
Countless developers ( providing their awesome source codes)
ALL tester and developers contributing source
Re: [KERNEL][27 JAN] [P93x|SU640] Wind_Kernel-v3.0 for STOCK/MIUI ICS
I created script to oc gpu, put it in etc/init.d & set right permission but it didn't auto run at startup, the max_gpuclk files still unchanged untill I run the script manually
Sent from my LG-P930 using xda premium
tuilalnvinh said:
I created script to oc gpu, put it in etc/init.d & set right permission but it didn't auto run at startup, the max_gpuclk files still unchanged untill I run the script manually
Sent from my LG-P930 using xda premium
Click to expand...
Click to collapse
Honestly, I dunno how init.d scripts execute automatically.
But you may use Smanager, select the script, click the "su" and "boot" and then "run"
Hi lyfkevin!
Have some question. What utils do you using for repack boot.img?
I tried different mkbootimg, unpackbootimg, mkbootfs, split_bootimg.pl but it not working. Using stock cmdline and base 0x40200000 but it not loading. I never have this problem before on my old phone. P930 have some specific?
miroslav_mm said:
Hi lyfkevin!
Have some question. What utils do you using for repack boot.img?
I tried different mkbootimg, unpackbootimg, mkbootfs, split_bootimg.pl but it not working. Using stock cmdline and base 0x40200000 but it not loading. I never have this problem before on my old phone. P930 have some specific?
Click to expand...
Click to collapse
I forgot where did i get this mkbootimg pack.
I followed this thread from HO!NO!
http://forum.xda-developers.com/showthread.php?t=1566202
And I use command to make boot.img
Code:
./mkbootimg --kernel zImage --ramdisk boot.img-ramdisk.gz --cmdline "vmalloc=450M,console=ttyDCC0,115200,n8 androidboot.hardware=i_skt" --base 0x40200000 --pagesize 2048 --ramdiskaddr 0x41a00000 -o testboot.img
lyfkevin said:
I forgot where did i get this mkbootimg pack.
I followed this thread from HO!NO!
http://forum.xda-developers.com/showthread.php?t=1566202
And I use command to make boot.img
Code:
./mkbootimg --kernel zImage --ramdisk boot.img-ramdisk.gz --cmdline "vmalloc=450M,console=ttyDCC0,115200,n8 androidboot.hardware=i_skt" --base 0x40200000 --pagesize 2048 --ramdiskaddr 0x41a00000 -o testboot.img
Click to expand...
Click to collapse
Oh! Thanks! I never before not using --ramdiskaddr 0x41a00000
Made stuff for easy life. :fingers-crossed:
Just use extract.bat for extract and pack.bat for packing. Everything working automatic. If need change cmdline, edit make_boot
After installing it on last Miui 3.2.1 i have only 768 Mb RAM, why?
Thanks, I'm testing it now
cm10.1 wind kernel v1.0 released
not compatible to cm10, dun mess up
Currently CPU1 status is a bit weird, but defintely wont affect daily use. IT CAUSES LESS BATTERY DRAIN
I guess there is interference between kernel based mutlicore decision(msm_mpdecision) by show-p1984 and governor Intellidemand by faux123.
Test required.
My approaches:
1. switching cpu0 cpu1 governor
2. disable msm_mpdecision by "echo 0 > /sys/kernel/msm_mpdecision/conf/enabled"
3. try different mpdecision/intellidemand configurations by kernel tunner
4. terminal "su" "start mpdecision"
PLX dun hestitate to report ur feedback as it helps me to improve the kernel
REFER:
WHAT IS MSM_MPDECISION
WHAT IS INTELLIDEMAND
Re: [KERNEL][6 FEB] [P93x|SU640][OC/UV][3.0.62] Wind_Kernel [ICS|JB]
Man this is awesome 10.1 is crazy fast with this kernel. Will be testing over the next week. Thanks for all your work and contributions to our device.
Sent from my LG-P930 using xda app-developers app
tried it on my su640. so far so good. I just can't seem to clock it to 1900. oh well its the hardware 1836mhz it more than enough. thanks for kernel. keep up the good work
---------- Post added at 01:43 PM ---------- Previous post was at 01:29 PM ----------
question. Noob here. I have no idea how to OC my gpu. Any link to a guide?
Re: [KERNEL][6 FEB] [P93x|SU640][OC/UV][3.0.62] Wind_Kernel [ICS|JB]
EpicGtab said:
tried it on my su640. so far so good. I just can't seem to clock it to 1900. oh well its the hardware 1836mhz it more than enough. thanks for kernel. keep up the good work
---------- Post added at 01:43 PM ---------- Previous post was at 01:29 PM ----------
question. Noob here. I have no idea how to OC my gpu. Any link to a guide?
Click to expand...
Click to collapse
Check second post :]
U may use faux123 's kernel tool to OC 3D clock
---------------------------------
Anyway, the kernel still under test and far from perfect. give me some time to improve(as I learnt linux and kernel compile in late DEC christmas)
Sent from my LG-SU640 using xda app-developers app
hmm, i don't know if it bug or not, but i stay my phone on idle on night, and after 8 hour i have 31 percent of battery. i hope it's not bug
kkruglov said:
hmm, i don't know if it bug or not, but i stay my phone on idle on night, and after 8 hour i have 31 percent of battery. i hope it's not bug
Click to expand...
Click to collapse
Sounds like classic CM10.x
I want to say that after 8 hours as it remained 31 percent.
classic cm 10.x? (i don't understand)
kkruglov said:
I want to say that after 8 hours as it remained 31 percent.
classic cm 10.x? (i don't understand)
Click to expand...
Click to collapse
I assumed you said it drained to 31% after 8 hours idle... if that's the case, classic battery hogging CM10.
If you meant it stayed at or near 31% after being idle for 8 hours, then Wow... That's pretty impressive.
yes, i mean it stayed at 31 for 8 hours (just idle, without wifi or internet connection).

[KERNEL][4.4.4]F(X)TrinityUltimateKernel-V3.2 - MultiBoot - IntelliV2_ LUpdate Of Feb

{
"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"
}
F(X)TrinityUltimateK.​
[ Introduction : ]
Welcome to the Scandalous Kernel , The F(x)TrinityUltimateKernel, Giving the Most recent Bit Patches including new Distinctive features and Optimization(s), When your utilizing this kernel expect 2-weeks default upgrade, The Bit upgrade will be after at regular intervals ( 2-Weeks )...
V.3.2 - Download ( Support 4.4.4 Only )
>> CLICK HERE!! <<​
=-= Are You New Or You Wanted the Best Kernel Setting Check It Out Here! =-=
>> Best Kernel Settings <<
For Additional Information This Beast Kernel works Best at! >> TrinityVengeanceRaptorX-HD <<
: CHANGELOG :
V3.2Minor Changes
dm ioctl: prevent unsafe change to dm_ioctl data_size
md: protect against crash upon fsync on ro array
dm: fix deadlock with request based dm and queue request_fn recursion
dm: handle requests beyond end of device instead of using BUG_ON
msm8974: added input mediator
new helper: iterate_fd()
Other F2FS Alpha Test
V3.0Major Changes
Merge New Sony Source.
sm: vidc: eliminate race condition in dynamic buffer mode
kernel/futex.c: Linux 3.4 compatibility fix up
futex: Avoid taking hb lock if nothing to wakeup
softirq: reduce latencies
futex: Larger hash table
AND MANY MORE!! Check Out The Git. Added Last 26Days Ago!
V2.8 and 2.9_EXT Major Patches.
Added IntelliThermal V2 Of Faux123
Added Custom WLAN Driver
Dave Kleikamp fxTHaxxorX
iov_iter: iov_iter_copy_from_user() should use non-atomic copy …
kleikamp authored on Feb 3, 2013 fxTHaxxorX committed an hour ago
iov_iter: move into its own file …
qup_i2c: Initialize I2C resource before registering. …
i2c_qup: Fix for unhandled IRQ …
qup_i2c: export qup_i2c_init_driver …
page_alloc: Make watermarks tunable separately
25+ Patches More.
V2.7B
Fix Wakeup Issue
cpufreq: force cpuN policy to match cpu0 when changing freq or gov
cpuidle: remove the power_specified field in the driver …
cpuidle: Fix finding state with min power_usage …
cpuidle: Get typical recent sleep interval …
cpuidle: Quickly notice prediction failure in general case …
cpuidle: Quickly notice prediction failure for repeat mode …
cpuidle: move field disable from per-driver to per-cpu
sched: Remove unused params of build_sched_domain() …
sched: Optimize build_sched_domains() for saving first SD node for a cpu …
sched: Optimize build_sched_domains() for saving first SD node for a cpu …
sched: scale the busy and this queue's per-task load before compare …
sched: remove WARN_ON(!sd) from init_sched_groups_power() …
sched: don't call get_group() for covered cpus …
sched: Use cached value of span instead of calling sched_domain_span() …
cpufreq: Fix policy getting stuck when user & kernel min/max don't ov… …
cpuidle: remove unused variable dead_state
V2.6
Upstream Update From 3.4.0 to 3.4.9 Upstream
WiFi And exFAT Works! Kernel Version is Updated!
And Many more! - To be Added.
HTC AFSync
Added PegasusQ
Added Adaptive
Added frontswap v16
Added abyssplug
Added New CpuFreq Driver
Added F2FS File System Support***
Updated ZRAM
Adaption Of HR_TIMER for 3.4
sparc64 Misc Patches.
ASoC: wcd9xxx: Enable headset in high performance
Fully WORKING exFAT AND WiFi - You Can see the proof because 3.4.0 is changed to 3.4.X
V2.5
New GPU Optimization
DT2W With DeepSleep
V2.4AC-REFRESHED
Advance GPU OC V2 - 600Mhz
EXT4 - Speed Boost
Added New BootSplash
Added New KGSL Update
Added New MDP Update
Add SlimBus OC
V2.4AC
Advance GPU OC V2
New KGSL Update
SLQB Re-Added
New DT2W
V2.4
Advance GPU OC
New KGSL Update
Added Advance TCP Congestion
Remove Low FPS
Fixed 2-3 Reboots after Intallation
V2.2-3 SPECIAL
Galaxy Note 3 OC CPU Table
Updated MDP Overlay
KGSL Update
DoubleTap2Wake With Battery Drain Fix
New MakeFile Changes
New TCP Congestion
V2.1
exFAT Fix
V2.0
GPU Performance Legit Boost Upto 10% Now!
* New Patches at KGSL and MDSS
* Reduce Voltage
* New I/O Scheduler ( TrinNDroid )
* ARCH_POWER = Enabled
* softirq: Use hotplug thread infrastructure
* [backport] Hotplug thread infrastructure
Increased Battery Life
Updated CPU Frequency Stepping
Partial Fix for CPU Heating - Reduce by 5%
Increased Performance to 15%
Upstream Update For CPU Frequemcy
Increase performance form 5MS to 2MS
15+ More!
V1.9 - Special Update and Special Kernel Series.
Updated Intelliplug
Tons Of Optimization
Updated TWRP Now Working at KK
Updated Futex Table x2 Performance
Added PowerSuspend Hooks
Fixed GPU OC - Now It Doesn't go Back to 450 ( Make Sure to Re-Apply the OC Every ReBoot )
TCP Window Size is 64K
Optimize Slack_Speed for Size and Speed
Added Frandom - Increased Speed and Performance ( Benchmark Results Improved )
Reduce VFS Pressure
PowerSuspend Updated to 1.5
PowerSusped Added Userspace | HYBRID | USERCONTROL - Use FauxApp To Control This.
SOFTIRQ : Reduce Latencies
slub.c: little tweak for performance improvements
ChangeLog For 1.8 :
Linux 3.4,91 || UnPushed 3.4.62-3.4.90
Removed Chronic Hotplug and smp
Fix 2.4GhzOC Table Except Voltage Table
1080p Recording Optimization And Tweak
msm_fb: Set RR sched policy for Glupdator thread
ChangeLog For 1.7 :
CHROMIUM: BACKPORT: lib/lzo: huge LZO decompression speedup on ARM by
CHROMIUM: BACKPORT: lib/lzo: Update LZO compression to current upstream
CHROMIUM: mm: Fix calculation of dirtyable memory
msm8974-regulator.dtsi: further reduce CPU retention voltage
msm8974-regulator.dtsi: adjust GFX regulator parameters
char:random: Some tweaks from around github
futex: Make lookup_pi_state more robust
futex: Always cleanup owner tid in unlock_pi
futex: Validate atomic acquisition in futex_lock_pi_atomic()
mm, oom: fix and cleanup oom score calculations
mm, oom: fix badness score underflow
futex: Prevent attaching to kernel threads
evert "Revert "Correct R and G offsets for correct mapping""
mm, oom: fix and cleanup oom score calculations
ChangeLog For 1.6 :
Linux 3.4.0 - 3.4.62
Remove Early Suspend
Increase MDP Clock By x2
CpuFreq Optimization
XHCI Optimization
ChangeLog For 1.5 :
Linux 3.4.0 - 3.4.4
Re-Optimized KGSL - ( Remove Some Flickers )
Patch Sched.c
Patch Sched.h
Improved SSD
exFAT Tweak
Moved 2.6.X Device Tree To 3.4.X
Events Optimization
FS - AIO Optimization
FUSE Optimization
NFS Tweak
ChangeLog For 1.4 :
Optimized Square Root
Bit Optimization
mm : Read-Ahead To 512kB
SavaGedZen Gov
KGSL Tweak V2
R and G Offset Mappings
Reduce CPU Retention
Add Early_Suspend_Delay
Ramdisk : Enable Init.d Support
Patch The GPU
CPUs Patch
ChangeLog For 1.3 :
Re-Merge To Latest Sources ( Removing some cherry-picked Patches )
ChangeLog For 1.1 :
Rebased To New Kernel Source
Fix Pronto Wlan
ChangeLog For 1.0 :
TCP Congestion Advance :
TCP - Hybla
TCP - Cubic
TCP - Reno
TCP - Bic
TCP - WestWood
TCP - HighSpeed
TCP - HTCP
TCP - Vegas
TCP - Veno
TCP - Scalable
TCP - Lp
TCP - Yeah
TCP - illinois
MMC Tweak
KGSL Tweak - Optimize For Gaming
Linaro ToolChain
F2FS Enabled
MSM8964-Regulator
Sched : Optimization
FastCharge
ZRAM
Cherry-picked All Features From DooMLoRD using SmartGit or Merge All Features From His Source.
Other Features Merge Faux123 using SmartGit
Kernel:Workque Optimization
Correct R and G offsets for correct mapping
kernel:sched: LOAD_FREQ (4*HZ+61) avoids loadavg Moire
smp: patches from mainline 3.5 to hopefully help with hotplug efficiency
LMK Optimization
Slub Tweak
Like My Work? Satisfied with my Work? Cheers Thanks For the Beer!
​
[ Donors : ]
@fixx1983 - 20$
@Klaus N. - 15Euro
@lil-diabo
[ Features : ]
GPU OverClock
CPU OverClock
MPDecision
TCP Congestion
Many More!
[ Schedulers & Governor : ]
Deadline
Noop
Row
CFQ
SIO
FIOPS
BFQ
ZEN
VR
LagFree
SmartAssV2
PegasusQ
IntelliActive and Intellidemand
Interactive
Darkness(?)
Wheatley
DanceDance
SavagedZen
OndemandX (?)
OndemandQ (?)
Conservatice, Ondemand, Lionheart, LionheartX(?), Performance.
[ Future Features : ]
New BootImage
Compiled using CustomizeToolChain Via SGS4 Section
New Patches
AROMA Installer
New Kernel Version || ATM It's 3.4.0
[ GPL v2/3 ( Some Commits Are not push Due To WiFi Problems Before : ]
GitHub.com
[ Donation : ]
BTC Address : 12i62Nfodt5srxri4XBmwzGbGj859C58JZ
Donors :
[T.O.S : ]
1. It's not my responsibility what ever will happen to your device after flashing the kernel.
XDA:DevDB Information
F(X)TrinityUltimateKernel - The Xperia Z1 True Kernel., Kernel for the Sony Xperia Z1
Contributors
f(x)THaxxorX, Faux123, DooMLorD, Garcia98, Davidlohr Bueso, showp1984
Kernel Special Features:
Version Information
Status: Stable
Current Stable Version: 3.0
Stable Release Date: 2014-12-01
Created 2014-07-01
Last Updated 2015-01-28
Recommended Settings ( BELOW ) & CM Support ( SOON )
Kernel Configuration #1
Thanks To @Wolfbreak for sharing his Config.
ROM: TrinityVengeanceRaptorX™ HD 1.4
Kernel: F(X)TrinityUltimateKernel-V2.7B
CPU Clocks
Max Clock: 2265600
Min Clock: 300000
Governor: intelliactive or PegasusQ [PegasusQ with MPDecision only]
Snake Charmer: On
I use intelliactive + intelliplug Combination but PegasusQ + MPDecision is a very good Combination too so test it out and choose which one you prefer.
CPU Hotplug
intelliactive
Hotplug Driver: intelliplug
Intelliplug Control - Touch Boost: On
Screen-Off Frequency: Off
Hysterisis Value: 8
Intelliplug Profile: Eco Conservative
Threshold Value: 722
CPU Hotplug for PegasusQ
Hotplug Driver: MPDecision
CPU Idle Stats
C0 - WFI: On
C1 - Retention: On
C2 - Standalone_Pc: On
C3 - PC: On
Thermal Manager
Thermal Managment Driver: IntelliThermal
Frequency Throttle Temperature: 85
Core Throttle Temperature: 80
Frequency Throttling Cores:
Core0 - On, Core1 - On, Core2 - On, Core3 - On
Core Throttling Cores:
Core0 - Off, Core1 - On, Core2 - On, Core3 - On
GPU Manager
GPU Governor: simple_ondemand
GPU Clock Control: 450 Mhz
Simple GPU Algorithm: On
Simple Governor - Laziness: 4
Simple Governor - Ramp Threshold: 7
IO Scheduler
FIOPS for eMMC and SDCard, Readahead Size: 512
eMMC / SDCard Entropy Contribution: Off
Color / Gamma
Color Temperature: Red - 255, Green - 235, Blue - 250
OBS! Set those values under Settings > Screen / Display > White Balance:
Red - 0, Green - 25, Blue - 25
Memory Manager
ZRAM Controls: Off
Clear VFS Cache After Boot: On
Auto FS Writeback Delay Mode: On
Swappiness: Change 80
VFS Cache Pressure: 100
Dirty Ratio: 20
Dirty Background Ratio: 5
Same Page Merge
Intelli-KSM Enable: On
Activation Threshold: 36 megabytes
Cycles per activation: 3 cycles
Pages to Scan: 400 pages
Scan Delay Interval: 500 ms
Battery Controls
Battery Temperature Throttling: On
Battery Temperature Threshold: 45 Celsius
Battery Throttle CPU Frequency: 1190400
FastCharge Options: Custom [Optional]
AC Charge Current (mA): 1500 [Optional]
Miscellaneous
PowerSuspend Modes: Hybrid
PowerSuspend: On
Dynamic File Sync: On
TCP Congestion Control: Westwood
If you cant set PowerSuspend then activate Userspace Mode check PowerSuspend and activate Hybrid again after that and both should be on and work.
--------------------------------------------------
--------------------------------------------------
--------------------------------------------------
Kernel Configuration #2 [/U]
Thanks To F(X)THaxxorX ( ME ) for sharing his Config.
ROM: TrinityVengeanceRaptorX™ HD 1.4
Kernel: F(X)TrinityUltimateKernel-V2.7B
CPU Clocks
Max Clock: 2.266 Ghz
Min Clock: 422 Mhz
Governor: OndemandPlus
Snake Charmer: On ( DEFAULT )
CPU Hotplug
Mpdecision
TouchBoost = Off
# Enables two core touch boost
sys.somc.touch_perf_kick=0
CPU Idle Stats
C0 - WFI: Off
C1 - Retention: Off
C2 - Standalone_Pc: Off
C3 - PC: Off
Thermal Manager
Thermal Managment Driver: Thermald
GPU Manager
GPU Governor: userspace
GPU Clock Control: 450 Mhz
Simple GPU Algorithm: On
Simple Governor - Laziness: 4
Simple Governor - Ramp Threshold: 5
IO Scheduler
FIOPS for eMMC and SDCard, Readahead Size: 1536
eMMC / SDCard Entropy Contribution: On
Color / Gamma
N/A -- Off
Memory Manager
ZRAM Controls: Off
Clear VFS Cache After Boot: Off
Auto FS Writeback Delay Mode: Off
Swappiness: Change 45
VFS Cache Pressure: 100
Dirty Ratio: 17
Dirty Background Ratio: 15
Same Page Merge
Intelli-KSM Enable: On
Activation Threshold: 25megabytes
Cycles per activation: 5 cycles
Pages to Scan: 256 pages
Scan Delay Interval: 465 ms
Battery Controls
Battery Temperature Throttling: On
Battery Temperature Threshold: 40 Celsius
Battery Throttle CPU Frequency: 1036800
FastCharge Options: Force AC[Optional]
AC Charge Current (mA): 500[Optional]
Miscellaneous
PowerSuspend Modes: Userspace
PowerSuspend: On - Force Enabled By Userspace Option
Dynamic File Sync: On
TCP Congestion Control: BIC
Atlast waiting for this..
Thanks
Thread Title Fixed Sorry, 20% ( Uploading in progress )
Stock or AOSP.. Seems Stock..
abbychauhan said:
Stock or AOSP.. Seems Stock..
Click to expand...
Click to collapse
This is Stock based kernel .).
4.4.X, So Yes 4.4.4 Is Supported ..
4.4.4 Checking..
Download Now Available!
http://goo.gl/yrFcyy
f(x)THaxxorX said:
4.4.X, So Yes 4.4.4 Is Supported ..
Download Now Available!
http://goo.gl/yrFcyy
Click to expand...
Click to collapse
1) Battery, performance or hybrid / combo focused kernel?
2) Which Linux kernel source version is this?
3) Any additional hotplug drivers included?
4) Does this one come with Sony RIC Root Security disabled as default for easier root access?
f(x)THaxxorX said:
4.4.X, So Yes 4.4.4 Is Supported ..
Download Now Available!
http://goo.gl/yrFcyy
Click to expand...
Click to collapse
Thanks a lot, awesome work! But just to let you know, you put two periods in the filename.
Thanks sir! :good:
Nice to see more development...will try it asap when I return to stock
Destroyedbeauty said:
1) Battery, performance or hybrid / combo focused kernel?
2) Which Linux kernel source version is this?
3) Any additional hotplug drivers included?
4) Does this one come with Sony RIC Root Security disabled as default for easier root access?
Click to expand...
Click to collapse
Its 3.4.0 Read the Thread , Better try it so you can answer your other questions .. Lets say this is hybrid the battery depends on how you select your governor . goodluck!
Chocolatetrain said:
Thanks a lot, awesome work! But just to let you know, you put two periods in the filename.
Click to expand...
Click to collapse
Sorry about that, Im gonna fix that when I released my next update
[Fenix] said:
Thanks sir! :good:
Nice to see more development...will try it asap when I return to stock
Click to expand...
Click to collapse
Nice to see that there is someone interested
Nice to see extra development
Sent by my Z1 with XDA Fax
Duvel999 said:
Nice to see extra development
Sent by my Z1 with XDA Fax
Click to expand...
Click to collapse
With RomAur 9 not boot
f(x)THaxxorX said:
Nice to see that there is someone interested
Click to expand...
Click to collapse
Trust me there is always interested people here on xda
Maybe we will see also your rom eheh :fingers-crossed:
Yeah, my ROM Will be released after 1-2 Months, I Need to Optimize my AROMA Installer from my Old Xperia S
jack92me said:
With RomAur 9 not boot
Click to expand...
Click to collapse
Im Using 4.4.2, Let me try it @ 4.4.4 .
i remember u on xperia s forum
glad to see u here!
looking forward to your develpoment
jack92me said:
With RomAur 9 not boot
Click to expand...
Click to collapse
KitSlim Evo5 IS booting...so its not a Kernel-related problem. Did you wipe Dalvic and Cache? Its a MUST when installing Kernel
My problem is that the kernel is not mounting my sd-card (64GB)

[KERNEL][3.4.106][LP][ION] K^Kernel 3.4.106 v2.0 for LP 5.0 [11/03/2015][EOL]

{
"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"
}
In this thread you may find my customized kernel 3.4.x for Lollipop rom (CM 12.0 and derivatives) that use ION+PMEM ADSP memory allocations.
Of course, your feedback, as always, are welcome and certainly valuable.
The main features are the following:
- Kernel 3.4.x
- Kernel based on more updated kk_2.7-stable branch of CAF (Code Aurora Forum)
- Sources synched with cm-12.0 repo branch of DevCon Team
- Built with my custom Linaro 4.9.3-2015.02 toolchain optimized for Cortex-A8
- Built with Cortex-A8 and NEON VFP optimization flags (both kernel and modules)
- Built with -O3 optimization flag (both kernel and modules)
- CPU overclockable up to 1824 MHz
- CPU frequencies undervolted (UV version) or extremely undervolted (EXUV version)
- CPU voltage control VDD sys interface (click for more details)
- Dynamic memory allocation of ION heaps through CMA (Contiguous Memory Allocator)
- Dynamic memory allocation of PMEM ADSP heap through CMA (Contiguous Memory Allocator)
- 426MB of free RAM
- Init.d support
- Fast Charge support (default disabled, click for more details)
- Battery Life eXtender support (default disabled, click for more details)
- Ram Console support (click for more details)
- TRIM support
- USB OTG support (if also implemented on rom side)
- Lowered display panel voltage
- Lowered vibetonz voltage
- Lowered wifi voltage
- Lowered swappiness (60 -> 45)
- Increased CPU frequency during boot
- Optimized AES and SHA1 routines for ARM cpu architecture
- Fixed 100% battery notification after charger unplug
- Increased audio volume on board side
- Con Kolivas' CK3 Tweaks
- Optimized SLUB memory allocator
- Optimized ARM RWSEM (read/write semaphore) algorithm
- Optimized asynchronous I/O latency on solid state disks
- Disabled Gentle Fair Sleepers for better UI performance
- CIFS support on boot
- Memory compaction
- Dynamic compression of clean pagecache pages
- Dynamic FSync v1.2 (click for more details)
- Dynamic dirty page writebacks (click for more details)
- VM tweaks for performance and less battery consumption
- Timer slack controller (click for more details)
- Dynamic management of the minimal timer slack value during suspend/resume (click for more details)
- LowMemoryKiller management of not killable processes (click for more details)
- exFAT support
- Additional TCP Congestion algorithms
- Updated ZRam, ZSMalloc, ZCache built-in modules
Available CPU governors:
- Adaptive
- BrazilianWax
- Conservative
- Hyper
- Intellidemand
- Interactive
- InteractiveX
- LionHeart
- LulzActive
- OnDemand (default)
- OnDemandX
- Performance
- Powersave
- SmartAssV2
Available I/O schedulers:
- BFQ
- CFQ
- Deadline
- Fiops
- Noop
- ROW (default)
- SIO
- V(R)
Kernel Downloads for Lollipop ION+PMEM ADSP:
K^Kernel LP-5.0 Mediafire Folder
[QRCODE]https://www.mediafire.com/folder/b82tiiw5u7hd7[/QRCODE]
- v2.0 -
for CM 12.0
and the other roms based on CM 12.0
Note: You must use the CWM recovery with new partition assignments you may find inside CM 12.0 thread by arco68.​
Howto install the kernel:
1) Download the preferred kernel zip file to sdcard or external sdcard
2) Reboot to recovery mode
3) Flash the kernel zip file
4) Reboot the system
Kernel sources (on GitHub):
Development branch of K^Kernel 3.4 for LP 5.0 ION+PMEM ADSP
​
Useful info:
- Special features and sysfs settings
- Frequently asked questions
​
Tables:
​
Changelog:
Code:
[B]11/03/2015 - K^Kernel 3.4 v2.0 for Lollipop ION+PMEM ADSP[/B]
- Kernel 3.4.106
- Built with my latest custom Linaro 4.9.3-2015.02 toolchain optimized for Cortex-A8
- defconfig: Switch to ROW I/O scheduler as default (credits to Christopher83)
- HID: input: generic hidinput_input_event handler (credits to David Herrmann)
- cpufreq: Avoid using global variable total_cpus (credits to Ruchi Kandoi)
- net/ping: handle protocol mismatching scenario (credits to Jane Zhou)
- net: ipv6: allow choosing optimistic addresses with use_optimistic (credits to Erik Kline)
- netfilter: IDLETIMER: fix invalid deference of timer (credits to JP Abgrall)
- prctl: make PR_SET_TIMERSLACK_PID pid namespace aware (credits to Micha Kalfon)
- crypto: arm-aes - fix encryption of unaligned data (credits to Mikulas Patocka)
- ARM: 8118/1: crypto: sha1/make use of common SHA-1 structures (credits to Jussi Kivilinna)
- ARM: 8119/1: crypto: sha1: add ARM NEON implementation (credits to Jussi Kivilinna)
- ARM: 8120/1: crypto: sha512: add ARM NEON implementation (credits to Jussi Kivilinna)
- defconfig: Enable NEON optimized SHA1 crypto routines (credits to Christopher83)
- defconfig: Build QCOM crypto device as built-in (credits to Christopher83)
- pstore: selinux: add security in-core xattr support for pstore and debugfs (credits to Mark Salyzyn)
- KEYS: close race between key lookup and freeing (credits to Sasha Levin)
- msm_fb: Fix RGB pipe offset issue (credits to Blefish)
- msm: mdp.c fix deadlock which causes blue screen (credits to Vinu Deokaran)
- msm: rq_stats: Use cpufreq API to get the current frequency (credits to Archana Sathyakumar)
- defconfig: Back to enforced SELinux (credits to Christopher83)
- staging: android: ashmem: add missing include (credits to Rom Lemarchand)
- net: wireless: bcmdhd: Remove WLAN_CIPHER_SUITE_AES_CMAC advertisement (credits to Dmitry Shmidt)
- gpu: ion: Refactor locking (credits to Srinivasarao P)
- gpu: ion: use a list instead of a tree for heap debug memory map (credits to Srinivasarao P)
- gpu: ion: fix locking issues in debug code (credits to Mitchel Humpherys)
- gpu: ion: add locking to traversal of volatile rb tree (credits to Srinivasarao P)
- gpu: ion: Delete invalid extra file (credits to Pradosh Das)
- drivers: video: msm: Cleanup some dead codes (credits to sirmordred)
- lz4: Revert previously applied commits (credits to Christopher83)
- decompressor: add LZ4 decompressor module (credits to Kyungsik Lee)
- lib: add support for LZ4-compressed kernel (credits to Kyungsik Lee)
- lib: add lz4 compressor module (credits to Chanho Min)
- lib/lz4: correct the LZ4 license (credits to Richard Laager)
- lz4: fix compression/decompression signedness mismatch (credits to Sergey Senozhatsky)
- lz4: ensure length does not wrap (credits to Greg Kroah-Hartman)
- lz4: fix another possible overrun (credits to Greg Kroah-Hartman)
- lz4: add overrun checks to lz4_uncompress_unknownoutputsize() (credits to Greg Kroah-Hartman)
- Update zram and zsmalloc up-to 3.17 kernel changes (credits to sirmordred)
- msm7x30: Remove high memory configurations (credits to Christopher83)
- msm7x30: Change all heap types to CMA (credits to sirmordred)
- msm7x30: Workaround deep sleep issue (credits to Christopher83)
- msm7x30: Increase ION memory heap for surfaceflinger (credits to Christopher83)
- defconfig: Update default and custom configurations (credits to Christopher83)
- f2fs: Sync F2FS to Jaegeuk's linux-3.4 branch (credits to Christopher83)
- selinux: fix inode security list corruption (credits to Stephen Smalley)
- Squashed update of kernel from 3.4.105 to 3.4.106 (credits to Christopher83)
- ipv4: try to cache dst_entries which would cause a redirect (credits to Hannes Frederic Sowa)
- USB: android: release spinlock before queuing work in android_setup (credits to Tarun Gupta)
- usb: gadget: Ignore the second set_config from the host (credits to ChandanaKishori Chiluveru)
- usb: android: Skip the work when set_config arrives with same value twice (credits to ChandanaKishori Chiluveru)
- usb: android: Fixup multiple lun support (credits to arco68)
- msm: camera: s5k4ecgx: Set mount angle from platform data (credits to sirmordred)
- USB: gadget: qdss: Fix strncmp length usage (credits to Kumar Gala)
- usb: android: Print LUN debug info (credits to Christopher83)
- Ramdisk updates (credits to Christopher83)
[B]31/12/2014 - K^Kernel 3.4 v1.0 for Lollipop ION+PMEM ADSP[/B]
- Kernel 3.4.105
- Built with my latest custom Linaro 4.9.3-2014.12 toolchain optimized for Cortex-A8
- ariesve: Set SELinux to be permissive (credits to Christopher83)
- defconfig: Set selinux permissive (credits to arco68)
- defconfig: Enable CONFIG_NETFILTER_XT_TARGET_IDLETIMER (credits to arco68)
- defconfig: Regenerate (credits to arco68)
- ext4: Add support for FIDTRIM, a best-effort ioctl for deep discard trim (credits to JP Abgrall)
- broadcom_wlan: Modify country code source (credits to arco68)
- net: ipv6: autoconf routes into per-device tables (credits to Lorenzo Colitti)
- netfilter: nf_conntrack: decrement global counter after object release (credits to Pablo Neira Ayuso)
- net: ipv6: Add a sysctl to make optimistic addresses useful candidates (credits to Erik Kline)
- Enable NEED_NETDEV for vendor command support. (credits to Subhani Shaik)
- cfg80211: ignore supported rates for nonexistant bands on scan (credits to Felix Fietkau)
- crypto: msm: check potential integer overflow (credits to William Clark)
- defconfig: Enable generic USB audio driver (credits to tobigun)
- i2c: chips: fsa9480: Add support for charging in USB-OTG mode (credits to tobigun)
- defconfig: Update custom defconfigs (credits to Christopher83)
- defconfig: Disable Frandom module (credits to Christopher83)
- i2c: chips: fsa9480: Add write-permission for USB-OTG charger type (credits to tobigun)
- Staging: android: binder: More offset validation. (credits to Arve Hjonnevag)
- fs: f2fs: Initial import from https://kernel.googlesource.com (credits to arco68)
- defconfig: Enable F2FS filesystem (credits to arco68)
Credits and Thanks to:
arco68, CastagnaIT and Ivendor for their awesome work and their kernel sources
Ezekeel, Doomlord, Faux123, Stratosk, Tegrak, ErasmuX, Imoseyon, Blefish, mikeioannina, Madridii and other devs I'm surely missing
CyanogenMod, Kernel.org, Code Aurora Forum, Google, Linaro GCC developers
XDA:DevDB Information
[GT-I8150][ION] K^Kernel 3.4 for LP 5.0 ION+PMEM ADSP, Kernel for the Samsung Galaxy W I8150
Contributors
Christopher83
Source Code: https://github.com/Christopher83/samsung-kernel-msm7x30/tree/cm-12.0
Kernel Special Features: Customized kernel 3.4.x for LP 5.0 rom (CM 12.0 and derivatives) with ION memory allocations
Version Information
Status: Stable
Current Stable Version: v2.0
Stable Release Date: 2015-03-11
Created 2014-12-31
Last Updated 2015-06-08
Special features and sysfs settings (Part 1):
Here you can find some useful scripts that can be used with the following described features:
Scripts​
CPU voltage control VDD sys interface
This feature allows to customize the voltage assumed by each cpu scaling frequency.
It could be useful if you'd like to decrease one or more voltages for battery saving purposes (undervolting), or to increase/adjust them to prevent phone freezes (overvolting).
How to customize the voltages:
1) By downloading and using Trickster MOD or IncrediControl and changing the voltages table inside the SVS tab
2) By using customized init.d scripts (the custom values will be always restored after a reboot, if you don't format the system partition)
- Download one of the script named 01vdd_levels*
- If the file has been saved with .txt extension (stock browser), rename it by removing the .txt extension
- Edit the file by setting your customized voltages, where each line has this syntax
Code:
echo "[I][B][COLOR="Blue"]cpu_freq_HZ[/COLOR][/B][/I] [I][COLOR="SeaGreen"][B]mV[/B][/COLOR][/I]" > /sys/devices/system/cpu/cpu0/cpufreq/vdd_levels
cpu_freq_HZ is the cpu frequency in Hz you'd like to change
mV is the voltage you want to set
For example, the following line means that when the cpu frequency is 1516800 Hz = 1516 MHz, the voltage used will be 1175 mV
Code:
echo "1516800 1175" > /sys/devices/system/cpu/cpu0/cpufreq/vdd_levels
- Copy the new file inside /etc/init.d
- Give the rwxr-xr-x permissions to the file (read, write, execution for owner, read and execution for group users, read and execution for others)
- Reboot
3) By using Terminal Emulator (note that the values you set will be lost after a reboot/shutdown)
- Open Terminal Emulator
- Run these commands
Code:
su
# Run a command for each cpu frequency voltage you'd like to change
echo "[I][B][COLOR="Blue"]cpu_freq_HZ[/COLOR][/B][/I] [I][COLOR="SeaGreen"][B]mV[/B][/COLOR][/I]" > /sys/devices/system/cpu/cpu0/cpufreq/vdd_levels
cpu_freq_HZ is the cpu frequency in Hz you'd like to change
mV is the voltage you want to set
For example, the following line means that when the cpu frequency is 1516800 Hz = 1516 MHz, the voltage used will be 1175 mV
Code:
echo "1516800 1175" > /sys/devices/system/cpu/cpu0/cpufreq/vdd_levels
Alternative Extreme Undervolted (ExUV) settings
If after overclocking your I8150 you noticed some freezes when on ExUV kernel builds, you may use an alternative extremely undervolted setting with the init.d script you can find here: 01vdd_levels_alt_exuv
- Download the script
- If the file has been saved with .txt extension (stock browser), rename it by removing the .txt extension
- Copy the new file inside /etc/init.d
- Give the rwxr-xr-x permissions to the file (read, write, execution for owner, read and execution for group users, read and execution for others)
- Reboot
Force Fast Charge
This feature allows you to force AC charging for any charger that is detected as USB (eg. PC USB ports, USB Car Chargers) and pull the full current the charger can support, in such a way as to speed up the time required for a complete battery recharge.
By enabling this feature, the USB / ADB data transfers will be disabled (security limitation to protect your data).
How to enable/disable the Force Fast Charge:
1) By using the related setting inside System->Advanced->Force Fast Charge (only on CM 10 Beta 3 and next releases)
2) By downloading and using Trickster MOD or IncrediControl or NsTools
2) By directly editing the file /sys/kernel/fast_charge/force_fast_charge and setting 1 to enable the force charge, 0 to disable it (note that set value will be lost after a reboot/shutdown)
3) By using Terminal Emulator (note that set value will be lost after a reboot/shutdown)
- Open Terminal Emulator
- Run this command to enable the force fast charge feature
Code:
su
echo 1 > /sys/kernel/fast_charge/force_fast_charge
- Then, when you want to restore the normal status, run this command to disable the force fast charge feature
Code:
su
echo 0 > /sys/kernel/fast_charge/force_fast_charge
4) By using a customized init.d script, but I don't recommend it because you have to remember to disable the feature every time you want to connect your device to a pc for data transfering after every reboot
Battery life extender (BLX)
This feature has been developed by Ezekeel and allows to set a customized battery charging limit (100% is the default stock value, if you want, you can set a lower value).
As Ezekeel said, it is commonly accepted that both very low and very high charge states accelerate the degradation of the battery capacity (that is why you should store Li-Ion batteries at around 40% charge).
If you set a charging limit equal to 100, this feature will be disabled.
How to activate this feature and set a customized charging limit:
1) By downloading and using Trickster MOD or NsTools by setting the customized battery life extender charging limit
2) By using a customized init.d script (the custom value will be always restored after a reboot, if you don't format the system partition)
- Download the script named 15blx
- If the file has been saved with .txt extension (stock browser), rename it by removing the .txt extension
- Edit the file by setting your preferred charging limit (the downloaded script will set the charging limit to 95%)
- Copy the new file inside /etc/init.d
- Give the rwxr-xr-x permissions to the file (read, write, execution for owner, read and execution for group users, read and execution for others)
- Reboot
3) By directly editing the file /sys/class/misc/batterylifeextender/charging_limit (the value you set will be lost after a reboot/shutdown)
4) By using Terminal Emulator (note that set value will be lost after a reboot/shutdown)
- Open Terminal Emulator
- Run these commands (changing the charging limit = 95 with the preferred one)
Code:
su
echo 95 > /sys/class/misc/batterylifeextender/charging_limit
LowMemoryKiller
The LowMemoryKiller driver is used to kill a selected process and free the memory when it is under one of the defined thresholds.
The tuning of the driver could be achieved by means of two parameters exposed by the kernel module via sysfs interface:
- /sys/module/lowmemorykiller/parameters/minfree
This file includes a comma separated array of the threshold numbers for minfree memory size (in page units).
- /sys/module/lowmemorykiller/parameters/adj
This file includes the comma separated array of oomadj factors, if the corresponding minfree threshold has been reached, one of the process with an oomadj greater than this number will be killed.
The oomadj factor is a property associated to each process, its value is in a range from -17 to +15, the processes with a higher oomadj factor will be the first to be killed when a specific minfree threshold has been reached.
RAM Console
This feature is useful expecially for development and debugging purposes, when occurs kernel panic / unexpected shutdowns or reboots. Pratically, the kernel messages are also stored inside a little RAM portion and restored during reboot after a kernel panic, inside the file /proc/last_kmsg.
Dynamic FSync
This feature has been developed by Faux123 and allows to dynamically manage the synchronous writes performed on file system (FSync).
It uses asynchronous writes when the screen is on, instead of synchronous writes, to have better performance and a slightly lower battery drain, while when the screen is off the synchronous writes are re-enabled to flush all the outstanding writes and prevent possible data loss.
How to enable/disable the Dynamic FSync (default enabled):
1) By downloading and using Trickster MOD
2) By directly editing the file /sys/kernel/dyn_fsync/Dyn_fsync_active and setting 1 to enable the dynamic fsync, 0 to disable it (note that set value will be lost after a reboot/shutdown)
3) By using Terminal Emulator (note that set value will be lost after a reboot/shutdown)
- Open Terminal Emulator
- Run this command to disable the dynamic fsync feature
Code:
su
echo 0 > /sys/kernel/dyn_fsync/Dyn_fsync_active
- Or run this command to re-enable the dynamic fsync feature
Code:
su
echo 1 > /sys/kernel/dyn_fsync/Dyn_fsync_active
Dynamic dirty page writebacks
This feature has been developed by me and allows to dynamically manage the dirty page writebacks with two different intervals, one when the screen is on and another when the screen is off.
It is based on a commit of Francisco Franco, but instead of using hard coded values and of disabling at all the dirty page writebacks while the screen is on (possibility of data loss), I preferred to use a customizable higher dirty page writebacks interval (15 seconds) than the default one (5 seconds) while the screen is on and a customizable default interval (5 seconds) when the screen is off.
By using a higher interval we have better performance and less battery consumption, with a very low risk of data loss.
How to customize the dynamic dirty page writebacks feature (default enabled):
Three new procfs parameters are exposed inside /proc/sys/vm path:
- dynamic_dirty_writeback is the activation status of this feature, set 1 to enable it, set 0 to disable it and use the standard behaviour
- dirty_writeback_active_centisecs is the interval for the dirty page writebacks when the system is active (screen on), the default value is 1500 centisecs (15 seconds)
- dirty_writeback_suspend_centisecs is the interval for the dirty page writebacks when the system is suspended (screen off), the default value is 500 centisecs (5 seconds)
In my kernel builds, during boot, I set other customized values:
- an interval of 30 seconds while the screen is on
- an interval of 10 seconds when the screen is off
1) By directly editing one of the file written above inside /proc/sys/vm and setting the preferred value (note that set value will be lost after a reboot/shutdown)
2) By using Terminal Emulator (note that set value will be lost after a reboot/shutdown)
- Open Terminal Emulator
- Run this command to disable the dynamic dirty page writebacks feature
Code:
su
echo 0 > /proc/sys/vm/dynamic_dirty_writeback
- Or run this command to re-enable the dynamic dirty page writebacks feature
Code:
su
echo 1 > /proc/sys/vm/dynamic_dirty_writeback
- Run this command to set customize the two intervals (30 seconds while the screen is on, 10 seconds when the screen is off)
Code:
su
echo "3000" > /proc/sys/vm/dirty_writeback_active_centisecs
echo "1000" > /proc/sys/vm/dirty_writeback_suspend_centisecs
Special features and sysfs settings (Part 2):
Timer slack controller and dynamic management of the minimal timer slack value
The timer slack controller is a feature developed by Kirill Shutemov and it allows to set the minimal timer slack value for every process contained within a control group (cgroup).
A timer slack allows the kernel to manage processes wakeup requests at some future time.
Thanks to this feature, the kernel can set a specific timer slack for the involved processes, minimizing the number of wakeups and allowing a lower system's power consumption.
For further info: Timer slack for slacker developers
I also implemented a new feature in addition to the above one that allows the dynamic management of the minimal timer slack value.
So, it's possible to use different minimal timer slack value when the system is active and when has been suspended.
How to customize the dynamic timer slack controller feature:
Three new cgroup parameters are exposed inside each processes hierarchy contained in /dev/cpuctl path:
- timer_slack.min_slack_ns is the timer slack used when the system is active for the current processes hierarchy
- timer_slack.min_slack_suspend_ns is the timer slack used when the system is suspended for the current processes hierarchy
- timer_slack.effective_slack_suspend_ns is the timer slack currently used
At the moment, the values chosen and used by K^Kernel are the following:
- core processes (/dev/cpuctl), 0 ns when the system is active, 50000 ns when the system is suspended
- foreground apps/processes (/dev/cpuctl/apps), 0 ns when the system is active, 250000 ns when the system is suspended
- background non interactive apps/processes (/dev/cpuctl/apps/bg_non_interactive), 100000000 ns when the system is active, 250000000 ns when the system is suspended
1) By directly editing one of the file written above inside /dev/cpuctl and inside each hierarchy subfolder, by setting the preferred value (note that set value will be lost after a reboot/shutdown)
2) By using Terminal Emulator (note that set value will be lost after a reboot/shutdown)
- Open Terminal Emulator
- Run these commands to set the minimal timer slack for generic and core apps/processes
Code:
su
echo 0 > /dev/cpuctl/timer_slack.min_slack_ns
echo 50000 > /dev/cpuctl/timer_slack.min_slack_suspend_ns
- Run these commands to set the minimal timer slack for apps/processes in foreground
Code:
su
echo 0 > /dev/cpuctl/apps/timer_slack.min_slack_ns
echo 100000 > /dev/cpuctl/apps/timer_slack.min_slack_suspend_ns
- Run these commands to set the minimal timer slack for apps/processes in background and non interactive
Code:
su
echo 100000000 > /dev/cpuctl/apps/bg_non_interactive/timer_slack.min_slack_ns
echo 250000000 > /dev/cpuctl/apps/bg_non_interactive/timer_slack.min_slack_suspend_ns
LowMemoryKiller management of 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.
This feature exposes four new lowmemorykiller parameters:
- donotkill_proc, is the flag to enable / disable this feature for the processes chosen by the user
- donotkill_sysproc, is the flag to enable / disable this feature for the system processes chosen by the user
- donotkill_proc_names, is the list of process names (comma separated) chosen by the user to be preserved from killing
- donotkill_sysproc_names, is the list of user system process names (comma separated) chosen by the user to be preserved from killing
When the lowmemorykiller needs to free ram, it will first kill the processes not included inside the two process name lists chosen by the user.
If there are no more standard killable processes, then it will be necessary to kill one of the processes included inside one of the two white-lists, to prevent system hangs, slowdowns, etc.
How to customize the white lists of processes to preserve from killing:
On K^Kernel the feature is enabled by default and the provided processes white lists are the following:
- donotkill_proc_names = "com.cyanogenmod.trebuchet,com.anddoes.launcher,com.teslacoilsw.launcher,org.adwfreak.launcher,gtp.nextlauncher,android.inputmethod.latin,com.touchtype.swiftkey"
this means that Trebuchet Launcher, Apex Launcher, Nova Launcher, ADW Launcher, Next Launcher, stock keyboard and SwiftKey keyboard will be preserved from killing
- donotkill_sysproc_names = "android.process.acore,com.android.phone,com.bel.android.dspmanager"
this means that the system process, the phone process and DSP Manager will be preserved from killing
1) By using a customized init.d script (the custom value will be always restored after a reboot, if you don't format the system partition)
- Download the script named 80dnkp
- If the file has been saved with .txt extension (stock browser), rename it by removing the .txt extension
- Edit the file by setting your preferred status and processes list
- Copy the new file inside /etc/init.d
- Give the rwxr-xr-x permissions to the file (read, write, execution for owner, read and execution for group users, read and execution for others)
- Reboot
2) By directly editing the files inside /sys/module/lowmemorykiller/parameters (note that set values will be lost after a reboot/shutdown)
3) By using Terminal Emulator (note that set values will be lost after a reboot/shutdown)
- Open Terminal Emulator
- Run these commands if you want to enable the feature
Code:
# To enable this feature for the processes chosen by the user
echo 1 > /sys/module/lowmemorykiller/parameters/donotkill_proc
# To enable this feature for the system processes chosen by the user
echo 1 > /sys/module/lowmemorykiller/parameters/donotkill_sysproc
- Run these commands if you want to disable the feature
Code:
# To disable this feature for the processes chosen by the user
echo 0 > /sys/module/lowmemorykiller/parameters/donotkill_proc
# To disable this feature for the system processes chosen by the user
echo 0 > /sys/module/lowmemorykiller/parameters/donotkill_sysproc
- Run this command if you want to add, for example, Trebuchet Launcher (CM default launcher) and the default keyboard to the processes white list
Code:
echo "com.cyanogenmod.trebuchet,android.inputmethod.latin" > /sys/module/lowmemorykiller/parameters/donotkill_proc_names
- Run this command if you want to add, for example, the system process, the phone process and DSP Manager to the system processes white list
Code:
echo "android.process.acore,com.android.phone,com.bel.android.dspmanager" > /sys/module/lowmemorykiller/parameters/donotkill_sysproc_names
ZRAM module
As explained on Wikipedia, this feature, provided in this kernel as a standalone loadable module, increases performance by avoiding paging on disk and instead uses a compressed block device in RAM in which paging takes place until it is necessary to use the swap space on the hard disk drive.
In few words, the memory pages no more used and so to be swapped are sent to zRam device blocks, compressed and stored in memory instead of disk allowing better performance and also lower memory usage, on the other hand, a little higher amount of cpu is needed to perform compression and decompression of memory pages.
Since we have a device with a low amount of free memory, this feature could be useful to have more free ram.
How to change the size of zRam or to disable it (thanks to @ktulu84 for sharing these scripts):
To change the size of zRam (the custom value will be always restored after a reboot, if you don't format the system partition):
- Download the script named 60zram
- If the file has been saved with .txt extension (stock browser), rename it by removing the .txt extension
- Edit the file by setting your preferred zRam size (change SIZE value, default is 100 MB)
- Copy the new file inside /etc/init.d
- Give the rwxr-xr-x permissions to the file (read, write, execution for owner, read and execution for group users, read and execution for others)
- Reboot
If you want to use default zRam size, simply remove the file placed inside /etc/init.d and reboot.
To disable zRam (the custom value will be always restored after a reboot, if you don't format the system partition):
- Download the script named 60disable_zram
- If the file has been saved with .txt extension (stock browser), rename it by removing the .txt extension
- Copy the new file inside /etc/init.d
- Give the rwxr-xr-x permissions to the file (read, write, execution for owner, read and execution for group users, read and execution for others)
- Reboot
If you want to re-enable zRam, simply remove the file placed inside /etc/init.d and reboot.
FAQ - Frequently asked questions:
Q: What are the differences between EXUV and UV kernel versions?
A: The EXUV kernel versions have extremely undervolted settings for the cpu frequencies, they allows to have a very low battery drain, instead the UV kernel versions have undervolted settings a bit higher than EXUV versions, but always lower than stock kernel settings.
The EXUV kernel versions could give some problems (freezes, shutdowns, huge lags) on some devices because the cpu doesn't support too low voltage settings.
For a lower battery consumption, I suggest you to try EXUV versions first and to switch to UV versions only if you encounter one of the above mentioned problems.
Q: For v1.0 kernel builds, what are the differences between 396MB, 406MB and 416MB versions?
A: 396MB, 406MB and 416MB kernel versions have different free ram available for user space, with a higher free ram your device will work better with heavy apps, many concurrently used apps, heavy games, etc.
- 396MB versions are more stable, everything is fully working, but you could have some slowdowns with apps that require a high amount of free memory.
- 406MB versions have additional 10 MB of free ram, they are suitable for the users that use the device primarly for calls, messages, simple apps and simple games. The camera, video recording (both 480p and 720p modes) and video playback are fully working.
- 416MB versions have additional 20 MB of free ram, they are suitable for the users that use the device also with heavy apps, various concurrently used apps and games. The camera, video recording (both 480p and 720p modes) and video playback are fully working.
Q: How can I get the Performance and Developer Options entries inside Settings menu?
A: Go inside Settings -> About Phone -> Scroll down and tap 7 times on Build number (it's an Easter Egg).
Q: How can I get the log after an unexpected shutdown / reboot?
A: After an unexpected shutdown / reboot of the device, if the problem may be kernel related, you should have the /proc/last_kmsg, if so, send me that log and I'll check it to find the possible cause of the problem.
Q: How can I get the logs when I encounter strange system issues while it's running?
A: Check first if the problems could be related to an app you're using and if you changed something in the last days before facing those issues.
If the problem started after installing the kernel, then let me have you logcat and dmesg:
- Open Terminal Emulator and execute these commands:
Code:
su
dmesg > /sdcard/dmesg.txt
locat -v time -d > /sdcard/logcat.txt
- Open you preferred file manager and go inside the internal sd card partition /sdcard
- Send me the dmesg.txt and logcat.txt files, if you want zip them first
Q: How can I mount a shared Windows folder with CIFS module?
1) By using Terminal Emulator
Code:
mount -o unc=\\\\[COLOR="DarkGreen"][I]ip[/I][/COLOR]\\[COLOR="Blue"][I]share[/I][/COLOR],noserverino,username=[I][COLOR="DarkOrange"]user[/COLOR][/I],password=[I][COLOR="Lime"]password[/COLOR][/I] -t cifs //[COLOR="DarkGreen"]ip[/COLOR]/[COLOR="Blue"]share[/COLOR] [I][COLOR="DarkSlateGray"]/mnt/cifs[/COLOR][/I]
2) Downloading and using CifsManager and configuring the new share as follow:
- Share Path = ip/share
- Mount Point = /mnt/cifs/share
- Username = username
- Password = password
- Options = unc=\\\\ip\\share,noserverino
Where:
ip is the ip address of your pc where the folder is shared
share is the shared folder name
user is the user name that can access the shared folder
password is the user password
/mnt/cifs is the mount point (must be created if you'd like to use the command approach with Terminal Emulator)
Reserved, just in case...
Notorious as always. Thanks, Christopher!
Awesome!!! I'll update my W soon *_*
P.s. Happy new year!!!
Wow! I bet this is your first 2015 kernel post
Sent from my GT-S6500 using XDA Free mobile app
Wow, so fast sir. You are the king of kernel :thumbup:
Chris, you're impeccable. Thanks for support.
i download n instal this kernel, but i got some trouble when i try to find Performance Setting.
i do have Developers Setting, but for Performing Setting i can't figure it where.
sorry for my bad english
Sent from indONEsia
ka12el said:
i download n instal this kernel, but i got some trouble when i try to find Performance Setting.
i do have Developers Setting, but for Performing Setting i can't figure it where.
sorry for my bad english
Sent from indONEsia
Click to expand...
Click to collapse
There is no performance settings at the moment in cm12. As an alternative use performance control
ilusi0n_ said:
There is no performance settings at the moment in cm12. As an alternative use performance control
Click to expand...
Click to collapse
thanks for your respon
but why on Q&A first page say i can get dev setiing and perform setting with press 7 times on build number.
ok i try the apps
thank you so much
Sent from my GT-I8150 using XDA Free mobile app
ka12el said:
thanks for your respon
but buy on Q&A first page say i can get dev setiing and perform setting with press 7 times on build number.
ok i try the apps
thank you so much
Sent from my GT-I8150 using XDA Free mobile app
Click to expand...
Click to collapse
Performance settings does not appear because cyanogenmod didn't implement it when Arco compile the rom for us. In a future build, the rom will have the performance settings.
Today I get kernel wakelock from apps wakelock detector
It is "rpc_read" wakelock about 12 h
Im using your kernel, christopher
Thank you
Is it working with the latest cm12?
riyosakura said:
Is it working with the latest cm12?
Click to expand...
Click to collapse
Yes it is.
riyosakura said:
Is it working with the latest cm12?
Click to expand...
Click to collapse
I think it should not be used, because it is not in sync with the latest changes in CM12
* Waiting for the new version update .
huongthanh8690 said:
I think it should not be used, because it is not in sync with the latest changes in CM12
* Waiting for the new version update .
Click to expand...
Click to collapse
you think so? i already flashed it lol.
so far so good though.
huongthanh8690 said:
I think it should not be used, because it is not in sync with the latest changes in CM12
* Waiting for the new version update .
Click to expand...
Click to collapse
using it with no problems.

Themes / Apps / Mods XIAOMI 11T (AMBER/AGATE) MIUI 14 GLOBAL TWEAKS AIO

feature :
1. SDA/SDB/SDC
UP 1024 read_ahead_kb
UP 1024 nr_requests
ENABLE add_random
2. GED
ENABLE boost_gpu_enable
ENABLE enable_game_self_frc_detect
ENABLE gx_boost_on
ENABLE gx_game_mode
ENABLE ged_smart_boost
3. KERNEL HAL
LVL 5 gpu_boost_level
SET MAX FREQ custom_boost_gpu_freq
4. EARA THERMAL
SET DISABLE
5. ZRAM
SET 6GB disksize
7. APU
ENABLE mnoc_apu_qos_boost
8. RAM
RAM 0-15 SET 1024 read_ahead_kb
DM 0-43 SET 1024 read_ahead_kb
LOOP 0-10 SET 1024 read_ahead_kb
ZRAM SET 1024 read_ahead_kb
9. VM
SET 75 dirty_ratio
SET 60 overcommit_ratio
SET 10 vfs_cache_pressure
SET 3000 dirty_expire_centisecs
10. I/O
SET DEADLINE scheduler
11. TCP NET
SET BIC tcp_congestion_control
12. CPU
SET PERFORMANCE CPU 0-7 cpufreq
SET MAX CLOCK SPEED CPU 0,1,2,3 TO 2000000
SET MAX CLOCK SPEED CPU 4,5,6 TO 2600000
SET MAX CLOCK SPEED CPU 7 TO 3000000
SET MAX CLOCK CPU POLICY 0,4,7
13. KERNEL PANIC
DISABLE panic_on_oops
DISABLE perf_cpu_time_max_percent
DISABLE panic
REDUCE TO 10000 perf_event_max_sample_rate
DISABLE kptr_restrict
14. THERMAL KILL
STOP THERMAL_CORE + FILE REPLACE
CUSTOM THERMALD + FILE REPLACE
STOP THERMAL + FILE REPLACE
STOP THERMAL_MANAGER + FILE REPLACE
STOP THERMALLOADALGOD + FILE REPLACE
STOP MI_THERMAL + FILE REPLACE
TEST
XIAOMI 11T AGATE /AMBER
ROM MIUI 14 GLOBAL
MEDIATEK DIMENSITY 1200
ATTENTION: THIS MODULE MAY RESULT IN DAMAGE!, ALL DAMAGE CAUSED BY THIS MODULE IS NOT OUR RESPONSIBILITY!
MY RESPECT, THEDYA
thedyaaaa_ said:
feature :
1. SDA/SDB/SDC
UP 1024 read_ahead_kb
UP 1024 nr_requests
ENABLE add_random
2. GED
ENABLE boost_gpu_enable
ENABLE enable_game_self_frc_detect
ENABLE gx_boost_on
ENABLE gx_game_mode
ENABLE ged_smart_boost
3. KERNEL HAL
LVL 5 gpu_boost_level
SET MAX FREQ custom_boost_gpu_freq
4. EARA THERMAL
SET DISABLE
5. ZRAM
SET 6GB disksize
7. APU
ENABLE mnoc_apu_qos_boost
8. RAM
RAM 0-15 SET 1024 read_ahead_kb
DM 0-43 SET 1024 read_ahead_kb
LOOP 0-10 SET 1024 read_ahead_kb
ZRAM SET 1024 read_ahead_kb
9. VM
SET 75 dirty_ratio
SET 60 overcommit_ratio
SET 10 vfs_cache_pressure
SET 3000 dirty_expire_centisecs
10. I/O
SET DEADLINE scheduler
11. TCP NET
SET BIC tcp_congestion_control
12. CPU
SET PERFORMANCE CPU 0-7 cpufreq
SET MAX CLOCK SPEED CPU 0,1,2,3 TO 2000000
SET MAX CLOCK SPEED CPU 4,5,6 TO 2600000
SET MAX CLOCK SPEED CPU 7 TO 3000000
SET MAX CLOCK CPU POLICY 0,4,7
13. KERNEL PANIC
DISABLE panic_on_oops
DISABLE perf_cpu_time_max_percent
DISABLE panic
REDUCE TO 10000 perf_event_max_sample_rate
DISABLE kptr_restrict
14. THERMAL KILL
STOP THERMAL_CORE + FILE REPLACE
CUSTOM THERMALD + FILE REPLACE
STOP THERMAL + FILE REPLACE
STOP THERMAL_MANAGER + FILE REPLACE
STOP THERMALLOADALGOD + FILE REPLACE
STOP MI_THERMAL + FILE REPLACE
TEST
XIAOMI 11T AGATE /AMBER
ROM MIUI 14 GLOBAL
MEDIATEK DIMENSITY 1200
ATTENTION: THIS MODULE MAY RESULT IN DAMAGE!, ALL DAMAGE CAUSED BY THIS MODULE IS NOT OUR RESPONSIBILITY!
MY RESPECT, THEDYA
Click to expand...
Click to collapse
Do I flash with magisk?
Stephanizgo said:
Do I flash with magisk?
Click to expand...
Click to collapse
Yes (module)!
I flashed the module and rebooted. Waited about 30 seconds and again rebooted is that normal
Stephanizgo said:
I flashed the module and rebooted. Waited about 30 seconds and again rebooted is that normal
Click to expand...
Click to collapse
The device restarted only twice?
carlos974 said:
The device restarted only twice?
Click to expand...
Click to collapse
only twice now working fine
Stephanizgo said:
only twice now working fine
Click to expand...
Click to collapse
thedyaaaa_ said:
feature :
1. SDA/SDB/SDC
UP 1024 read_ahead_kb
UP 1024 nr_requests
ENABLE add_random
2. GED
ENABLE boost_gpu_enable
ENABLE enable_game_self_frc_detect
ENABLE gx_boost_on
ENABLE gx_game_mode
ENABLE ged_smart_boost
3. KERNEL HAL
LVL 5 gpu_boost_level
SET MAX FREQ custom_boost_gpu_freq
4. EARA THERMAL
SET DISABLE
5. ZRAM
SET 6GB disksize
7. APU
ENABLE mnoc_apu_qos_boost
8. RAM
RAM 0-15 SET 1024 read_ahead_kb
DM 0-43 SET 1024 read_ahead_kb
LOOP 0-10 SET 1024 read_ahead_kb
ZRAM SET 1024 read_ahead_kb
9. VM
SET 75 dirty_ratio
SET 60 overcommit_ratio
SET 10 vfs_cache_pressure
SET 3000 dirty_expire_centisecs
10. I/O
SET DEADLINE scheduler
11. TCP NET
SET BIC tcp_congestion_control
12. CPU
SET PERFORMANCE CPU 0-7 cpufreq
SET MAX CLOCK SPEED CPU 0,1,2,3 TO 2000000
SET MAX CLOCK SPEED CPU 4,5,6 TO 2600000
SET MAX CLOCK SPEED CPU 7 TO 3000000
SET MAX CLOCK CPU POLICY 0,4,7
13. KERNEL PANIC
DISABLE panic_on_oops
DISABLE perf_cpu_time_max_percent
DISABLE panic
REDUCE TO 10000 perf_event_max_sample_rate
DISABLE kptr_restrict
14. THERMAL KILL
STOP THERMAL_CORE + FILE REPLACE
CUSTOM THERMALD + FILE REPLACE
STOP THERMAL + FILE REPLACE
STOP THERMAL_MANAGER + FILE REPLACE
STOP THERMALLOADALGOD + FILE REPLACE
STOP MI_THERMAL + FILE REPLACE
TEST
XIAOMI 11T AGATE /AMBER
ROM MIUI 14 GLOBAL
MEDIATEK DIMENSITY 1200
ATTENTION: THIS MODULE MAY RESULT IN DAMAGE!, ALL DAMAGE CAUSED BY THIS MODULE IS NOT OUR RESPONSIBILITY!
MY RESPECT, THEDYA
Click to expand...
Click to collapse
It's difficult for me to understand, please can you tell what this tweak does? Is it like over clock?
llSOULll said:
It's difficult for me to understand, please can you tell what this tweak does? Is it like over clock?
Click to expand...
Click to collapse
It is more like underclock, for gaming I recommend to turn it off
llSOULll said:
It's difficult for me to understand, please can you tell what this tweak does? Is it like over clock?
Click to expand...
Click to collapse
llSOULll said:
It's difficult for me to understand, please can you tell what this tweak does? Is it like over clock?
Click to expand...
Click to collapse
No, just tunning for best performance
hay guys, i made the modul for may self. maybe have mistake just for xiaomi 11T agate/amber mediatek, if you wan to see may module just welcome to my drive https://drive.google.com/drive/folders/1gqNZHInbiQI7irsGT-TZbrCARxLEQhZE
I was watching a TV series on my phone when my phone did re,re,re,re,Re and rebooted on itself. This magisk module is buggy I think
im sory about that. what miui version you have? maybe you can deleted this module and change to new version for miui 14

Categories

Resources