[KERNEL][3.4.106][LP][ION] K^Kernel 3.4.106 v2.0 for LP 5.0 [11/03/2015][EOL] - Samsung Galaxy W I8150

{
"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.

Related

[KERNEL] Khaon's Kernel ♦ F2FS ♦ LINARO 4.7.4 ♦03/04

Hello everyone!! Want to try f2fs on your device? You are at the good place to give it a try!​
disclaimer said:
I am not responsible for any damage to your phone.
Read before downloading or posting in the thread:
Proceed with caution if you have no experience.
Click to expand...
Click to collapse
​
INTRODUCTION
I wanted to port f2fs for our device since it gives a nice performance boost. After few months of learning how to develop and program his own custom kernel here is my first personal release.
This is an open devDB xda project. Feel free to fill in bugs reports, feature(s) requests and reviews.
​
To those who don't know what is f2fs
F2FS (Flash-Friendly File System) is a flash file system created by Jaegeuk Kim (Hangul: 김재극) at Samsung for the Linux operating system kernel.[2]
The motive for F2FS was to build a file system that from the start takes into account the characteristics of NAND flash memory-based storage devices (such as solid-state disks, eMMC, and SD cards), which are widely used in computer systems ranging from mobile devices to servers.
Click to expand...
Click to collapse
Some benchmarks to point out the performance difference between EXT4 and F2FS
AndroGuide benchmarks : ext4 vs f2fs ( seemes to be using the most recent f2fs)
XDA's benchmark : ext4 vs f2fs
Phoronix's benchs ext4 vs btfrs vs f2fs
Another Phoronix's bench
Click to expand...
Click to collapse
Optipops features :
Kernel's features :​
Compiled with linaro 4.7.4 with optimized flags : O3, etc.
Linux 3.4.67: synced with cyanogen 's manta kernel git, google's common branch, some parts of the kernel updated to 3.4.108, and many fixes from CAF,linaro, blabla.
Governors : interactive, intelliactive,intellimm,conservative, ktoonservative , performance, userspace, nigtmahre(on request)(ask for some others if you prefer them over the one I provide)
I/O schedulers : noop, cfq, deadline, bfq(tweaked for nand devices),fiops,zen,sio
f2fs updated from upstream git(08 september 2015)
UV and OC both for the GPU AND CPU supported
Control for the gpu table thresholds
touchboost driver for cpu and gpu in replacement of crappy powerHAL touch interface ( thx @franciscofranco to have adapted qcom code to ageneric one)
arm optimized crypto algorithms.(for the ones that want to crypt their data)
f2fs crypto support
kernel neon support
kernel side touch boost driver
double tap to wake
AnyKernel2 Solution: Allow users to install the kernel on different distribution. It also detects the filesystem of your partitions to produce a correct fstab. ( f2fs is supported on any partition BUT system )
and many more patches(see my github!)
​installation instructions :​
Wipe Data Cache System
Flash The kernel
If issues are met, delete the
Code:
/sdcard/Android/data
folder.
IF YOU FACE ERROR/ISSUES PLEASE USE MY TWRP CUSTOM RECOVERIES AT this link
How To Migrate one partition from ext4 to f2fs(vice-versa):INSTRUCTIONS FOR TWRP 2.8.x.y
GunnerOnASpooky said:
1. Backup everything from your internal storage to your PC or what ever, if you are migrating /data partition,since the entire internal storage is going to get wiped out with format!!!!!!!!!!
2. Download the recovery from my gdrive
3. Flash the recovery from the bootloader (fastboot flash recovery XX.img)
4. Reboot into the newly flashed recovery
5. Choose wipe, advanced, then select the partition you want to change its filesystems
6. Choose the change file system option on the right
7. Select change file system again
8. Select f2fs(or ext4)
9. Repeat for all you wish to convert (I did system!/data/cache but /system partition should be working if you rom package flash extracts instead of flashing an image)
Click to expand...
Click to collapse
Credits:
@ktoonsez - for his kernel , KT- twrp and his work.
Team Win and @helicopter88 @Dees_Troy for their help.
Samsung for F2FS: heh!
@craigacgomez - for thunderkat kernel
@JustArchi - for his opti v3 build rom.
Cyanogendmod for their ROM
Linaro foundation for their toolchains
@faux123 for his intelliactive governor
@franciscofranco - for his work on touch boost drivers and mako kernel
@osm0sis - for AnyKernel2
Source:
KT-TWRP
kernel
Ramdisks
DOWNLOADS LINK​
XDA:DevDB Information
Khaon's project for Nexus 10, Kernel for the Google Nexus 10
Contributors
Khaon, ktoonsez,dees_troy,cyanogenmod,faux123,franciscofranco
Source Code: https://github.com/Khaon/kernel_samsung_manta
Kernel Special Features: This kernel is compiled with lastest UBERTC 4.8.5 It features UC/OC, UV, bfq, optimizaed compillation falgs, uksm, frandom, supports f2fs, dynamiclly mounts f2fs/ext4 partitions and more
Version Information
Status: Stable
Stable Release Date: 2015-01-03
Created 2014-09-27
Last Updated 2015-01-12
XDA:DevDB Information
Khaon's kernel for Nexus 10, Kernel for the Google Nexus 10
Contributors
Khaon, Cl3Kener, ktoonsez,dees_troy,cyanogenmod,faux123,franciscofranco,freak_97,despairfactor
Source Code: https://github.com/Khaon/kernel_samsung_manta
Kernel Special Features: This kernel is compiled with lastest UBERTC 4.8.5. It features UC/OC, UV, bfq, optimizaed compillation falgs, uksm, frandom, supports f2fs, dynamiclly mounts f2fs/ext4 partitions and more
Version Information
Status: Stable
Stable Release Date: 2015-07-13
Beta Release Date: 2015-04-17
Created 2014-09-27
Last Updated 2015-09-06
XDA:DevDB Information
Khaon's kernel for Nexus 10, Kernel for the Google Nexus 10
Contributors
Khaon, Cl3Kener, ktoonsez,dees_troy,cyanogenmod,faux123,franciscofranco,freak_97,despairfactor
Source Code: https://github.com/Khaon/kernel_samsung_manta
Kernel Special Features: This kernel is compiled with lastest UBERTC 4.8.5. It features UC/OC, UV, bfq, optimizaed compillation falgs, uksm, frandom, supports f2fs, dynamiclly mounts f2fs/ext4 partitions and more
Version Information
Status: Stable
Stable Release Date: 2015-09-08
Beta Release Date: 2015-04-17
Created 2014-09-27
Last Updated 2015-09-08
XDA:DevDB Information
Khaon's kernel for Nexus 10, Kernel for the Google Nexus 10
Contributors
Khaon, Cl3Kener, ktoonsez,dees_troy,cyanogenmod,faux123,franciscofranco,freak_97,despairfactor
Source Code: https://github.com/Khaon/kernel_samsung_manta
Kernel Special Features: This kernel is compiled with lastest UBERTC 4.8.5. It features UC/OC, UV, bfq, optimizaed compillation falgs, uksm, frandom, supports f2fs, dynamiclly mounts f2fs/ext4 partitions and more
Version Information
Status: Stable
Stable Release Date: 2015-09-08
Beta Release Date: 2015-04-17
Created 2014-09-27
Last Updated 2016-04-02
Changelogs
Recommanded applications
Kernel Audiutor for kernel management. It supports for now all kernel features but gpu overclocking.
Changelogs
from 08/04 to 13/08
Merge remote-tracking branch 'exynos/android-exynos-manta-3.4-lollipop-mr1' into khaon-new
Merge remote-tracking branch 'common/android-3.4' into khaon-new
gpu:mali:dvfs:set gpu boost sysfs interface in msecs instead of usecs
mali:dvfs:enhanced gpu voltage control
defconfig:enabled f2fs crypto
f2fs:fix compilation errors when crypto is enabled
KEYS: Add invalidation support
f2fs: fix the prototype of find_target_dentry
Revert "vfs: make it possible to access the dentry hash/len as one 64-bit entry"
f2fs: import upstream sources
defconfig:compile nightmare governor
cpufreq:add nightmare governor drivers/cpufreq/Makefile
ipv6: clean up anycast when an interface is destroyed
ipv6: sysctl to restrict candidate source addresses
dt2w: enhancements to prevent the device to be all the time awake when dt2w is disabled
Merge remote-tracking branch 'common/android-3.4' into HEAD
Fix incorrect conflict resolution in "vfs: Add setns support for the mount namespace"
proc: fix build broken by proc inode per namespace patch
Revert "android: drivers: Fix build broken by android debugfs fix."
android: drivers: Fix build broken by android debugfs fix.
proc: Allow proc_free_inum to be called from any context
proc: Usable inode numbers for the namespace file descriptors.
proc: Fix the namespace inode permission checks.
proc: Generalize proc inode allocation
vfs: Allow unprivileged manipulation of the mount namespace.
vfs: Only support slave subtrees across different user namespaces
vfs: Add a user namespace reference from struct mnt_namespace
vfs: Add setns support for the mount namespace
consitify do_mount() arguments
do_add_mount()/umount -l races
fs: introduce inode operation ->update_time
VFS: Comment mount following code
VFS: Make clone_mnt()/copy_tree()/collect_mounts() return errors
get rid of magic in proc_namespace.c
get rid of ->mnt_longterm
vfs: umount_tree() might be called on subtree that had never made it
brlocks/lglocks: API cleanups
brlocks/lglocks: turn into functions
lglock: remove online variants of lock
Revert "vfs: umount_tree() might be called on subtree that had never made it"
android: drivers: workaround debugfs race in binder
Revert "android: drivers: workaround debugfs race in binder"
ipv4: Missing sk_nulls_node_init() in ping_unhash().
f2fs:fix for linux 3.4
remove permissive mode by default
fs: Introduce FALLOC_FL_ZERO_RANGE flag for fallocate
fs: Add new flag(FALLOC_FL_COLLAPSE_RANGE) for fallocate
f2fs: disable the discard option when device doesn't support
f2fs: fix a deadlock for summary page lock vs. sentry_lock
f2fs: recovering broken superblock during mount
f2fs: truncate data blocks for orphan inode
f2fs: fix building on 32-bit architectures
f2fs: avoid buggy functions
f2fs: add compat_ioctl to provide backward compatability
f2fs: do not issue next dnode discard redundantly
f2fs: add default mount options to remount
f2fs: report unwritten area in f2fs_fiemap
f2fs: avoid value overflow in showing current status
f2fs: support FALLOC_FL_ZERO_RANGE
f2fs: support FALLOC_FL_COLLAPSE_RANGE
f2fs: introduce f2fs_replace_block() for reuse
block: introduce the BFQ-v7r8 I/O sched for 3.4
cpufreq.h:correct the prototype of cpufreq_frequency_table *cpufreq_frequency_get_table_ordered
doubletap2wake:initial reworking
ptrace: fix ptrace defect cause by a merge fail
android: drivers: workaround debugfs race in binder
neigh: Better handling of transition to NUD_PROBE state
New Build Breakage in branch: kernel-m-dev-tegra-flounder-3.10 @ 1960706
Revert "double tap to wake initial introduction"
Revert "DT2W: give the capacity to wake to the driver and let the driver awake"
Merge remote-tracking branch 'common/android-3.4' into khaon-new
gpu:mali:add control for the gpu table and gpu boost duration, also decreased the gpu governor poll rate from 100 ms to 75 ms
gpu:mali:added an sysfs interface for the gpu boost freq
invensense: testBatchAndFlush CTS issues
selinux: enable per-file labeling for debugfs files.
suspend: Return error when pending wakeup source is found.
ipv4: Missing sk_nulls_node_init() in ping_unhash().
added a sysfs interface for the gpu voltage
build script updated
thermal: increased the start throlle a bit for the gpu and increase for the mem
gpu:reworked the voltage and increased voltage for the 864 cache speed
DT2W: give the capacity to wake to the driver and let the driver awake
net/unix: sk_socket can disappear when state is unlocked
selinux: enable genfscon labeling for sysfs and pstore files
selinux: enable per-file labeling for debugfs files.
selinux: correctly label /proc inodes in use before the policy is loaded
thermal:tmu-exynos:reworked slightly the driver
suspend: Return error when pending wakeup source is found.
gpu/cpu oc: little changes for the voltage
slight rework of compil flags
gpu oc: introduction of 667Mhz and 720Mhz steps
double tap to wake initial introduction
f2fs: fix counting the number of inline_data inodes
f2fs: don not re-lookup nat cache with same nid
f2fs: remove unneeded f2fs_make_empty declaration
f2fs: issue discard with finally produced len and minlen
f2fs: introduce discard_map for f2fs_trim_fs
f2fs: revmove spin_lock for write_orphan_inodes
f2fs: split find_data_page according to specific purposes
f2fs: add need_dentry_mark
f2fs: fix race on allocating and deallocating a dentry block
f2fs: introduce dot and dotdot name check
f2fs: move get_page for gc victims
f2fs: add sbi and page pointer in f2fs_io_info
f2fs: add f2fs_may_inline_{data, dentry}
f2fs: clean up f2fs_lookup
f2fs: introduce f2fs_commit_super
f2fs: add f2fs_map_blocks
f2fs: add feature facility in superblock
f2fs: move existing definitions into f2fs.h
f2fs: add missing version info in superblock
f2fs: fix not to check IS_ERR for null pointer
f2fs: make has_fsynced_inode static
f2fs: add offset check routine before punch_hole() in f2fs_fallocate()
f2fs: use is_valid_blkaddr to verify blkaddr for readability
f2fs: fix wrong error hanlder in f2fs_follow_link
Revert "f2fs: enhance multi-threads performance"
touchboost:increased the interval from 150ms to 300ms
build script updated
gpu:arm:mali:add input touchboost
SELinux: ss: Fix policy write for ioctl operations
seccomp: Replace BUG(!spin_is_locked()) with assert_spin_lock
nf: IDLETIMER: Adds the uid field in the msg
drbd: merge_bvec_fn: properly remap bvm->bi_bdev
writeback: fix a subtle race condition in I_DIRTY clearing
writeback: Move I_DIRTY_PAGES handling
input: evdev: Move wake_lock_destroy call
f2fs:sync with upstream branch
ipv4: Missing sk_nulls_node_init() in ping_unhash().
SELinux: ss: Fix policy write for ioctl operations
seccomp: Replace BUG(!spin_is_locked()) with assert_spin_lock
nf: IDLETIMER: Adds the uid field in the msg
VFS: Make more complete truncate operation available to CacheFiles
Merge remote-tracking branch 'common/android-3.4' into khaon-new
SELinux: use deletion-safe iterator to free list
subsystem: CPU FREQUENCY DRIVERS- Set cpu_load calculation on current frequency
gpu:mali:dvfs:reworked stock dvfs table
f2fs: flush symlink path to avoid broken symlink after POR
f2fs: avoid abnormal behavior on broken symlink
f2fs: change 0 to false for bool type
arm:midguard:fixed bus frequency for 533 mhz
kernel: add support for gcc 5
arm:midgard:decreased up threshold for gpu governor
vfs: check if f_count is 0 or negative
hrtimer: Prevent remote enqueue of leftmost timers
hrtimer: Prevent all reprogramming if hang detected
hrtimer: Set expiry time before switch_hrtimer_base()
sched/fair: Improve the ->group_imb logic
sched/fair: Revert sched-domain iteration breakage
sched/fair: Propagate 'struct lb_env' usage into find_busiest_group
sched/fair: Add some serialization to the sched_domain load-balance walk
sched/fair: Let minimally loaded cpu balance the group
sched: Change rq->nr_running to unsigned int
sched/fair: Implement fast idling of CPUs when the system is partially loaded
sched: Fix inaccurate accounting for real-time task
sched: Micro-optimize the smart wake-affine logic
sched: Implement smarter wake-affine logic
sched/idle: Avoid spurious wakeup IPIs
sched/__wake_up_sync_key(): Fix nr_exclusive tasks which lead to WF_SYNC clearing
Merge remote-tracking branch 'common/android-3.4' into khaon-new
SELinux: per-command whitelisting of ioctls
security: lsm_audit: add ioctl specific auditing
SELinux: Update policy version to support constraints info
SELinux: add default_type statements
SELinux: allow default source/target selectors for user/role/range
selinux: add SOCK_DIAG_BY_FAMILY to the list of netlink message types
selinux/nlmsg: add XFRM_MSG_MAPPING
selinux/nlmsg: add XFRM_MSG_MIGRATE
selinux/nlmsg: add XFRM_MSG_REPORT
selinux/nlmsg: add XFRM_MSG_[NEW|GET]SADINFO
selinux/nlmsg: add XFRM_MSG_GETSPDINFO
selinux/nlmsg: add XFRM_MSG_NEWSPDINFO
cpufreq:interactive:let's try those tunnables
08/03
kernel
squashed commits from upstream kernel revision:
blktrace: fix accounting of partially completed requests
block: fix a probe argument to blk_register_region
vfs,proc: guarantee unique inodes in /proc
mm: fix aio performance regression for database caused by THP
ASoC: wm_hubs: Add missing break in hp_supply_event()
ALSA: fix oops in snd_pcm_info() caused by ASoC DPCM
can: dev: fix nlmsg size calculation in can_get_size()
ipv4: fix ineffective source address selection
proc connector: fix info leaks
net: heap overflow in __audit_sockaddr()
net: do not call sock_put() on TIMEWAIT sockets
tcp: do not forget FIN in tcp_shifted_skb()
tcp: must unclone packets before mangling them
OOM, PM: OOM killed task shouldn't escape PM suspend
ALSA: pcm: use the same dma mmap codepath both for arm and arm64
random: add and use memzero_explicit() for clearing data
crypto: more robust crypto_memneq
vfs: fix data corruption when blocksize < pagesize for mmaped data
target: Fix queue full status NULL pointer for SCF_TRANSPORT_TASK_SENSE
block: fix alignment_offset math that assumes io_min is a power-of-2
fix misuses of f_count() in ppp and netlink
fs: make cont_expand_zero interruptible
fs: Fix theoretical division by 0 in super_cache_scan().
framebuffer: fix border color
power: charger-manager: Fix NULL pointer exception with missing cm-fuel-gauge
kvm: don't take vcpu mutex for obviously invalid vcpu ioctls
int_sqrt: Improve 3x faster integer sqrt.
net: ping: Return EAFNOSUPPORT when appropriate.
android: base-cfg: turn off /dev/mem and /dev/kmem
net: ipv6: make "ip -6 route get mark xyz" work.
Set the iif for IPv6 packets as well.
Merge remote-tracking branch 'common/android-3.4' into khaon-new
sched: Fix reference to stale task_struct in try_to_wake_up()
Merge remote-tracking branch 'common/android-3.4' into khaon-new
fs/proc/task_mmu.c: add user-space support for resetting mm->hiwater_rss (peak RSS)
gpu:mali:
reworked gpu governor table
fs:
f2fs:updatd to upstream revision
defconfig:
defconfig:enabled neon features
defconfig:add NTFS support
cpufreq:
cpufreq:ktoonservative:made touch boost smarter
cpufreq:interactive:increased DOWN_LOW_LOAD_THRESHOLD to 20%
Rom(changes from optipop official sources):
core:
Add support for exec command in init scripts.
init: Fix memory corruption when sanitizing platform paths
init: Do not call recursive_restorecon on soc.0
init: Make restorecon_recursive work for /data/
fs_mgr: Skip filesystem check unless fs_type matches
Add libminshacrypt static lib
device/manta:
fstab:removed fastboot and flush_merge mount options
twrp:added fstab and updated config
manta: Use better mount options
BoardConfig:enabled f2fs for userdata image
Audio proprietaries from stock ROM
Add support for more filesystems
Enabled BLE, GATT, SMP (bluetooth low-energy)
OTG USB storage support
Update full_manta properties
ART dex2oat optimisation properties
Final final final N5 wallpaper.
fstab: enabled f2fs support
enable inline kernel building
audio_effects:added support for viper4audio
post install validation:resize the system partition after installing the rom
added reboot to recovery button and screenshot in the power menu
manta: add GlobalActionList config
call my vendor script
enable translucent decor
Remove obsolete dalvik.gc.type-precise
manta: Enable libm optimizations
enabled optipop optimizations
power: updated to my personnal library
added twrp config for manta
TWRP 2.8.5.0:
switched to cm12's f2fs tools(1.4.1)
use my kernel instead of stock one with f2fs patches
16/02
Kernel changelog :
f2fs synced with latest revision
merged aosp new commits
reworked ktoonservative a bit
picked few patches from upstream 3.4.106 kernel
Click to expand...
Click to collapse
20/01
Hello little update to the kernel:
introduced 864 Mhz cache frequencies for 1.6+++ freq.
merged with google's androidd 3.4 branch: squashed the following commits:
Merge remote-tracking branch 'common/android-3.4' into lollipop
ARM: pull in <asm/simd.h> from asm-generic
ARM: be strict about FP exceptions in kernel mode
ARM: move VFP init to an earlier boot stage
crypto: create generic version of ablk_helper
ARM: add support for kernel mode NEON
crypto: sha - Handle unaligned input data in generic sha256 and sha512.
crypto: sha512_generic - set cra_driver_name
crypto: sha512 - Expose generic sha512 routine to be callable from other modules
crypto: create generic version of ablk_helper
defconfig updated:enabled arm crypto
KEYS: Provide signature verification with an asymmetric key
KEYS: Asymmetric public-key algorithm crypto key subtype
KEYS: Implement asymmetric key type
crypto: add crypto_[un]register_shashes for [un]registering multiple shash entries at once
ARM: 8120/1: crypto: sha512: add ARM NEON implementation
ARM: 8119/1: crypto: sha1: add ARM NEON implementation
ARM: 8118/1: crypto: sha1/make use of common SHA-1 structures
crypto: arm-aes - fix encryption of unaligned data
CRYPTO: Fix more AES build errors
ARM: add .gitignore entry for aesbs-core.S
ARM: add support for bit sliced AES using NEON instructions
ARM: move AES typedefs and function prototypes to separate header
ARM: 7837/3: fix Thumb-2 bug in AES assembler code
ARM: 7723/1: crypto: sha1-armv4-large.S: fix SP handling
ARM: 7626/1: arm/crypto: Make asm SHA-1 and AES code Thumb-2 compatible
arm/crypto: Add optimized AES and SHA1 routines
sync with f2fs upstream branch
squashed few commits from CAF:
mm: vmscan: lock page on swap error in pageout
Staging: android: binder: More offset validation
Input: Send events one packet at a time
binder: NULL pointer reference
staging: binder: add vm_fault handler
staging: binder: Change binder mutex to rtmutex.
report if instablity!
02/01
khaon said:
kernel:
cpufreq:
cpufreq: Retain only online cpus in managed_policy->cpus
cpufreq:interactive:reworked tunnables
cpufreq:interactive: making sure cpufreq stays low when it needs to stay low
cpufreq:interactive:switched to touchboost driver
cpufreq: interactive: prevents the frequency to directly raise above the hispeed_freq from a lower frequency.
cpufreq: interactive: don't skip waking up speedchange_task if target_freq > policy->cur
cpufreq: interactive: delete timers for GOV_START
cpufreq: interactive: Fix null pointer dereference in interactive governor
cpufreq: interactive: Remove unnecessary cpu_online() check
cpufreq:ktoonservative:switch to generic input touchboost driver
Tweaks on OC (from @ktoonsez )
Makefile:
Makefile:removed graphite flags
exynos:
exynos:increased thermald throttling temp
drivers:
input: touchboost: add my generic touchboost driver governor agnostic. Its slightly changed from my N5, N4 and N7 version to adapt to this arch ( from @franciscofranco )
filesystems:
f2fs:sync with upstream branch
frandom: A fast random number generator
block:
block:bfq:adjusted tunnables for nand devices
block:bfq v7r7 v7r7: . BUGFIX: Prevent the OOM queue from being involved in the queue cooperation mechanism. In fact, since the requests temporarily redirected to the OOM queue could be redirected again to dedicated queues at any time, the state needed to correctly handle merging with the OOM queue would be quite complex and expensive to maintain. Besides, in such a critical condition as an out of memory, the benefits of queue merging may be little relevant, or even negligible. . IMPROVEMENT: Let the OOM queue be initialized only once. Previously, the OOM queue was reinitialized, at each request enqueue, with the parameters related to the process that issued that request. Depending on the parameters of the processes doing I/O, this could easily cause the OOM queue to be moved continuously across service trees, or even across groups. It also caused the parameters of the OOM queue to be continuously reset in any case. . CODE IMPROVEMENT. Performed some minor code cleanups, and added some BUG_ON()s that, if the weight of an entity becomes inconsistent, should better help understand why.
kernel:
sched: LOAD_FREQ (4*HZ+61) avoids loadavg Moire. From http://ripke.com/loadavg/moire
Merge remote-tracking branch 'common/android-3.4' into khaon-new
Rom:
build:use a modular list to disable O3 optimizations (fixes for example blue tooth crashes, report any new other FC's, if they related to the optimizations flags, I can try tracking down the relevant module and add it to the list.
audio_effects:added support for viper4audio
power: removed touch screen boost's code because we use kernel side touch boost driver
Click to expand...
Click to collapse
khaon said:
19/12
khaon said:
Rom:
powerHAL: reworked the driver to prevent overriding user's CPU freq speed to 1.7GHz.
powerHAL: reworked the driver to break early on screen interaction if the current cpu governor is not interactive
build:clang: compile the rom with Ofast instead of O3 ( since this flag enables ffast-math, it violates IEEE, thus it may bring instability or decrease in performance, report weird behaviour.
Kernel:
ext4 updated to 3.4.105
frandom in replacement for random and uradom
thermal throttling: squashed @ktoonsez thermal algorithm
various cherry-picking from 3.4.105 kernel and from linux kernel upstream(include among other lz4 up to date, various arm patches, few patches
Anykernel:
Full switching to anykernel2 solution by osmosis:
patch the fstab upon flashing the zip package accordingly to your partitions' file systems
post-init script added to tweak vm,io,sched,...
Click to expand...
Click to collapse
19/11
khaon said:
Changelog
TWRP: added unofficial 2.8.1.0 build supporting f2fs
Click to expand...
Click to collapse
20/10
khaon said:
Changelog
ROM:
20/10 unoficial nightly compiled with linaro 4.8.4 with this build
Shipped with my linux mainline kernel
Kernel :
updated to Linux3.4.104
sync with google's kernel 3.4 banch
sync with f2fs branch
frandom: A fast random number generator as a kernel module for Linux.
mm: Added file system dynamic read-ahead (Credits to Chad Gooldman)
block:bfq:updated to v7r6
Click to expand...
Click to collapse
23/09/14
Linux 3.4.103
Makefile : compiling with graphite
frandom: A fast random number generator as a kernel module for Linux.
Vibration interface goes LIVE
Click to expand...
Click to collapse
F2FS :
f2fs: refactor flush_nat_entries to remove costly reorganizing ops
f2fs: introduce FITRIM in f2fs_ioctl
f2fs: introduce cp_control structure
f2fs: use more free segments until SSR is activated
f2fs: change the ipu_policy option to enable combinations
f2fs: fix to search whole dirty segmap when get_victim
f2fs: fix to clean previous mount option when remount_fs
f2fs: skip punching hole in special condition
f2fs: support large sector size
f2fs: fix to truncate blocks past EOF in ->setattr
f2fs: update i_size when __allocate_data_block
f2fs: use MAX_BIO_BLOCKS(sbi)
f2fs: remove redundant operation during roll-forward recovery
f2fs: do not skip latest inode information
f2fs: fix roll-forward missing scenarios
f2fs: fix conditions to remain recovery information in f2fs_sync_file
f2fs: introduce a flag to represent each nat entry information
f2fs: use meta_inode cache to improve roll-forward speed
f2fs: fix double lock for inode page during roll-foward recovery
f2fs: fix a race condition in next_free_nid
Click to expand...
Click to collapse
Merge remote-tracking branch 'common/android-3.4' into origin/google_mainline:
seccomp: Use atomic operations that are present in kernel 3.4.
seccomp: implement SECCOMP_FILTER_FLAG_TSYNC
introduce for_each_thread() to replace the buggy while_each_thread()
seccomp: allow mode setting across threads
seccomp: introduce writer locking
seccomp: split filter prep from check and apply
sched: move no_new_privs into new atomic flags
ARM: add seccomp syscall
seccomp: add "seccomp" syscall
seccomp: split mode setting routines
seccomp: extract check/assign mode helpers
seccomp: create internal mode-setting function
MAINTAINERS: create seccomp entry
CHROMIUM: ARM: r1->r0 for get/set arguments
CHROMIUM: seccomp: set -ENOSYS if there is no tracer
CHROMIUM: ARM: arch/arm: allow a scno of -1 to not cause a SIGILL
CHROMIUM: arch/arm: select HAVE_ARCH_SECCOMP_FILTER
CHROMIUM: arch/arm: move secure_computing into trace; respect return code
CHROMIUM: arch/arm: add asm/syscall.h
samples/seccomp: fix dependencies on arch macros
seccomp: fix build warnings when there is no CONFIG_SECCOMP_FILTER
seccomp: ignore secure_computing return values
seccomp: use a static inline for a function stub
Documentation: prctl/seccomp_filter
Fix execve behavior apparmor for PR_{GET,SET}_NO_NEW_PRIVS
Add PR_{GET,SET}_NO_NEW_PRIVS to prevent execve from granting privs
Click to expand...
Click to collapse
13/09/14 :
Recovery:
Added twrp-2.8.0.0 supporting mounting f2fs partitions
Click to expand...
Click to collapse
Ramdisk :
[
sync with cm
using lz4 compression algorithm for both ramdisk and kernel image
unified all version into a single kernel : at boot a script check which is the fs of each partition
Click to expand...
Click to collapse
Khaon's kernel :
added lz4 kernel support for decompression
f2fs synced with upstream dev branch.
ARM :
optimized AES and SHA1 routines
sha1: add ARM NEON implementation
support neon in kernel
commits from former kernels
commits from linux/master, google's kernel/common, cyanogenmod's manta branches.
Click to expand...
Click to collapse
Click to expand...
Click to collapse
Reserved
Reserved
Thanks a lot for your work.
I'll try it with CM asap.
For more download convenience, can you upload an all-in-one zip with recovery and the 2 kernel somewhere else than github, it could be difficult to download from there. Thanks again.
yeah, i ll put it on mediafire.
Khaon said:
yeah, i ll put it on mediafire.
Click to expand...
Click to collapse
Awesome work man!
F2FS fully working on System/Data/Cache with SlimKat 5.8 weekly 4.4.3 and your F2FSall Ktoonsez kernel...
Nexus 10 is flying now!
EDIT: I'm getting a bunch of freeze-ups which result into reboots, is this happenng to anyone else?
Steps i took:
fastboot flashed kt-twrp
changed settings (including /system)
wiped what needed to be wiped
replaced Rom script( SlimKat weekly build 4.4.3)
installed rom, correct kernel, and gapps
Any advice would be appreciated!
I have some pb too. It's quite impossible for me to copy something from my usb stick to the internal memory. It freezes almost every time.
No problem in ext4 with same ROM.
Only problems I encountered were freezes/reboots for the very first hours of use, been so far in full f2fs with cyanogen M7 no probs here.
However, did you try with only cache+data partition?
Yep, I was on cm nightlies and data/cache only.
Now I'm trying omni, I will try with this ROM
Could you paste the content of the fstab please?
Envoyé de mon MI 2S en utilisant Tapatalk
About the fstab: What updates the fstype for the partitions we choose to convert to F2FS? Is TWRP 'smart' enough to write the proper /fstab.manta? I thought the boot.img in the ROM zip contained this file?
Really excited to switch to F2FS, I've been running it on my Arch boxes for a while now. Anyone worked on an auto updater for the updater-script? I'm on OmniROM and flash daily so it would be nice to not have to hand edit and re-pack the zip every day. I'd look into doing it but I'm not super confident I'd go about it the proper way.
b1g.p0ppa said:
About the fstab: What updates the fstype for the partitions we choose to convert to F2FS? Is TWRP 'smart' enough to write the proper /fstab.manta? I thought the boot.img in the ROM zip contained this file?
Really excited to switch to F2FS, I've been running it on my Arch boxes for a while now. Anyone worked on an auto updater for the updater-script? I'm on OmniROM and flash daily so it would be nice to not have to hand edit and re-pack the zip every day. I'd look into doing it but I'm not super confident I'd go about it the proper way.
Click to expand...
Click to collapse
For now, TWRP can detect when you are wiping your partition what tools it would has to use. I.e : if you choose to wipe data partition, system, etc.
And use the correct tool accordingly. But official version do not mount yet however f2fs partition.
The fstab is in the ramdisk, so contained yep in the boot.img. But there are few mount options, some may need to be activated in case of unstability
Khaon said:
For now, TWRP can detect when you are wiping your partition what tools it would has to use. I.e : if you choose to wipe data partition, system, etc.
And use the correct tool accordingly. But official version do not mount yet however f2fs partition.
The fstab is in the ramdisk, so contained yep in the boot.img. But there are few mount options, some may need to be activated in case of unstability
Click to expand...
Click to collapse
Thank you for your reply. Perhaps the best thing is to create a flashable zip to be run after ROM flash to install fstab.manta?
Also, FWIW, here's some sed commands to update your updater-script per the instructions in the OP:
Code:
sed -i 's/^mount("ext4".*\/system*/run_program\("\/sbin\/busybox", "mount", "\/system"); /' updater-script
sed -i 's/^format("ext4".*\/system*/run_program("\/sbin\/mkfs.f2fs", "\/dev\/block\/platform\/dw_mmc.0\/by-name\/system"); /' updater-script
b1g.p0ppa said:
Thank you for your reply. Perhaps the best thing is to create a flashable zip to be run after ROM flash to install fstab.manta?
Also, FWIW, here's some sed commands to update your updater-script per the instructions in the OP:
Code:
sed -i 's/^mount("ext4".*\/system*/run_program\("\/sbin\/busybox", "mount", "\/system"); /' updater-script
sed -i 's/^format("ext4".*\/system*/run_program("\/sbin\/mkfs.f2fs", "\/dev\/block\/platform\/dw_mmc.0\/by-name\/system"); /' updater-script
Click to expand...
Click to collapse
Hello I just added some executable java program that convert a rom script to be f2fs compatible.
Also, having less issues with lastest kernel build but I tried it on new roms. ROMs fully working so far and stable : liquidSmooth 3.1 & slimkat 4.9.
Before I was using CM11 M7 it was working but was encoutering some freezes/reboot- especially at the beginning - but then it was ok. I can not tell if this is still happening with cm rom.
I haven't test the pc program on windows if anyone could say it does work, thx!
EDIT : thank to @dust40; he told me the tool was working on Windows as well! Should work on mac too then i guess.
Well I successfully converted /data and cache to F2FS. I made the effort way more work than it had to be by preserving my data. WAY more work. Booted in recovery mode I tar'ed up /data to a exfat formatted usb-otg drive then ran the conversion. Ran into 'value too large for defined data type' errors from tar when extracting. I ended up extracting the tarball onto my workstation, deleting the file it crapped out on, tar'ing it all back up to the usb drive and re-running the extraction. Had to repeat this procedure a good dozen times and I ended up with messed up permissions on all my data. I don't suggest anyone try this because it would have taken much less time to just set up a fresh installation, but if you do here's some good commands to fix up permissions (TWRP's fix permissions command doesn't fix what I messed up). I found these commands at http://forum.xda-developers.com/showthread.php?t=2222297 but had to adjust them a little bit. The chown command has to be run when booted to android, the chmod commands can be run from either recovery or android. Reboot immediately after running. Best to run through adb shell than in an app on the tablet.
Code:
find /data/media/ -exec chown 1023,1023 {} \;
find /data/media/ -type d -exec chmod 775 {} \;
find /data/media/ -type f -exec chmod 664 {} \;
@Khaon, can you ask ktoonsez to compile 4.4.4 versions of the kernels? Latest OmniROM update for manta is 4.4.4 but will not boot with this kernel. And obviously I cannot run any other kernel as none others support F2FS. Thanks in advance! And thanks for putting this thread together. Without your good instructions I probably wouldn't have had the guts to convert this early.
One last thing, I can report that OmniROM works perfectly with /data and cache formatted as F2FS (once permissions are set right!). And since I preserved my data I have an apples to apples comparison of performance and it is noticeably faster and smoother!
kt-recovery stuck at splash screen
Hi,
I had originally posted this in ktmanta thread:
I have been running F2FS on cache+data for past 2 weeks and it works very well (still some strange system freezes, i will need to investigate further on that).
However, now, when i boot to recovery, screen stays stuck at splash screen showing "f2fs enabled by Ktoonsez..", and does not go anywhere else. i can still flash using adb, but clearly, it's less than convenient, and using twrp 2.7.10 is not an option, as it can't mount f2fs sdcard properly anyways.
with adb shell, i can see that all is mounted properly, f2fs or not, but obviously, it's less than ideal... i have attached /cache/recovery/log file .
Note: i connect usb cable 2 to 3 mn after waiting for splash screen to go away, and i pulled recovery log at that moment. this was also the only way to get out of this stuck mode, via 'adb reboot' command.
i also tried to re-flash recovery via fastboot, but that made no difference.
any help appreciated !
@ericp2 @b1g.p0ppa
Can you just try this recovery and tell me if you are running any issue? This is just last official twrp 2.7.1.0.
Just formated and installed a new ROM, ran into no issue, guess should be the same for you .
b1g.p0ppa said:
Well I successfully converted /data and cache to F2FS. I made the effort way more work than it had to be by preserving my data. WAY more work. Booted in recovery mode I tar'ed up /data to a exfat formatted usb-otg drive then ran the conversion. Ran into 'value too large for defined data type' errors from tar when extracting. I ended up extracting the tarball onto my workstation, deleting the file it crapped out on, tar'ing it all back up to the usb drive and re-running the extraction. Had to repeat this procedure a good dozen times and I ended up with messed up permissions on all my data. I don't suggest anyone try this because it would have taken much less time to just set up a fresh installation, but if you do here's some good commands to fix up permissions (TWRP's fix permissions command doesn't fix what I messed up). I found these commands at http://forum.xda-developers.com/showthread.php?t=2222297 but had to adjust them a little bit. The chown command has to be run when booted to android, the chmod commands can be run from either recovery or android. Reboot immediately after running. Best to run through adb shell than in an app on the tablet.
Code:
find /data/media/ -exec chown 1023,1023 {} \;
find /data/media/ -type d -exec chmod 775 {} \;
find /data/media/ -type f -exec chmod 664 {} \;
One last thing, I can report that OmniROM works perfectly with /data and cache formatted as F2FS (once permissions are set right!). And since I preserved my data I have an apples to apples comparison of performance and it is noticeably faster and smoother!
Click to expand...
Click to collapse
Glad you like the kernel running this, if I understood correctly, you wanted to back up the internal storage( so /data/media/0) and your apk folder to an exfat usb drive you mounted with otg? If the fs of this one was exfat that is probably the cause of your issues, I am not even sure our tablet nativly supports exfat( isn't a samsung fs that allows 32GB ++ partition size?). Lastest Omni kernel is booting I assume?
Khaon said:
@ericp2 @b1g.p0ppa
Can you just try this recovery and tell me if you are running any issue? This is just last official twrp 2.7.1.0.
Just formated and installed a new ROM, ran into no issue, guess should be the same for you .
Click to expand...
Click to collapse
Issue fixed. this version of TWRP starts correctly, and f2fs formatted sdcard can be listed, so i can again flash CM updates.
many thanks!

[KERNEL][3.4.106][KK][ION] K^Kernel 3.4.106 v3.0 for KK 4.4 [05/04/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 KitKat rom (CM 11.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-11.0 repo branch of DevCon Team
- Built with my custom Linaro 4.9.3-2015.03 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 MM ION heap through CMA (Contiguous Memory Allocator)
- Dynamic memory allocation of PMEM ADSP heap through CMA (Contiguous Memory Allocator)
- 396MB, 406MB or 416MB 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
- Fast Random generator (frandom) support (click for more details)
- Dynamic FSync v1.2 (click for more details)
- Dynamic dirty page writebacks (click for more details)
- VM tweaks for performance and less battery consumption
- Revised LowMemoryKiller parameters for better performance (click for more details)
- 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 KitKat ION+PMEM ADSP:
K^Kernel KK-4.4 Mediafire Folder
[QRCODE]https://www.mediafire.com/folder/j5xjtz6twze6l[/QRCODE]
- v3.0 -
for CM 11.0
and the other roms based on this rom.
Note: You must use the CWM recovery with new partition assignments you may find inside CM 11.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[/B]
Kernel sources (on GitHub):
Development branch of K^Kernel 3.4 for KK 4.4 ION+PMEM ADSP
​
Useful info:
- Special features and sysfs settings
- Frequently asked questions
​
Tables:
​
Changelog:
Code:
[B]05/04/2015 - K^Kernel 3.4 v3.0 for KitKat ION+PMEM ADSP[/B]
- Kernel 3.4.106
- Built with my latest custom Linaro 4.9.3-2015.03 toolchain optimized for Cortex-A8
- i2c: chips: fsa9480: Add support for charging in USB-OTG mode (credits to tobigun)
- 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)
- 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)
- 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)
- 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)
- msm: camera: s5k4ecgx: Set mount angle from platform data (credits to sirmordred)
- USB: gadget: qdss: Fix strncmp length usage (credits to Kumar Gala)
- msm: camera: Increased MAX_PMEM_CFG_BUFFERS (credits to sirmordred)
- Set the iif for IPv6 packets as well. (credits to Lorenzo Colitti)
- net: ipv6: make "ip -6 route get mark xyz" work. (credits to Lorenzo Colitti)
- diag: Make fixes to diag_switch_logging (credits to Ravi Aravamudhan)
- seq_file: always update file->f_pos in seq_lseek() (credits to Devin Kim)
- cgroup: remove synchronize_rcu() from cgroup_attach_{task|proc}() (credits to Devin Kim)
- vfs: check if f_count is 0 or negative (credits to Shengzhe Zhao)
[B]31/12/2014 - K^Kernel 3.4 v2.0 for KitKat ION+PMEM ADSP[/B]
- Kernel 3.4.105
- Built with my latest custom Linaro 4.9.3-2014.12 toolchain optimized for Cortex-A8
- Revert "prctl: adds the capable(CAP_SYS_NICE) check to PR_SET_TIMERSLACK_PID." (credits to arco68)
- Revert "prctl: adds PR_SET_TIMERSLACK_PID for setting timer slack of an arbitrary thread." (credits to arco68)
- Revert "Fix execve behavior apparmor for PR_{GET,SET}_NO_NEW_PRIVS" (credits to arco68)
- Revert "Add PR_{GET,SET}_NO_NEW_PRIVS to prevent execve from granting privs" (credits to arco68)
- prctl: adds PR_SET_TIMERSLACK_PID for setting timer slack of an arbitrary thread. (credits to Ruchi Kandoi)
- prctl: adds the capable(CAP_SYS_NICE) check to PR_SET_TIMERSLACK_PID. (credits to Ruchi Kandoi)
- mm: fix prctl_set_vma_anon_name (credits to Colin Cross)
- introduce for_each_thread() to replace the buggy while_each_thread() (credits to Oleg Nesterov)
- 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 default and custom defconfigs (credits to Christopher83)
[B]12/11/2014 - K^Kernel 3.4 v1.8.5 for KitKat ION+PMEM ADSP[/B]
- Kernel 3.4.104
- Built with my latest custom Linaro 4.9.2-2014.10 toolchain optimized for Cortex-A8
- Revert "mm: Added filesystem dynamic read-ahead (Credits to Chad Gooldman)" (credits to tycoo)
- Update lcdc_samsung_ancora.h (credits to Madridii)
[B]26/10/2014 - K^Kernel 3.4 v1.8 for KitKat ION+PMEM ADSP[/B]
- Kernel 3.4.104
- Built with my latest custom Linaro 4.9.2-2014.09 toolchain optimized for Cortex-A8
- Fix ancora and ancora_tmo vibrator regulators (credits to sirmordred)
- Revert "Staging: android: binder: More offset validation." (credits to arco68)
- msm: vidc: cache-flush encoder output buffers after alloc (credits to Praveen Chavan)
- seq_file: remove "%n" usage from seq_file users (credits to Tetsuo Handa)
- seq_file: introduce seq_setwidth() and seq_pad() (credits to Tetsuo Handa)
- vsprintf: ignore %n again (credits to Kees Cook)
- target/rd: Refactor rd_build_device_space + rd_release_device_space (credits to Nicholas Bellinger)
- board-ancora_tmo: Minor updates and changes (credits to doadin)
- block: row: Remove warning massage from add_request (credits to Tatyana Brokhman)
- Revert "Revert "mmc: core: remove the polling for BKOPS completion"" (credits to arco68)
- mmc: print an error on FLUSH timeout (credits to Maya Erez)
- mmc: block: flush request requeue after timeout. (credits to Maya Erez)
- mmc: core: increase timeout for disable cache operation (credits to Maya Erez)
- mmc: core: do not reinsert prepeared FUA and FLUSH requests in stop flow (credits to Konstantin Dorfman)
- mmc: queue: do not clean current request when urgent in progress (credits to Konstantin Dorfman)
- mmc: core: fix block request queue hang during data crc errors (credits to Sujit Reddy Thumma)
- mmc: core: continue to wait, when unblocked by signal (credits to Konstantin Dorfman)
- msm7x30: Revert SDC channels to upstream (credits to arco68)
- msm7x30: samsung: Remove PMIC_GPIO_SD_DET (credits to arco68)
- msm7x30: samsung: Disable sdc2_cfg_data (credits to arco68)
- msm7x30: samsung: Switch rest of boards to use msm_gpios_disable_free (credits to arco68)
- defconfig: Enable CONFIG_PM_RUNTIME (credits to arco68)
- fsa9480: corrected charging through USB 3.0 port also removed trailing spaces and some cleanups (credits to CastagnaIT)
- defconfigs: Updated defconfigs (credits to sirmordred)
- fm_si4709: samsung jb updates *GT-I9100 sources (credits to CastagnaIT)
- fs: exfat: Make optional (credits to arco68)
- defconfigs: Disable exFAT kernel driver (credits to arco68)
- msm: camera: Replace idle wakelocks with pm_qos (credits to arco68)
- touchscreen: ancora: Add INPUT_PROP_DIRECT flag (credits to sirmordred)
- msm: kgsl: Remove all reference to CONFIG_ANDROID_PMEM (credits to Laura Abbott)
- msm: Remove all references to CONFIG_ANDROID_PMEM (credits to Laura Abbott)
- msm: Remove PMEM dependency for MSM7KV2_AUDIO (credits to Michael Bestas)
- Revert "freezer: shorten freezer sleep time using exponential backoff" (credits to arco68)
- mmc: core: enhance card removal judgement for slow removal (credits to Kevin Liu)
- mmc: core: invoke low power mode if card is not present (credits to Asutosh Das)
- block: row: Fix crash when adding a new field in bio struct (credits to Tanya Brokhman)
[B]13/09/2014 - K^Kernel 3.4 v1.7 for KitKat ION+PMEM ADSP[/B]
- Kernel 3.4.103
- Built with my latest custom Linaro 4.9.2-2014.08 toolchain optimized for Cortex-A8
- Removed bcmdhd driver (credits to CastagnaIT)
- net: wireless: bcmdhd: bring bcmdhd version 1.28-27 (credits to CastagnaIT)
- net: wireless: bcmdhd: Fix SUPPORT_PM2_ONLY option for p2p (credits to Dmitry Shmidt)
- net: wireless: bcmdhd: Update to version 1.88.4 (credits to Dmitry Shmidt)
- net: wireless: bcmdhd: Update to version 1.88.6 (credits to Dmitry Shmidt)
- net: wireless: bcmdhd: Update to version 1.88.7 (credits to Dmitry Shmidt)
- net: wireless: bcmdhd: Fix WEP-104 authentication (credits to Dmitry Shmidt)
- net: wireless: bcmdhd: Update to version 1.88.10 (credits to Dmitry Shmidt)
- net: wireless: bcmdhd: Prevent recursive call of cfg80211_sched_scan_stopped() (credits to Dmitry Shmidt)
- net: wireless: bcmdhd: Enable full scan on PNO event (credits to Dmitry Shmidt)
- net: wireless: bcmdhd: Update to version 1.88.11 (credits to Dmitry Shmidt)
- net: wireless: bcmdhd: Update to version 1.88.16 (credits to Dmitry Shmidt)
- net: wireless: bcmdhd: Close p2p0 device in wl_down (credits to Dmitry Shmidt)
- net: wireless: bcmdhd: Update to version 1.88.21 (credits to Dmitry Shmidt)
- net: wireless: bcmdhd: Fix tdls processing from cfg80211 (credits to Dmitry Shmidt)
- net: wireless: bcmdhd: Update to version 1.88.27 (credits to Dmitry Shmidt)
- net: wireless: bcmdhd: Fix NDO functionality (credits to ECCO PARK)
- net: wireless: bcmdhd: Enable p2p support bits for p2p device (credits to Dmitry Shmidt)
- net: wireless: bcmdhd: Remove PASS_ARP_PACKET define (credits to Dmitry Shmidt)
- net: wireless: bcmdhd: Remove chatty message from wl_cfgp2p_act_frm_search (credits to Dmitry Shmidt)
- net: wireless: bcmdhd: Update to version 1.88.41 (credits to Dmitry Shmidt)
- net: wireless: bcmdhd: Update to version 1.88.42 (credits to Dmitry Shmidt)
- net: wireless: bcmdhd: Update to version 1.88.45 (credits to Ecco Park)
- net: wireless: bcmdhd: enable WL_IFACE_COMB_NUM_CHANNELS (credits to Ecco Park)
- net: wireless: bcmdhd: Update Location Service code (credits to Ecco Park)
- net: wireless: bcmdhd: Fix of Wireless Location Service (credits to Ecco Park)
- net: wireless: bcmdhd: Fix of Wireless Location Service (credits to Ecco Park)
- net: wireless: bcmdhd: new feature for Roaming. (credits to Ecco Park)
- net: wireless: bcmdhd: Fixed Coverity issue. (credits to Ecco Park)
- net: wireless: bcmdhd: fix for negative padding (credits to Ecco Park)
- net: wireless: bcmdhd: Fixed Wi-Fi Location Service issues. (credits to Ecco Park)
- net: wireless: bcmdhd: add code for WLS service. (credits to Ecco Park)
- net: wireless: bcmdhd: Fix country checking (credits to Dmitry Shmidt)
- net: wireless: bcmdhd: fixed power consumption issue of P2P. (credits to Ecco Park)
- net: wireless: bcmdhd: Fixed a problem of buganizer issue (11190960) (credits to Ecco Park)
- net: wireless: bcmdhd: reduced the wakelock time of RX packet (credits to Ecco Park)
- net: wireless: bcmdhd: cancel current PNO if connection will happen (credits to Ecco Park)
- net: wireless: bcmdhd: Change DTIM skip policy in suspend (credits to Ecco Park)
- net: wireless: bcmdhd: Set MAX_DTIM_ALLOWED_INTERVAL to 600 (credits to Dmitry Shmidt)
- net: wireless: bcmdhd: Enable IPv6 RA filter feature (credits to Ecco Park)
- net: wireless: bcmdhd: enable TDLS_auto_mode (credits to Ecco Park)
- net: wireless: bcmdhd: Sync with N5 branch (credits to Dmitry Shmidt)
- net: wireless: bcmdhd: Change the parameter for TDLS (credits to Ecco Park)
- net: wireless: bcmdhd: support Hotspot 2.0 release 1.0 (credits to Ecco Park)
- net: wireless: bcmdhd: Add WIPHY_WOWLAN_ANY support (credits to Dmitry Shmidt)
- net: wireless: bcmdhd: Add support for hidden ssid PNO scan (credits to Ashwin)
- net: wireless: bcmdhd: added samsung specific code (credits to CastagnaIT)
- net: wireless: bcmdhd: readded samsung MCAST_LIST_ACCUMULATION code updated from jf (credits to CastagnaIT)
- qdsp5v2: Fix a null pointer dereference. (credits to Blefish)
[B]11/09/2014 - K^Kernel 3.4 v1.6 for KitKat ION+PMEM ADSP[/B]
- Kernel 3.4.103
- Built with my latest custom Linaro 4.9.2-2014.08 toolchain optimized for Cortex-A8
- drivers: usb: Use Android device as USB keyboard/mouse (credits to Pranav Vashi)
- touchscreen: ancora: Update touchscreen API (credits to sirmordred)
- touchscreen: ancora: Add missing BTN_TOUCH (credits to arco68)
- mmc: msm_sdcc: Remove unnecessary delay in interrupt context (credits to Venkat Gopalakrishnan)
- USB: msm_otg: Fix host mode suspend bug (credits to Sujeet Kumar)
- USB: msm_otg: Fix a bug in charger detection procedure (credits to Pavankumar Kondeti)
- msm: kgsl: Force the ME off before reading the microcode (credits to Jordan Crouse)
- msm: kgsl: Increase the timeout value for fault detection (credits to Shubhraprakash Das)
- msm: kgsl: Don't hold the refernce to the process private in kgsl create context (credits to Gaurav Gagrani)
- n_tty: Fix n_tty_write crash when echoing in raw mode (credits to Peter Hurley)
- msm_bam_rmnet: Fix potential memory corruption (credits to Subash Abhinov Kasiviswanathan)
- fs: exFAT: Update to v1.2.9 (credits to arco68)
- msm: qdsp5v2: Convert all audio devices to ION. (credits to Blefish)
- msm: qdsp5v2: Minor code sync. (credits to Blefish)
- devices-msm7x30: #ifdef around msm_nand device (credits to arco68)
- board-ancora: Minor updates and changes (credits to arco68)
- lcd: ancora: Adjust porch values for rev. 2 panels (credits to arco68)
- lcdc:ancora:Adjust porch values for rev. 1 panels too (credits to arco68 and sirmordred)
[B]01/08/2014 - K^Kernel 3.4 v1.5 for KitKat ION+PMEM ADSP[/B]
- Kernel 3.4.101
- Built with my latest custom Linaro 4.9.1-2014.07 toolchain optimized for Cortex-A8
- usb: gadget: f_accessory: Enabled Zero Length Packet (ZLP) for acc_write (credits to Anson Jacob)
- cgroup: Take css_set_lock from cgroup_css_sets_empty() (credits to Hans de Goede)
- cgroup: Fix use after free of cgrp (cgrp->css_sets) (credits to Hans de Goede)
- Revert "s3c2410_wdt: Add locking to cpu frequency transition notifier" (credits to Mark Salyzyn)
- usb: gadget: f_audio_source: Fixed USB Audio Class Interface Descriptor (credits to Anson Jacob)
- net: Zeroing the structure ethtool_wolinfo in ethtool_get_wol() (credits to Avijit Kanti Das)
- Remove stray bcm4329 files (credits to arco68)
- fs: exFAT: Update to v1.2.7 (credits to arco68)
- ARM: 7583/1: decompressor: Enable unaligned memory access for v6 and above (credits to Dave Martin)
[B]14/07/2014 - K^Kernel 3.4 v1.4 for KitKat ION+PMEM ADSP[/B]
- Kernel 3.4.98
- Built with my latest custom Linaro 4.9.1-2014.06 toolchain optimized for Cortex-A8
- misc: pmem: Retry again a few times if DMA allocation fails (credits to Christopher83)
- defconfig: Disable KSM (credits to arco68)
- Revert "msm: mdp: Update sync pt. behaviour" (credits to arco68)
- cpufreq: Persist cpufreq time in state data across hotplug (credits to Ruchi Kandoi)
- prctl: adds the capable(CAP_SYS_NICE) check to PR_SET_TIMERSLACK_PID. (credits to Ruchi Kandoi)
- net: wireless: Increase scan entry expiration to fit new scan time (credits to Dmitry Shmidt)
- DMA: PL330: Fix racy mutex unlock (credits to Javi Merino)
- cpufreq: fix sleeping in atomic context when realloc freq_table for all_time_in_state (credits to Minsung Kim)
- s3c2410_wdt: Add locking to cpu frequency transition notifier (credits to Mark Salyzyn)
- net: core: Support UID-based routing. (credits to Lorenzo Colitti)
- Handle 'sk' being NULL in UID-based routing. (credits to Sreeram Ramachandran)
- rtc: alarm: Squashed revert of power-on alarm feature and related commits (credits to Christopher83)
- binder: search for receiving context pid in global namespace (credits to Ricardo Mendoza)
- staging: binder: add vm_fault handler (credits to Vinayak Menon)
- Staging: android: binder: More offset validation. (credits to Arve Hjønnevåg)
[B]05/07/2014 - K^Kernel 3.4 v1.3 for KitKat ION+PMEM ADSP[/B]
- Kernel 3.4.96
- Built with my latest custom Linaro 4.9.1-2014.06 toolchain optimized for Cortex-A8
- block: bfq: Squashed update from BFQ-v7r4 to BFQ-v7r5 (credits to arco68)
- misc: pmem: Support for dynamic allocation through CMA (credits to Christopher83)
- msm7x30: Simplify the code for hybrid memory allocations on board side (credits to Christopher83)
- msm7x30: Allow to optionally enable the use of CMA for ION MM and PMEM ADSP heaps (credits to Christopher83)
- msm7x30: Use CMA for PMEM ADSP (credits to Christopher83)
- msm7x30: Update defconfigs (credits to Christopher83)
- msm7x30: Use a higher memory allocation if CMA is used for ION MM heap (credits to Christopher83)
[B]25/06/2014 - K^Kernel 3.4 v1.2 for KitKat ION+PMEM ADSP[/B]
- Kernel 3.4.94
- Built with my latest custom Linaro 4.9.1-2014.06 toolchain optimized for Cortex-A8
- msm: rpc: add shutdown and restart handler for rpc (credits to Angshuman Sarkar)
- msm: rpc: add shutdown and restart handler for rpc (credits to Arun Kumar Neelakantam)
- msm: restart_7k: Disable local IRQ interrupt (credits to Tirupathi Reddy)
- msm7x30: Disable unsupported features (credits to Blefish)
- misc: pmem: Add support for CMA (credits to Blefish)
- msm7x30: Use CMA for PMEM ADSP (credits to Christopher83 and Blefish)
- New memory configurations with 396MB, 406MB or 416MB of free RAM and
everything should be working, including camera, camcorder and video playback (credits to Christopher83)
[B]23/06/2014 - K^Kernel 3.4 v1.1 for KitKat ION+PMEM ADSP[/B]
- Kernel 3.4.94
- Built with my latest custom Linaro 4.9.1-2014.06 toolchain optimized for Cortex-A8
- power: ancora_battery: Remove trailing spaces (credits to Christopher83)
- power: ancora_tmo_battery: Remove trailing spaces (credits to Christopher83)
- power: apache_battery: Remove trailing spaces (credits to Christopher83)
- power: ancora_tmo_battery: Add Battery Life eXtender (BLX) support (credits to Christopher83)
- power: apache_battery: Add Battery Life eXtender (BLX) support (credits to Christopher83)
- power: apache_battery: 100% battery notification after charger unplug (credits to Christopher83)
- power: ancora_battery: Increase battery check interval from 5 seconds to 15 seconds (credits to Christopher83)
- power: ancora_tmo_battery: Increase battery check interval from 5 seconds to 15 seconds (credits to Christopher83)
- power: apache_battery: Increase battery check interval from 5 seconds to 15 seconds (credits to Christopher83)
- ancora_tmo: High memory configurations (credits to Christopher83)
- apache: High memory configurations (credits to Christopher83)
- msm7x30: Better manage cpu frequencies for MSM8255 and MSM8255T (credits to Christopher83)
- ancora_tmo: Add custom defconfigs (credits to Christopher83)
- apache: Add custom defconfigs (credits to Christopher83)
- arm: Add a config option to use GLibC memcpy and memmove versions (credits to Christopher83)
- msm7x30: Update defconfigs to use GLibC versions of memcpy and memmove (credits to Christopher83)
- mmc: msm_sdcc: Advertise erase capability for ancora_tmo and apache (credits to arco68)
- sec_jack: updated driver (credits to CastagnaIT)
- mm: cma: fix alignment requirements for contiguous regions (credits to Marek Szyprowski)
- drivers: cma: represent physical addresses as phys_addr_t (credits to Vitaly Andrianov)
- drivers: dma-contiguous: refactor dma_alloc_from_contiguous() (credits to Michal Nazarewicz)
- mm: cma: fix condition check when setting global cma area (credits to Marek Szyprowski)
- drivers: dma-contiguous: clean source code and prepare for device tree (credits to Marek Szyprowski)
- drivers: dma-contiguous: add initialization from device tree (credits to Marek Szyprowski)
- cma: Remove __init annotations from data structures (credits to Laura Abbott)
- cma: Fix up devicetree bindings (credits to Laura Abbott)
- cma: Add support for associating regions by name (credits to Laura Abbott)
- cma: Remove restriction on region names (credits to Laura Abbott)
- cma: use MEMBLOCK_ALLOC_ANYWHERE for placing CMA regions (credits to Laura Abbott)
- cma: Add API to get the start address of a CMA region (credits to Laura Abbott)
- cma: Remove potential deadlock situation (credits to Laura Abbott)
- cma: Add support for memory limits (credits to Laura Abbott)
- cma: Make locking finer grained (credits to Laura Abbott)
- cma: Drop the right mutex (credits to Laura Abbott)
- dma-contiguous: Return 'zero' pfn in case of error (credits to Chintan Pandya)
- ARM: dma-mapping: fix incorrect freeing of atomic allocations (credits to Aaro Koskinen)
- mm: vmalloc: use const void * for caller argument (credits to Marek Szyprowski)
- ARM: dma-mapping: remove custom consistent dma region (credits to Marek Szyprowski)
- mm: push lru index into shrink_[in]active_list() (credits to Konstantin Khlebnikov)
- mm: vmscan: remove lumpy reclaim (credits to Mel Gorman)
- mm: vmscan: do not stall on writeback during memory compaction (credits to Mel Gorman)
- mm: vmscan: remove reclaim_mode_t (credits to Mel Gorman)
- mm: remove lru type checks from __isolate_lru_page() (credits to Konstantin Khlebnikov)
- mm/memcg: kill mem_cgroup_lru_del() (credits to Konstantin Khlebnikov)
- mm/memcg: scanning_global_lru means mem_cgroup_disabled (credits to Hugh Dickins)
- mm/memcg: use vm_swappiness from target memory cgroup (credits to Konstantin Khlebnikov)
- mm: remove swap token code (credits to Rik van Riel)
- mm/vmscan: store "priority" in struct scan_control (credits to Konstantin Khlebnikov)
- kernel: cgroup: push rcu read locking from css_is_ancestor() to callsite (credits to Johannes Weiner)
- mm: memcg: count pte references from every member of the reclaimed hierarchy (credits to Johannes Weiner)
- mm/vmscan: push zone pointer into shrink_page_list() (credits to Konstantin Khlebnikov)
- mm/vmscan: push lruvec pointer into isolate_lru_pages() (credits to Konstantin Khlebnikov)
- mm/vmscan: remove update_isolated_counts() (credits to Konstantin Khlebnikov)
- mm: cma: discard clean pages during contiguous allocation instead of migration (credits to Minchan Kim)
- cma: decrease cc.nr_migratepages after reclaiming pagelist (credits to Minchan Kim)
- mm/compaction.c: fix deferring compaction mistake (credits to Minchan Kim)
- mm: compaction: Abort async compaction if locks are contended or taking too long (credits to Mel Gorman)
- mm: compaction: update comment in try_to_compact_pages (credits to Mel Gorman)
- mm: compaction: capture a suitable high-order page immediately when it is made available (credits to Mel Gorman)
- mm: compaction: abort compaction loop if lock is contended or run too long (credits to Shaohua Li)
- mm: compaction: move fatal signal check out of compact_checklock_irqsave (credits to Mel Gorman)
- mm: compaction: Update try_to_compact_pages()kerneldoc comment (credits to Mel Gorman)
- mm: compaction: acquire the zone->lru_lock as late as possible (credits to Mel Gorman)
- mm: compaction: acquire the zone->lock as late as possible (credits to Mel Gorman)
- mm: compaction: cache if a pageblock was scanned and no pages were isolated (credits to Mel Gorman)
- mm: cma: WARN if freed memory is still in use (credits to Marek Szyprowski)
- mm: do not use page_count() without a page pin (credits to Minchan Kim)
- mm: clean up __count_immobile_pages() (credits to Minchan Kim)
- mm: compaction: Restart compaction from near where it left off (credits to Mel Gorman)
- mm: compaction: clear PG_migrate_skip based on compaction and reclaim activity (credits to Mel Gorman)
- CMA: migrate mlocked pages (credits to Minchan Kim)
- mm: compaction: correct the nr_strict va isolated check for CMA (credits to Mel Gorman)
- mm: compaction: validate pfn range passed to isolate_freepages_block (credits to Mel Gorman)
- mm: compaction: Move migration fail/success stats to migrate.c (credits to Mel Gorman)
- mm: compaction: Add scanned and isolated counters for compaction (credits to Mel Gorman)
- mm: cma: skip watermarks check for already isolated blocks in split_free_page() (credits to Marek Szyprowski)
- mm: compaction: partially revert capture of suitable high-order page (credits to Mel Gorman)
- compaction: fix build error in CMA && !COMPACTION (credits to Minchan Kim)
- mm: vmscan: do not keep kswapd looping forever due to individual uncompactable zones (credits to Johannes Weiner)
- mm: vmscan: Fix build error (credits to Christopher83)
- msm: Allow lowmem to be non contiguous and mixed. (credits to Neeti Desai)
- msm: Increase the kernel virtual area to include lowmem (credits to Neeti Desai)
- mm: Remove __init annotations from free_bootmem_late (credits to Laura Abbott)
- kernel/lib: add additional debug capabilites for data corruption (credits to Syed Rameez Mustafa)
- mm: panic on the first bad page table entry access (credits to Pushkar Joshi)
- mm: Update is_vmalloc_addr to account for vmalloc savings (credits to Laura Abbott)
- slub: tid must be retrieved from the percpu area of the current processor (credits to Christoph Lameter)
- mm: vmscan: Move pages that fail swapout to LRU active list (credits to Olav Haugan)
- mm: swap: Rate limit swap write errors (credits to Olav Haugan)
- mm: change freepage state correctly in __isolate_free_page (credits to Laura Abbott)
- mm: make is_vmalloc_addr lockless (credits to Laura Abbott)
- mm/compaction: Break out of loop on !PageBuddy in isolate_freepages_block (credits to Laura Abbott)
- mm: compaction: fix bit ranges in {get,clear,set}_pageblock_skip() (credits to Bartlomiej Zolnierkiewicz)
- msm: kgsl: hold a process_private refcount in process_mem_print (credits to Jeremy Gebben)
- msm: kgsl: Look up the process struct in process_mem_open() (credits to Jordan Crouse)
- msm: kgsl: prevent kgsl_get_pagetable from returning a destroyed pt (credits to Jeff Boody)
- msm: kgsl: Fix spinlock recursion in destroy pagetable (credits to Prakash Kamliya)
- gpu: ion: Don't call virt_to_page on addresses from dma_alloc (credits to Laura Abbott)
- gpu: ion: Explictly mark DMA allocations as GFP_KERNEL (credits to Laura Abbott)
[B]17/06/2014 - K^Kernel 3.4 v1.0 for KitKat ION+PMEM ADSP[/B]
- First release for Samsung Galaxy W (GT-I8150)
- Kernel 3.4.94
- Sources synched with cm-11.0 repo branch of DevCon Team
- Built with my latest custom Linaro 4.9.1-2014.06 toolchain optimized for Cortex-A8
- New kernel branch based on kk_2.7-stable branch of Code Aurora Forum
- Up to 406MB of free RAM thanks to the dynamic allocation via CMA of ION heap related to MM features (camcorder, video playback/recording/encoding)
- msm7x30: Use CMA for MM ION heap (credits to Christopher83)
- msm7x30: Update defconfigs to enable CMA (credits to Christopher83)
- mm: try_to_unmap_cluster() should lock_page() before mlocking (credits to Vlastimil Babka)
- msm:vidc: Amend error checks on ION API failures (credits to Maheshwar Ajja)
- ion: cma: Add debug heap ops for CMA heap (credits to Chintan Pandya)
- Makefile: Added compilation optimization flags (credits to Christopher83)
- arm: Fix compatibility with linaro toolchain (credits to CastagnaIT)
- arm: Added NEON compilation flag to VFP module (credits to Christopher83)
- acpuclock-7x30: Added overclocking and undervolting support (credits to Christopher83)
- acpuclock-7x30: Increased cpu frequency on boot (credits to Christopher83)
- block: fiops ioscheduler core (credits to Shaohua Li)
- block: fiops read/write request scale (credits to Shaohua Li)
- block: fiops sync/async scale (credits to Shaohua Li)
- block: fiops add ioprio support (credits to Shaohua Li)
- block: fiops preserve vios key for deep queue depth workload (credits to Shaohua Li)
- block: fiops bias sync workload (credits to Shaohua Li)
- block: fiops add some trace information (credits to Shaohua Li)
- block: Simple I/O scheduler (credits to Christopher83)
- block: V(R) I/O scheduler (credits to Christopher83)
- block: Reordered the I/O schedulers (credits to Christopher83)
- char: Added Fast Random generator support (frandom) (credits to Christopher83)
- cpufreq: CPU Voltage Control (VDD sysfs interface) (credits to Christopher83)
- cpufreq: Reordered the CPU governors (credits to Christopher83)
- cpufreq: InteractiveX CPU governor (credits to Christopher83)
- cpufreq: OnDemandX CPU governor (credits to Christopher83)
- cpufreq: Lionheart CPU governor (credits to Christopher83)
- cpufreq: SmartAssV2 CPU governor (credits to Christopher83)
- cpufreq: LulzActive CPU governor (credits to Christopher83)
- cpufreq: Adaptive CPU governor (credits to Christopher83)
- cpufreq: Hyper CPU governor (credits to Christopher83)
- cpufreq: BrazilianWax CPU governor (credits to Christopher83)
- cpufreq: Intellidemand CPU governor (credits to Christopher83)
- fs: Asynchronous I/O latency to a solid-state disk greatly increased (credits to Dave Kleikamp)
- fs/dyn_sync_cntrl: dynamic sync control (credits to faux123)
- fs/dyn_sync_cntrl: check dyn fsync control's active prior to performing fsync ops (credits to Andrew Bartholomew)
- fs/dyn_sync_cntrl: add some cache optimizations (credits to faux123)
- fs/dyn_sync_cntrl: add reboot notifier to force flush outstanding data (credits to faux123)
- fs/dyn_sync_cntrl: add kernel panic notifier to force flush outstanding data (credits to faux123)
- mm: Lowered swappiness 60->45 (credits to Christopher83)
- mm: Optimized SLUB memory allocator (credits to Christopher83)
- mm: Added filesystem dynamic read-ahead (Credits to Chad Gooldman) (credits to Christopher83)
- power: Added Battery Life eXtender (BLX) version 1 (Credits to Ezeekel) Adapted by Christopher83 for I9001 and I8150 devices - If the BLX charging limit is 100%, then the battery is fully charged as if the feature is not active - Wait some seconds after reaching the charging limit before stop the charging (credits to Christopher83)
- power: 100% battery notification after charger unplug (credits to Christopher83)
- rwsem: Optimized ARM RWSEM algorithm (credits to Ashwin Chaugule)
- rwsem-spinlock: Implement writer lock-stealing for better scalability (credits to Yuanhan Liu)
- rwsem: Implement writer lock-stealing for better scalability (credits to Alex Shi)
- rwsem: make the waiter type an enumeration rather than a bitmask (credits to Michel Lespinasse)
- rwsem: shorter spinlocked section in rwsem_down_failed_common() (credits to Michel Lespinasse)
- rwsem: move rwsem_down_failed_common code into rwsem_down_{read,write}_failed (credits to Michel Lespinasse)
- rwsem: simplify rwsem_down_read_failed (credits to Michel Lespinasse)
- rwsem: simplify rwsem_down_write_failed (credits to Michel Lespinasse)
- rwsem: more agressive lock stealing in rwsem_down_write_failed (credits to Michel Lespinasse)
- rwsem: use cmpxchg for trying to steal write lock (credits to Michel Lespinasse)
- rwsem: avoid taking wait_lock in rwsem_down_write_failed (credits to Michel Lespinasse)
- rwsem: skip initial trylock in rwsem_down_write_failed (credits to Michel Lespinasse)
- rwsem: simplify __rwsem_do_wake (credits to Michel Lespinasse)
- rwsem: implement support for write lock stealing on the fastpath (credits to Michel Lespinasse)
- rwsem: do not block readers at head of queue if other readers are active (credits to Michel Lespinasse)
- rwsem: no need for explicit signed longs (credits to Davidlohr Bueso)
- rwsem: check counter to avoid cmpxchg calls (credits to Davidlohr Bueso)
- sched: Disabled Gentle Fair Sleepers for better UI performance (credits to Christopher83)
- lib/memcopy: use glibc version (credits to Miao Xie)
- lib/string: use glibc version (credits to Miao Xie)
- mm: Dynamic management of dirty page writebacks (credits to Christopher83)
- fs: sync: Don't disable fdatasync() (credits to faux123)
- CK3 tweaks (Credits to Con Kolivas) (credits to Christopher83)
- hrtimer: Introduce effective timer slack (credits to Kirill A. Shutemov)
- hrtimer: Implement PR_GET_EFFECTIVE_TIMERSLACK (credits to Kirill A. Shutemov)
- cgroups: Introduce timer slack controller (credits to Kirill A. Shutemov)
- kernel: cgroup_timer_slack: Adaptations for 3.4 kernel (credits to Christopher83)
- kernel: cgroup_timer_slack: Dynamic management of timer slack (credits to Christopher83)
- staging: android: lowmemorykiller: Management of not killable processes (credits to Christopher83)
- fs/sync: Make sync() satisfy many requests with one invocation (credits to Paul E. McKenney)
- decompressor: Add LZ4 decompressor module (credits to Kyungsik Lee)
- lib: Add support for LZ4-compressed kernel (credits to Kyungsik Lee)
- arm: Add support for LZ4-compressed kernel (credits to Kyungsik Lee)
- lib: Add lz4 compressor module (credits to Chanho Min)
- crypto: Add lz4 Cryptographic API (credits to Chanho Min)
- lib/lz4/lz4_compress: fix macro usage error (credits to faux123)
- LZ4: compression/decompression signedness mismatch (v2) (credits to Sergey Senozhatsky)
- Makefile: Use -fno-inline-functions to build with Linaro GCC 4.8 toolchains (credits to Christopher83)
- acpuclock-7x30: Raised some standard UV and stock voltages for high OC cpu frequencies (credits to Christopher83)
- softirq: reduce latencies (credits to Eric Dumazet)
- fs: vfat: reduce the worst case latencies (credits to xiaogang)
- msm: kgsl: Add an input handler to power up the GPU on a touch event (credits to Tk-Glitch)
- ARM: be strict about FP exceptions in kernel mode (credits to mrg666)
- ARM: add support for kernel mode NEON (credits to mrg666)
- ARM: crypto: add NEON accelerated XOR implementation (credits to Ard Biesheuvel)
- ARM: 7835/2: fix modular build of xor_blocks() with NEON enabled (credits to Ard Biesheuvel)
- ARM: move VFP init to an earlier boot stage (credits to Ard Biesheuvel)
- ARM: Perform the creation of procfs node for VFP later (credits to Christopher83)
- ARM: only allow kernel mode neon with AEABI This prevents the linker erroring with: (credits to Russell King)
- ARM: 7626/1: arm/crypto: Make asm SHA-1 and AES code Thumb-2 compatible (credits to Dave Martin)
- ARM: 7723/1: crypto: sha1-armv4-large.S: fix SP handling (credits to Ard Biesheuvel)
- ARM: 7837/3: fix Thumb-2 bug in AES assembler code (credits to Ard Biesheuvel)
- crypto: create generic version of ablk_helper (credits to Ard Biesheuvel)
- ARM: pull in <asm/simd.h> from asm-generic (credits to Ard Biesheuvel)
- ARM: move AES typedefs and function prototypes to separate header (credits to Ard Biesheuvel)
- ARM: add support for bit sliced AES using NEON instructions (credits to Ard Biesheuvel)
- ARM: add .gitignore entry for aesbs-core.S (credits to Russell King)
- CRYPTO: Fix more AES build errors (credits to Russell King)
- workqueues: Introduce new flag WQ_POWER_EFFICIENT for power oriented workqueues (credits to Viresh Kumar)
- workqueue: Add system wide power_efficient workqueues (credits to Viresh Kumar)
- block: queue work on power efficient wq (credits to Viresh Kumar)
- xsched: Optimize build_sched_domains() for saving first SD node for a cpu (credits to Viresh Kumar)
- PHYLIB: queue work on system_power_efficient_wq (credits to Viresh Kumar)
- ASoC: pcm: Use the power efficient workqueue for delayed powerdown (credits to Mark Brown)
- ASoC: jack: Use power efficient workqueue (credits to Luis Cruz)
- regulator: core: Use the power efficient workqueue for delayed powerdown (credits to Luis Cruz)
- ASM: word-at-a-time: make the interfaces truly generic (Chad Goodman) (credits to poondog)
- LIB: use generic strnlen_user and strncpy_from_user functions (Chad Goodman) (credits to poondog)
- ARM: dcache: select DCACHE_WORD_ACCESS for little-endian ARMv6+ CPUs (Chad Goodman) (credits to poondog)
- ARM: 7927/1: dcache: select DCACHE_WORD_ACCESS for big-endian CPUs (credits to Will Deacon)
- sched: Add sysinterface for GENTLE_FAIR_SLEEPERS (credits to Tk-Glitch)
- sched: Consider max cost of idle balance per sched domain (credits to faux123)
- sched: Periodically decay max cost of idle balance (credits to faux123)
- cpufreq: Optimize cpufreq_frequency_table_verify() (credits to Viresh Kumar)
- ancora : update board (credits to madridii)
- ancora: Increased audio volume on board side (credits to madridii)
- ancora: Lowered WIFI voltage (credits to madridii)
- ancora: Lowered display panel voltage (credits to madridii)
- ancora: Lowered Vibetonz voltage (credits to madridii)
- msm7x30: Update default and custom configs (credits to Christopher83)
- ancora: High memory allocations (credits to Christopher83)
- ancora: Add custom defconfigs (credits to Christopher83)
- Revert "mdp4_overlay_lcdc: Fixed wrong initialization of VSYNC" (credits to arco68)
- mmc: msm_sdcc: Advertise erase capability for ancora (credits to arco68)
- msm_fb: Fix backlight issue on ancora and ancora_tmo (credits to arco68)
- gpu: ion: Sync CMA caching logic with carveout heap. (credits to Blefish)
- defconfigs: Build crypto devices as modules (credits to arco68)
- msm: dma: Moving queue_work() function within spinlock (credits to Utsab Bose)
- msm: kgsl: Add the buffer user address to the debugfs memory list (credits to Jordan Crouse)
- msm: kgsl: use %pK to restrict printing GPU / memory addresses (credits to Jordan Crouse)
- sched: Reset rq->next_interval before going idle (credits to Srivatsa Vaddagiri)
- sched: re-calculate a cpu's next_balance point upon sched domain changes (credits to Srivatsa Vaddagiri)
- ARM: 7486/1: sched_clock: update epoch_cyc on resume (credits to Colin Cross)
- ARM: 7565/1: sched: stop sched_clock() during suspend (credits to Felipe Balbi 2)
- sched: Set MC (multi-core) sched domain's busy_factor attribute to 1 (credits to Srivatsa Vaddagiri)
- msm: kgsl: Cleanup the memory free list (credits to Jordan Crouse)
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
lafactorial, dec0der, ayesse, xlollomanx, gregoriaz, Istanblue, tycoo, hrinfrnlmjsty, makankaki, LeroViten and the other users for their support in testing
XDA:DevDB Information
[GT-I8150][ION] K^Kernel 3.4 for KK 4.4 ION+PMEM ADSP, Kernel for the Samsung Galaxy W I8150
Contributors
Christopher83
Source Code: https://github.com/Christopher83/samsung-kernel-msm7x30/tree/cm-11.0
Kernel Special Features: Customized kernel 3.4.x for KK 4.4 rom (CM 11.0 and derivatives) with ION memory allocations
Version Information
Status: Stable
Current Stable Version: v3.0
Stable Release Date: 2015-04-05
Created 2014-06-17
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).
The parameter value set for K^Kernel is "2048,4096,6656,9216,14336,19456".
- /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.
The parameter value set for K^Kernel is "0,20,50,100,250,500".
Frandom - Fast Random Generator
As Eli Billauer (the creator of this module) said, Frandom is a Linux kernel random number generator, which is 10-50 times faster than what you get from Linux built-in /dev/urandom. And it uses very little (/dev/frandom) or none (/dev/erandom) of the kernel's entropy pool, so it is very useful for applications that require a handy source for lots of random data.
How to test if frandom builtin module is correctly working:
- Download the script named frandom_test.sh
- Using your preferred file explorer, copy the file inside the folder /data/local of your device
- 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)
- Open Terminal Emulator
- Run this command
Code:
/data/local/frandom_test.sh
You should see a result similar to this one:
If the urandom tests take more than 1 or 2 seconds and are more different than related frandom tests, then the random number generation is not fully optimized for your currently used kernel...
How to disable / re-enable the redirection to frandom module during boot process:
By using Terminal Emulator:
- Run these commands to create the flag file and disable Frandom redirection:
Code:
su
touch /data/frandom_disabled
- Or run these commands to delete the flag file and re-enable Frandom redirection:
Code:
su
rm /data/frandom_disabled
The change will take effect after a reboot.
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: 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: Why should I deactivate KSM (Kernel Samepage Merge)?
A: KSM (Kernel Samepage Merge), let us save a bit of RAM space used by kernel (max 10MB during my analysis) by merging duplicated memory pages used by different processes, but it has also some performance impacts, since it uses CPU time to perform those memory scanning and merging operations.
So, in few words, it could free up a bit of RAM, but sometimes keeps the CPU busy to complete its work.
After introducing the dynamic allocation of MM ION and PMEM ADSP heaps, KSM could cause issues while trying to use camera or camcorder and playing HW/HW+ videos.
This is due to the impossibility to allocate one or more memory pages that have been merged by KSM inside the memory area reserved for dynamic allocations for MM ION or PMEM ADSP heaps through CMA (Contiguous Memory Allocator).
I'm looking for a solution for this "incompatibility", but at the moment the tried changes didn't work.
So, as a workaround, don't activate KSM until we find a fully working solution, since the RAM freed by dynamic allocation is surely higher than KSM freed RAM without any performance impact during normal usage.
The option can be deactivated inside Settings -> Performance -> Memory management -> Kernel samepage merging.
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...
Nice one! by the way, is this compatible with CyanogenMod 11.0 (20140616)? Thanks
Can this run on DCM 4.4.3
Sent from my GT-I8150 using XDA Premium 4 mobile app
LabBoy97 said:
Can this run on DCM 4.4.3
Sent from my GT-I8150 using XDA Premium 4 mobile app
Click to expand...
Click to collapse
Yes. Read HERE
Great !! is this kernel TRIM supported ?
is the blnv10 supported?
SagiTHORus_ said:
Great !! is this kernel TRIM supported ?
Click to expand...
Click to collapse
farisnanosoft said:
is the blnv10 supported?
Click to expand...
Click to collapse
Guys, kindly read main features in OP
dec0der said:
Nice one! by the way, is this compatible with CyanogenMod 11.0 (20140616)? Thanks
Click to expand...
Click to collapse
Yes, it's ready to be used with the new CM 11.0 released by arco68.
LabBoy97 said:
Can this run on DCM 4.4.3
Sent from my GT-I8150 using XDA Premium 4 mobile app
Click to expand...
Click to collapse
Yes
SagiTHORus_ said:
Great !! is this kernel TRIM supported ?
Click to expand...
Click to collapse
Yes
farisnanosoft said:
is the blnv10 supported?
Click to expand...
Click to collapse
No, at the moment, since GT-I8150 uses a different touchkeys driver than GT-I9001.
Sent from my GT-I9001 with Tapatalk 4
thanks sir.
downloading, i'll try and give feed back :highfive:
WOOOOOO! First time I've seen custom kernel like this Powered by K^Kernel by @Christopher83 :highfive:
thanks @Christopher83 : too great :good:
It's running really smooth and fast in DCM 4.4.3 thanks Christopher
Sent from my GT-I8150 using XDA Premium 4 mobile app
Running flawlessly so far on pure cm 11.0 build 20140616 powered by K^Kernel v.XHM
By the way, hope you will continue updating this kernel @Christopher83 or anyone else. Thanks a lot! :highfive:
thank you sir :good:
Using it with CM11 (20140525) , everything is working good
BTW , it's the best kernel i've ever used >.<
Huge list of features , thanks Christopher ! now my phone is as smooth as silk :good::good:

[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][ION+PMEM][CM12] HurtSky's Kernel V1 5/1/2015

CM12 Section​
ONLY USE THIS KERNEL WITH ROM BASED ON
[ROM][LP][5.0.2][LRX22G] CyanogenMod 12.0 (20141230-UNOFFICIAL)
I'm not a developer, im taking effort to put more choices of kernel for our community
Please RATE this thread 5 STAR if you like it.. it absolutely encourage me more
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.
*/
Features
List of Governors Available :-
- Lulzactive
- Powersave
- SmartAssV2
- interactive
- conservative
- ondemand
- performance
IO Scheduler
- noop
- deadline
- row
- cfq
- bfq
- sio
- vr
- fiops
Additional Features
- CPU voltage control VDD sys interface (voltage adjustable)
- Overclock support
- Added NEON compilation flag to VFP module
- SnapDragon Optimization
- dynamic read-ahead
- frandom
- Lowered display panel voltage
- Lowered wifi voltage
- Increase audio loudness
- Dynamic management of dirty page writebacks credit to Christopher83
- Dynamic Fsync
- Fixed 100% battery notification after charger unplug credits to Christopher83
- LowMemoryKiller management of not killable processes - credits to christopher
- Asynchronous I/O latency to a solid-state disk greatly increased
- CK3 tweaks (Credits to Con Kolivas) - adapted by Christopher
- Snappy Google Zram
- Random Tweaks
- Reduce WIFI wakelocks - credits to DerTeufel
- Implement Suspend Freeze (more battery friendly)
- exfat support
- add MSM-SLEEPER support(max screen off frequency) - 902Mhz
Explanation of Android Governors
My GitHub​
Installation Guide:
1. Reboot To Recovery Mode
2. Wipe Cache & Dalvik Cache
3. Flash the kernel
4. Reboot
5. wait until the phone boot up
6. Reboot back for second time
Code:
[I]Credit to :-[/I]
- Our Master [URL="http://forum.xda-developers.com/member.php?u=3044346"][B]Arco[/B][/URL] for his kernel source ([I] go press thanks for any posted by arco :D without he, this kernel wont existed[/I] )
- AriesVE-DevCon-TEAM that make ION and PMEM can co-existed together.. big thanks for them :)
- educk for his tutorial and governors
- biagio7xD for extra governors and SnapDragon Optimization
- Christopher83 that helping me teach how to correct the error and advising me and thanks for his new linaro :)
- Xistance for his teaching
- CastagnaIT for his useful sources
- CyanogenMod developers that developing our CM
- Linaro GCC developers let me using this powerful compiler
- hadidjapri hadiconfig (more RAM)
- keff for governors code fixes
- credit to idcrisis for Crossbreeder MOD
- FelixMG for youtube video
- arsradu for kernel.zip
- others developer on GitHub
- xda-developers.com for all the teaching and members
XDA:DevDB Information
[Kernel][ION+PMEM][CM12] HurtSky's Kernel V1 5/1/2015, Kernel for the Samsung Galaxy W I8150
Contributors
hurtsky
Kernel Special Features:
Version Information
Status: Stable
Current Stable Version: V1
Stable Release Date: 2015-01-05
Created 2015-01-05
Last Updated 2015-01-05
DOWNLOAD LINK >HERE and Mirror Link
Changelogs of Revision Version
Do not expect me to explain all the commits/changes. i wont entertain your question unless for some reason.. GOOGLE IT than you will know
CM 12 github branch
CFS - CLICK HERE for changelogs
Code:
[B][I]V1 5/1/2015[/I][/B]
- configs: update custom configs (credits to Hurtsky)
- lib, net: make isodigit() public and use it (credits to Andy Shevchenko)
- random: check for increase of entropy_count because of signed conversion (credits to Hannes Frederic Sowa)
- random: fix nasty entropy accounting bug (credits to Theodore Ts'o)
- random: convert use of typedef ctl_table to struct ctl_table (credits to Joe Perches)
- random: fix BUG_ON caused by accounting simplification (credits to Theodore Ts'o)
- random: use the architectural HWRNG for the SHA's IV in extract_buf() (credits to Theodore Ts'o)
- random: entropy_bytes is actually bits (credits to Greg Price)
- random: simplify accounting code (credits to Greg Price)
- random: forget lock in lockless accounting (credits to Greg Price)
- random: simplify accounting logic (credits to Greg Price)
- random: fix comment on "account" (credits to Greg Price)
- random: simplify loop in random_read (credits to Greg Price)
- random: fix description of get_random_bytes (credits to Greg Price)
- random: fix comment on proc_do_uuid (credits to Greg Price)
- random: fix typos / spelling errors in comments (credits to Greg Price)
- random: add debugging code to detect early use of get_random_bytes() (credits to Theodore Ts'o)
- random: printk notifications for urandom pool initialization (credits to Theodore Ts'o)
- random: convert DEBUG_ENT to tracepoints (credits to Hurtsky)
- random: initialize the last_time field in struct timer_rand_state (credits to Theodore Ts'o)
- random: don't zap entropy count in rand_initialize() (credits to Theodore Ts'o)
- random: make add_timer_randomness() fill the nonblocking pool first (credits to Theodore Ts'o)
- random: push extra entropy to the output pools (credits to Theodore Ts'o)
- random: drop trickle mode (credits to Theodore Ts'o)
- random: adjust the generator polynomials in the mixing function slightly (credits to Theodore Ts'o)
- random: speed up the fast_mix function by a factor of four (credits to Theodore Ts'o)
- random: cap the rate which the /dev/urandom pool gets reseeded (credits to Theodore Ts'o)
- random: optimize the entropy_store structure (credits to Theodore Ts'o)
- random: optimize spinlock use in add_device_randomness() (credits to Theodore Ts'o)
- random: fix the tracepoint for get_random_bytes(_arch) (credits to Theodore Ts'o)
- random: allow architectures to optionally define random_get_entropy() (credits to Theodore Ts'o)
- random: account for entropy loss due to overwrites (credits to H. Peter Anvin)
- random: allow fractional bits to be tracked (credits to H. Peter Anvin)
- random: statically compute poolbitshift, poolbytes, poolbits (credits to H. Peter Anvin)
- random: mix in architectural randomness earlier in extract_buf() (credits to Theodore Ts'o)
- char: Convert use of typedef ctl_table to struct ctl_table (credits to Joe Perches)
- lib/string_helpers: introduce generic string_unescape (credits to Andy Shevchenko)
- drivers/char/random.c: fix priming of last_data (credits to Jarod Wilson)
- usb: feed USB device information to the /dev/random driver (credits to Theodore Ts'o)
- random: use the arch-specific rng in xfer_secondary_pool (credits to Theodore Ts'o)
- random: prime last_data value per fips requirements (credits to Jarod Wilson)
- random: fix locking dependency with the tasklist_lock (credits to Theodore Ts'o)
- netfilter: IDLETIMER: fix invalid deference of timer (credits to JP Abgrall)
- nf: IDLETIMER: Fix possible use before initialization in idletimer_resume (credits to Patrick Daly)
- crypto: add crypto_[un]register_shashes for [un]registering multiple shash entries at once (credits to Jussi Kivilinna)
- crypto: sha512 - Expose generic sha512 routine to be callable from other modules (credits to Tim Chen)
- crypto: sha256 - Expose SHA256 generic routine to be callable externally. (credits to Tim Chen)
- ARM: 8120/1: crypto: sha512: add ARM NEON implementation (credits to Jussi Kivilinna)
- ARM: 8119/1: crypto: sha1: add ARM NEON implementation (credits to Jussi Kivilinna)
- ARM: add .gitignore entry for aesbs-core.S (credits to Russell King)
- ARM: 7723/1: crypto: sha1-armv4-large.S: fix SP handling (credits to Ard Biesheuvel)
- ARM: 7837/3: fix Thumb-2 bug in AES assembler code (credits to Ard Biesheuvel)
- ARM: 7626/1: arm/crypto: Make asm SHA-1 and AES code Thumb-2 compatible (credits to Dave Martin)
- ARM: pull in <asm/simd.h> from asm-generic (credits to Ard Biesheuvel)
- ARM: move AES typedefs and function prototypes to separate header (credits to Ard Biesheuvel)
- crypto: ablk_helper - Replace memcpy with struct assignment (credits to kbuild test robot)
- crypto: create generic version of ablk_helper (credits to Ard Biesheuvel)
- ARM: add support for bit sliced AES using NEON instructions (credits to Hurtsky)
- ARM: 7835/2: fix modular build of xor_blocks() with NEON enabled (credits to Ard Biesheuvel)
- ARM: crypto: add NEON accelerated XOR implementation (credits to Ard Biesheuvel)
- ARM: add support for kernel mode NEON (credits to Ard Biesheuvel)
- ARM: vfpmodule: Move bounce stats file to seq_file and friends (credits to Stephen Boyd)
- ARM: be strict about FP exceptions in kernel mode (credits to Ard Biesheuvel)
- ARM: move VFP init to an earlier boot stage (credits to Ard Biesheuvel)
- ARM: vfp: initialize vfp driver before cpufreq (credits to Bongkyu Kim)
- configs: update custom config (credits to Hurtsky)
- defconfig: Enable F2FS filesystem (credits to Arne Coucheron)
- fs: f2fs: Initial import from https://kernel.googlesource.com (credits to Arne Coucheron)
- Staging: android: binder: More offset validation. (credits to Arve Hjonnevag)
- crypto: msm: check potential integer overflow (credits to William Clark)
- cfg80211: ignore supported rates for nonexistant bands on scan (credits to Felix Fietkau)
- Enable NEED_NETDEV for vendor command support. (credits to Subhani Shaik)
- net: ipv6: Add a sysctl to make optimistic addresses useful candidates (credits to Erik Kline)
- netfilter: nf_conntrack: decrement global counter after object release (credits to Pablo Neira Ayuso)
- net: ipv6: autoconf routes into per-device tables (credits to Lorenzo Colitti)
- broadcom_wlan: Modify country code source (credits to Arne Coucheron)
- ext4: Add support for FIDTRIM, a best-effort ioctl for deep discard trim (credits to JP Abgrall)
- defconfig: Regenerate (credits to Arne Coucheron)
- defconfig: Enable CONFIG_NETFILTER_XT_TARGET_IDLETIMER (credits to Arne Coucheron)
- defconfig: Set selinux permissive (credits to Arne Coucheron)
- ariesve: Set SELinux to be permissive (credits to Cristoforo Cataldo)
- configs: update custom config (credits to Hurtsky)
​
MIRROR Link
CLICK HERE FOR ALTERNATIVE DOWNLOAD LINK
​
Special Features
MSM_LIMITER
This function will limit the cpu in certain condition such as frequency during suspend, resume and min frequency. This features enabled in default and the frequency already been set for suspend freq to 900Mhz (screen off), min freq 245Mhz, resume freq 1.4Ghz. This feature may can reduce power consumption as it limit our cpu frequency after the screen off. If this features enabled, OC frequency will be override automatically after the screen off = 900Mhz and resume back to 1.4Ghz. Thus, you need to disable it if you like to make OC frequency stays,
so here the step to disable it: -
1. By using Terminal Emulator (note that set value will be lost after a reboot/shutdown)
- Open Terminal Emulator
- Run this command to disable msm_limiter feature
Code:
su
echo "0" > /sys/kernel/msm_limiter/limiter_enabled
echo "0" for disable or echo "1" for enable it back
2. Download the msm_limiter_switch.sh.pdf
- after download the script please rename the file by removing .pdf and the name of the file should be like this msm_limiter_switch.sh
- by using Script Manager application open the msm_limiter_switch as script and tick the the "boot"
- by doing this, the msm_limiter will stick disable after the boot
in advance step, you can adjust the frequency of suspend, resume and min frequency to suit your taste here the command
1. For resume frequency
Code:
su
echo "<put ur own frequency here>" > /sys/kernel/msm_limiter/resume_max_freq
example:-
Code:
su
echo "1824000" > /sys/kernel/msm_limiter/resume_max_freq
this will make your CPU freq up to 1.8Ghz when screen on.. it just an example.
2. For suspend frequency
Code:
su
echo "<put ur own frequency here>" > /sys/kernel/msm_limiter/suspend_max_freq
Table of our devices frequency
Code:
122880
245760
368640
768000
806400
902400
1017600
1024000
1113600
1209600
1305600
1401600
1516800
1555200
1612800
1804800
1824000
Android Logger ON/OFF mode
Android logger can be turn off/on when you need or did not need it in this kernel, this function was introduced to reduce A BIT cpu usage or ram consumption that be used by the logger. The android logger was set OFF in default for this kernel :-
Here the step to change the logger mode:-
-the option of the mode-
/*
* 0 - Enabled
* 1 - Auto Suspend
* 2 - Disabled
*/
1. By using Terminal Emulator (note that set value will be lost after a reboot/shutdown)
- Open Terminal Emulator
- Run this command to disable the logger
Code:
su
echo "you choice of logger mode" > /sys/module/logger/parameters/log_mode
Example
Code:
su
echo "2" > /sys/module/logger/parameters/log_mode
Gentle fair sleepers
Disable gentel fair sleepers will give you better UI performance.. disabling it will make your phone consume more power due to several reason (i forgot the source of this statement), btw you can change it to suit your taste
-the option of the mode-
/*
* 0 - Disabled
* 1 - Enabled
*/
Code:
su
echo "you choice" >/sys/kernel/sched/gentle_fair_sleepers
Example
Code:
su
echo "1" >/sys/kernel/sched/gentle_fair_sleepers
-
reserved third
Unleashed the Hurtsky Kernel for CM12 .. Enjoy
hurtsky said:
CM11 Section​
ONLY USE THIS KERNEL WITH ROM BASED ON
[ROM][KK][4.4.2][KOT49H] CyanogenMod 11.0 (UNOFFICIAL)
Click to expand...
Click to collapse
i think this is a mistake
iwjosi said:
i think this is a mistake
Click to expand...
Click to collapse
thank you for letting me know
Thanks!
where can i find the performance settings in cm12?
SkyLaci said:
Thanks!
where can i find the performance settings in cm12?
Click to expand...
Click to collapse
Its not implemented by the cyanogen-team yet.
i get fc with performance control after flashing
xSmart007x said:
i get fc with performance control after flashing
Click to expand...
Click to collapse
sorry for late reply, i had trouble to open xda for long time.. i will try to solve the problem in next version.. thank you
Is it working with the latest build?
riyosakura said:
Is it working with the latest build?
Click to expand...
Click to collapse
nope.. wait for next update.. still busy right now to update the kernel
hurtsky said:
sorry for late reply, i had trouble to open xda for long time.. i will try to solve the problem in next version.. thank you
Click to expand...
Click to collapse
hello sir, i already tested the performance control on stock ROM and kernel, seems the apps also force close so this problem maybe caused by the incompatibility to CM12
Sir..can i flash this kerenel for liquid smooth(5.0.2)

[KERNEL] [ROOT] [SM-G920F Exynos 7420] [17 Dec] SkyHigh TW 5.1.1 Kernel [v2.9]

[KERNEL] [ROOT] [SM-G920F Exynos 7420] [17 December] SkyHigh TW 5.1.1 Kernel [ v2.9 ] [Synapse ++]
WARNING
Code:
[COLOR="Red"]PLEASE SHOW RESPECT TO ACTUALLY [COLOR="PURPLE"][B]READ POSTS #1-3[/B][/COLOR]
[URL="http://forum.xda-developers.com/announcement.php?a=81"][B]XDA RULE #1 "SEARCH BEFORE POSTING"[/B][/URL] (GOOGLE, XDA & THREAD),
IF YOU DON'T LIKE A UP-FRONT "MATTER OF FACT" APPROACH,
[B]THEN DON'T BOTHER POSTING[/B]. [/COLOR]
FEATURES
Code:
* Based on official Samsung source: [URL="http://opensource.samsung.com/reception/receptionSub.do?method=sub&sub=F&searchValue=n920"]Samsung OSRC[/URL]
* ramdisk source:
[INDENT][COLOR="red"]N920F[/COLOR]XXU3QOLF[/INDENT]
* Compiled with Linaro gcc-linaro-4.9-2015.02-3-x86_64_aarch64-linux-gnu
* Linux 3.10.94
* [COLOR="red"]AUTO-ROOT binary v2.52[/COLOR] & Install busybox v1.24.1-Dorimanx
* [COLOR="Red"]KNOX WARRANTY VOID: 1[/COLOR]
* [COLOR="red"]SELinux PERMISSIVE[/COLOR] (for Titanium Backup and other apps to work correctly)
* adb insecure
* stock dt.img
* init.d script support (drop in script & set permissions to 755 or 777 and reboot)
* [COLOR="red"]DEEP SLEEP FIX[/COLOR]
* [COLOR="red"]IN-CALL REBOOT BUG "FIX"[/COLOR]
* Possible Screen Mirroring / AllShare Cast fix
* Secure storage = false (should prevent WIFI settings & passwords wiping on reboots)
* RAM management tweaks
* GearVR reported working
* [B]Synapse app support[/B] for many kernel configurations + more !!
* Many descriptions are in the app ! If you require more info, don't be lazy, please [B]SEARCH[/B] like I did ;)
SYNAPSE FEATURES
ABOUT
PayPal Donation link
SkyHigh kernel thread link
Up time
Total
Sleep
Awake​
A57 CPU
CPU temperature
A57 big Cores Frequency Scaling
live frequency
MAX: 2400 MHz (stock 2100 MHz is default)
MIN: 500 MHz (stock 800 MHz is default)​
CPU governors
interactive (default)
on-demand
conservative
userspace
performance​
CPU governor tunables
A57 VOLT
HPM voltage control
A57 big Cores voltage control
A53 CPU
A53 LITTLE Cores Frequency Scaling
live frequency
MAX: 1600 MHz (stock 1500 MHz is default)
MIN: 200 MHz (stock 400 MHz is default)​
CPU governors
interactive (default)
on-demand
conservative
userspace
performance​
CPU governor tunables
A53 VOLT
HPM voltage control
A53 LITTLE Cores voltage control
CPU MULTICORE
Power Aware Scheduling control
HMP LITTLE Packing
Exynos Core Control Interface (choose 1 > 8 cores online)
PEWQ (Power-efficient Workqueues) control
GPU
GPU stats
Current clock freq
Live Frequency Utilization (load)
Time in state​
GPU power policy control
coarse_demand (default)
demand
always_on​
GPU frequency scaling
Max freq control to 852 MHz (700 MHz is default)
Min freq control to 100 MHz (stock 266 MHz is default)​
GPU Governor
Default
Interactive (default)
Static
Booster (more graphic and benchmark performance)​
GPU Interactive Governor tunables
highspeed clock
highspeed load
highspeed delay​
GPU VOLT
HPM voltage control
GPU voltage control
THERMAL
CPU thermal control
normal temp
critical temp​
GPU thermal control
temp levels 1 > 5
throttling freq levels​
Memory thermal control
normal temp
critical temp​
ISP (Image Signal Processor) thermal control
temp levels 1 > 5​
BUS
Memory Bus HPM voltage control
Memory Bus voltage control
Internal Bus voltage control
ISP (Image Signal Processor) voltage control
IO
I/O Schedulers
BFQ (tweaked for SSD)
DEADLINE (tweaked for SSD)
FIOPS
CFQ = default (tweaked for SSD)
NOOP
ROW (tweaked)​
Storage read-ahead (256 KB)
General IO tuneable
Add random
IO stats
Rotational
No merges
RQ Affinity
NR requests​
I/O scheduler tunables
MEMORY
Memory state
Total
Free​
Low Memory Killer Profiles
Low
Medium
Custom (recommend)
Default (default)
Aggressive
Exterminate​
Low Memory Killer minfree tuning (OOM LMK)
Samsung SPCM Service control (Enabled = default/stock)
Ultra Kernel SamePage Merging (UKSM)
UKSM stats
Scan Delay Interval
UKSM Governor
Max CPU consumption​
Dynamic FSYNC control (enabled)
Dynamic dirty page writeback control (enabled)
Dirty writeback active
Dirty writeback suspend​
Virtual Memory
Adaptive Dirty Background Ratio on suspend / resume
Adaptive Dirty Ratio on suspend / resume
Drop caches (Clear VFS cache after boot)
Laptop Mode
Swapiness
Adaptive vfs_cache_pressure on suspend / resume​
ADVANCED
Entropy (max 4096)
Gentle Fair Sleepers control (disabled)
Arch Power control (enabled)
randomize_va_space control
POWER SUSPEND
Modes:
Autosleep
Userspace
Display Panel
Hybrid (Autosleep + Display Panel) = default​
PowerSuspend State (enable only with Userspace mode set)
Version push button
AUDIO
(Sound Control by AndreiLux)
Jack media volume control
L/R channel volume
mono mixer​
Speaker volume control
Earpiece volume​
Main Equalizer
Advanced Stereo Equalizer
SCREEN
sweep2sleep control
NETWORK
TCP congestion control
All available enabled.
Default = westwood+​
Screen mirror/allshare cast fix control (enabled)
Clean WIFI Lease
WiFi Power Mode While Screen-On/Off
Force Off
Off
Fast (default = screen ON)
Max (default = screen OFF)
WiFi DTIM Interval While Screen-On/Off​
RX wakelock timeout control
TCP/IP network security
3G DNS speed & security tweak
Google
OpenDNS
Comodo, Level3
Norton_DNS
Smart_Viper​
GPS time-zone
Original
Asia
Europe
Oceania
North America
South America
Africa​
IPV6 optimistic detection
SECURITY
KNOX control
NO_ACTION (default)
Disabled
Enabled​
SELinux
Live status​
BATTERY
Battery info
Charging controls
HV power supplies
A/C Mains
A/C Mains (screen-on)
Standard downstream port
Dedicated charging port
Charging downstream port
Accessory charging adapter
MHL power
Wireless power​
Battery SCALING calibration (fuel gauge reset)
LED
LED disable control
LED Fade-in/out Time Period
LED Fade control
Fade-in
Fade-out​
Test notification push button
Stop notification push button
FS (File System)
Display FS Type
FS Controls
remount System r/w r/o
remount RootFS r/w r/o​
Scrolling cache control
Optimise Databases (SQLite3)
FSTrim lagfix
Wipe options
cache reboot
dalvik-cache reboot
cache & dalvik-cache reboot​
Clean up
clipboard cache
/data/tombstones
/data/anr logs
/data/dropbox logs
lost+found​
USB
USB status
USB mode selection
MTP
PTP
CD_ROM (drivedroid support)
USB_Keyboard-Mouse​
BACKUP & RESTORE
Name - Restore - Delete - Backup
profiles
kernel image​
LOGS
Android Logger control (enabled)
LogCat​
Kernel Logger control (enabled)
dmesg
last_kmsg​
REBOOT
Reboot device
Recovery Mode
Download Mode
Power Off
Clear Synapse Data & Reboot
Restart Synapse
INFO
Reduced logging
exFAT FS support
NTFS R/W support with app
CIFS support (not tested)
ISO 9660 CDROM & UDF FS support
Frandom
mount partitions NOATIME and NODIRATIME by default
Entropy tweaks
Increased boot frequency
Power-efficient workqueue (PEWQ) efficiency patches
CLEANCACHE & ZCACHE
Microsoft X-BOX gamepad controller in-built module
Slub tweaked
Much more - check source commits & Synapse
CREDITS
My family !!
@Chainfire - root & SuperSU / @Manh_IT - auto-root method
@AndreiLux - years of support for Exynos development and his various kernel features + Synapse app and UCI code
@halaszk88 - patches and Synapse code I adapted to many of my kernels
@dorimanx - BusyBox and various ramdisk tweaks/ideas
@apb_axel - I adapted and used many of the Synapse controls to suit my kernels
XDA
Samsung OSRC
and many others!
check github source credits
IF I'VE FORGOTTON ANYONE, PLEASE DON'T BE SHY AND SPEAK UP, THANKS
XDA:DevDB Information
SkyHigh Galaxy S6 Exynos 7420 Kernel, Kernel for the Samsung Galaxy S6
Contributors
UpInTheAir
Source Code: https://github.com/UpInTheAir/SM-N920
Kernel Special Features: Synapse ++ | EXT4 | exFAT | NTFS | CIFS
Version Information
Status: Testing
Created 2015-12-17
Last Updated 2015-12-17
Warning - ChangeLog - Requirements - Installation - Download - Source
** DISCLAIMER : FLASH AT YOUR OWN RISK **
WARNING :
Code:
[COLOR="Red"]* Under-volting can cause instability
* Over-clocking can cause freeze/reboot, heat & damage to CPU, GPU or other hardware
* Any customizations may void warranty
* May not be suitable for your device or customizations
* UpInTheAir is NOT responsible, the person you see in the mirror is !![/COLOR]
CHANGE-LOG
[v2.9] - 14 December 2015
variant:
Korean variant support discontinued unless sources become compatible with all SkyHigh variants. v2.8 is the last for now
source:
BUILD: fix invalid binary created for .tar.md5 archive
Revert " Source: merge N920SKSU2AOK5"
Cause of boot and stability issues with T variants​
config: remove MPTCP from reverted N920SKSU2AOK5 source
[v2.8] - 13 December 2015
ramdisk:
Synapse: update sweep2sleep description
Ensure PowerSuspend State is DISABLED​
su: update BINARY to BETA-SuperSU-v2.52 (latest stable beta)
1. Unroot (SuperSU APP > settings > "full unroot")
2. Reboot
3. Install SuperSU app from Play Store
4. NOTHING else to do !!​
init.rc: prevent override of dirty_background_ratio
Synapse: change dirty ratios default description & clean up
Synapse: adjust for adaptive dirty_background_ratio & adaptive dirty_ratio
Synapse: disable drop_caches on boot
improved UI performance as cache does not have to rebuild on every boot. optional in Synapse​
source:
Revert duplicate code from my mistake
Revert "cpufreq: Remember last policy min/max on cluster restart"​
Linux 3.10.93 > 3.10.94
Source: merge N9200ZHU2AOKA
Source: merge N920SKSU2AOK5
ARM: 8429/1: disable GCC SRA optimization
Support for GCC 6.0 toolchain
mm: Increase Dirty Ratios (battery)
mm: Adaptive Dirty Background Ratio & Dirty Ratio for suspend/resume (battery) my own
dirty_background_ratio 20-resume / 60-suspend (fixed)
dirty_ratio 40-resume / 95-suspend (fixed)​
config: enable ADAPTIVE_DIRTY_BACKGROUND_RATIO & ADAPTIVE_VM_DIRTY_RATIO
mm: Dynamic Page Writeback: fix compile if not enabled in config
[v2.7] - 09th December 2015
variant:
add SM-G9287C support with G9287CDXU2AOK1 ramdisk base​
ramdisk:
Synapse: NETWORK: add IPV6 Optimistic Detection controls & enable
Synapse: NETWORK: modify layout of WiFi DTIM Interval description
Synapse: NETWORK: add GPS Time Zone for faster GPS lock
Synapse: SCREEN: fix up sweep2leep description
Synapse: USB: tidy up USB live status
Synapse: USB: add live DNS address
Synapse: USB: add title to live DNS address
Synapse: IO: add NR Requests control
Synapse: A57/A53: show live freq for all A57 & A53 cores
Synapse: A57/A53: make default CPU frequencies static so they are not overridden
Synapse: A57/A53: move A57, A53 & GPU voltage controls to separate tab
Synapse: A57/A53: use the new renamed ren_max_freq (you need to use Synapse to control CPU MAX values - and any other SkyHigh features !!)
Synapse: A57: correct core display for temp sensors
Synapse: MEMORY: Adaptive vfs_cache_pressure on Suspend / Resume
Synapse: MULTICORE: remove HMP threshold controls. They are dynamic
N9200 ramdisk: update to N9200ZHU2AOKA
N920K ramdisk: add SkyHigh version
source:
BUILD: small fixes to build scripts
BUILD: fix up ramdisk_fix_permissions.sh
BUILD: add separate SM-N920K support
dts: N920S/K/L update from N920SKSU2AOK5 source
cpufreq: rename scaling_max_freq to ren_max_freq (fix by @arter97 to prevent DVFS override set CPU MAX freq)
fs/dcache.c: adaptive vfs_cache_pressure on suspend / resume (100% screen on & 20% static screen off)
fs: make ADAPTIVE_VFS_CACHE_PRESSURE compile optional
Revert various Nvidia power efficiency patches (Testing to resolve random System UI restart to lock screen)
config: enable ADAPTIVE_VFS_CACHE_PRESSURE
A53: allow max to 1600 MHz (default/stock 1500 MHz)
A53: increase boot frequency to 1500 MHz
[v2.6] - 05 December 2015
variant:
add SM-G928T/W8 variant support
ramdisk:
Synapse: SCREEN: add sweep2sleep control
Synapse: USB: add USB storage controls
MTP
PTP
CD ROM iso image (drivedroid support)
USB Keyboard / Mouse​
Synapse: clean up
source:
net/neighbour: queue work on power efficient wq
sched/fair: Implement fast idling of CPUs when the system is partially loaded
arm64: Improve power efficiency through load/store exclusive usage (Nvidia power efficiency patch set)
thread_info: Remove usage of relaxed calls in sched header
hrtimer: Replace usages of hrtimer_callback_running with relaxed version
aio: Skip timer for io_getevents if timeout=0
touchscreen: add sweep2sleep
sweep2sleep: adjust for 1440 x 2560 display
usb: gadget: check for accessory device before disconnecting HIDs
drivers: usb: Use Android device as USB keyboard/mouse
usb: gadget: mass_storage: added sysfs entry for cdrom to LUNs
[v2.5] - 03 December 2015
variant:
add SM-G928C/F/I/G, SM-N920P, SM-N920S/K/L & SM-N9200 variant support
ramdisk:
BUILD: auto build archives for each variant selection
ramdisk bases:
SM-N920S/K/L N920SKSU2AOK5
SM-N9200 N9200ZHU2AOJ9
SM-N920P N920PVPU2AOI6​
Synapse: fix up generate
Synapse: fix up fuel-gauge reset
source:
various power efficient workqueue patches
sched: LOAD_FREQ (4*HZ+61) avoids loadavg Moire
ext4: Speedup WB_SYNC_ALL pass called from sync(2)
mm: pass readahead info down to the i/o scheduler
mm: fix aio performance regression for database caused by THP
fixup! mm: fix aio performance regression for database caused by THP
fts_ts: fix a stupid typo by Samsung
CHROMIUM: cpufreq: interactive: calculate load before freq change
block_dev: implement readpages() to optimize sequential read
[v2.4] - 30th November 2015
variant:
add SM-N920G variant support
ramdisk:
update SM-N920-I/G ramdisk N920GDDU2AOJ5
/sbin/SkyHigh.sh: Enable Main Equalizer by default (Fixes bug where no audio from earphones whilst in-call)
Synapse: MEMORY: change KSM > UKSM controls
source:
UKSM: 0.1.2.3-for-v3.10.ge.46
UKSM: fix compile errors
UKSM: disable by default
config: enable UKSM
toolchain: gcc-linaro-4.9-2015.02-3-x86_64_aarch64-linux-gnu
Makefile: add optimizations
dts: N9200_HK update from N9200ZHU2AOJ9 source
cpufreq: Mod perms so they are settable in apps
[v2.3] - 29th November 2015
source:
Fix in-call reboot
Revert "toolchain: change to Linaro GCC 5.2.1 20151005". (Back to Linaro 4.9.3 20141031)
Revert "ufs: fix compilation warnings"​
power: process: drecrease time to enter sleep
futexes: Increase hash table size for better performance
cpufreq: Optimize cpufreq_frequency_table_verify()
[v2.2] - 28th November 2015
ramdisk:
Update N920C/CD/8 to N920CXXU2AOK7
Synapse: NETWORK: add WiFi Power Mode & DTIM Interval controls for screen ON/OFF
Synapse: NETWORK: add Wireless wakelock timeout control
default.prop: re-enable Samsung SPCM Service (removed entry)
Synapse: MEMORY: add Samsung SPCM Service control (Enabled = default/stock)
source:
Source: SM-N920T_NA_LL_Opensource N920TUVU2COJ5
drivers/video/exynos/Makefile: Fix compile warnings for non-supported drivers
config: enable LCD_HMT
Linux 3.10.90 > 3.10.93
Fix compile errors with GCC 5
crypto: pcomp - Constify (de)compression parameters
crypto: testmgr - Wrap the LHS in expressions of the form !x == y
ufs: fix compilation warnings​
toolchain: change to Linaro GCC 5.2.1 20151005
bcmdhd4359: WIFI PM support
config: enable BCMDHD_WIFI_PM
tcp: enable sockets to use MSG_FASTOPEN by default
bcmdhd: reduce rx wakelock timeout via sysfs node
net: wireless: bcmdhd4359: reduce kernel logging
Drivers: sensorhub: reduce wakelock time
[v2.1] - 17th October 2015
boot.img:
repack with stock dt.img (flash over v2.0 if you have audio issues)
[v2.0] - 17th October 2015
ramdisk:
Synapse: add BACKUP RESTORE section for save/restore profiles & boot.img to /sdcard/SkyHigh folder (from my older SkyHigh kernels on other devices, modified and adapted to suit from apb_axel and neobuddy89)
Synapse: FS: add FSTrim push button
/sbin: replace fstrim with (PIE) binary (from arter97 git)
[v1.9] - add SM-N9208_SEA variant support 16th October 2015
[v1.9] - 15th October 2015
ramdisk:
boot.img: disable boot time security check "KERNEL IS NOT SEANDROID ENFORCING" (kernel is still permissive)
Synapse: disable CortexBrain as not needed for in-call reboot bug "work-around" any more. It's fixed !! Intend to add other options here in future.
source:
config: disable unused FS support
build scripts: clear ccache instead of clean
FIX IN-CALL REBOOT BUG: toolchain: change to gcc-linaro-4.9-2014.11-x86_64_aarch64-elf
The recommend Google ARM Toolchain GCC aarch64-linux-android-4.9 causes general stability and in-call reboot issues​
[v1.8b] - 13th October 2015
ramdisk:
Synapse: MEMORY: add Dynamic management of dirty page writebacks control (screen on/off)
Synapse: CPU MULTICORE: add Power Aware Scheduling control - enabling gives better battery (default = disabled for performance)
Synapse: minor adjustments to layout and descriptions.
default.prop: add some experimental RAM management tweaks (thanks to @mikeyinid for the suggestions)
source:
sched: HMP: set Power Aware Scheduling off by default (previously enabled by default in patch)
GPU: set max freq to 700 MHz as default (stock)
cpufreq: Break out early if freq equals to target_freq
PM / sleep: unregister wakeup source when disabling device wakeup
tick: don't update idle time if cpu offline
slub: fix kmem_cache_shrink return value
mm: slub: fix format mismatches in slab_err() callers
a bunch of SELinux patches
mm: Dynamic management of dirty page writebacks
kernel.h: fix error when compiling N9208_SEA
[v1.7b] - 12th October 2015
ramdisk:
Synapse: MEMORY: add Dynamic FSYNC control
Synapse: LOGS: add Android logger control (enabled for logcat)
/sbin/cortexbrain-tune.sh: some adjustments to watchdog control
source:
xz: tweaking kernel compression (not used)
AIO: Don't plug the I/O queue
fs/dyn_sync_cntrl: dynamic Fsync control v1.5
fs/dyn_sync_cntrl: on by default
logger: Add sys fs kernel interface to configure Android logger & modify for Synapse
writeback: fix race that cause writeback hung
timer: optimize apply_slack()
writeback: Fix occasional slow sync(1)
writeback: fix writeback cache thrashing
CHROMIUM: mm: Fix calculation of dirtyable memory
mm: Optimized SLUB memory allocator
arm64: dcache: select DCACHE_WORD_ACCESS for little-endian CPUs
Linux 3.10.61 > 3.10.90 (took a lot of time)
Revert "powersuspend: add screen on/off hooks" from hotplug
decon: add powersuspend hooks
fips: fix whitespaces
arm64: crypto: increase AES interleave to 4x
cpufreq: Remember last policy min/max on cluster restart
mm: vmscan: If kswapd has been running too long, allow it to sleep
[v1.6b] - 9th October 2015
boot.img:
re-pack with custom generated dt.img
ramdisk:
Synapse: HMP: rename to CPU MULTICORE
Synapse: CPU MULTICORE: add PEWQ (Power Efficient Work-queues) for better battery at slight cost of performance.
Synapse: POWER SUSPEND: add PowerSuspend controls
Synapse: MEMORY: add vfs_cache_pressure control
default.prop: insecure adb again
init.rc: remove more code to prevent IO scheduler override
source:
config: add variants and sync to v1.5b
Remove obsolete build script and add build script / tools to build custom dt.img
config: N920C dtb exynos7420-noblelte_eur_open_09
config: N920I dtb exynos7420-noblelte_eur_open_09
sched/fair: Fix small race where child->se.parent,cfs_rq might point to invalid ones
cpufreq: Introduce new relation for freq selection Introduce CPUFREQ_RELATION_C
cpufreq: interactive: use new CPUFREQ_RELATION_C
int_sqrt.c: Correction square root algo with naming
int_sqrt: Improve 3x faster integer sqrt.
workqueue: Fix permission for power_efficient workqueue
a bunch of workqueue patches
jiffies conversions: Use compile time constants when possible
sched/completion: Add lock-free checking of the blocking case
sched: Remove one division operation in find_busiest_queue()
sched/fair: Optimize find_busiest_queue()
kthread_work: wake up worker only when the worker is idle
sync: don't block the flusher thread waiting on IO
mm: Clear page active before releasing pages
makefile: Add SoC-specific compile target
sensorhub: fix compile warning for SM-N9208
workqueue: disable PEWQ by default
config: enable WQ_POWER_EFFICIENT_DEFAULT
PowerSuspend: patch powersuspend driver up to v1.7 & modify to suit
powersuspend: call screen on/off hooks with hotplug (panel hooks)
powersuspend: add power_suspended boolean for global access
config: enable POWERSUSPEND
config: enable TIMA_LKMAUTH and also missing TIMA for SM-N920S
[v1.5b] - 6th October 2015
ramdisk:
Synapse: CORTEX: add CortexBrain to control screen on/off functions. Enabling this FIXES in-call reboot bug (actually a solution - not a "fix"). Thanks to Dorimanx & halaszk88 for the orignial scripts which I chopped to pieces into my SM-N915S kernel .
/sbin: add CortexBrain script
/sbin/SkyHigh.sh: start CortexBrain on boot
source:
Block: add FIOPS I/O scheduler
FIOPS: forward port for use on 3.10 Linux
config: enable IOSCHED_FIOPS
block: sysfs: allow non superusers to change I/O scheduler
block: Reserve only one queue tag for sync IO if only 3 tags are available
blk-throttle: check stats_cpu before reading it from sysfs
cfq-iosched: fix the setting of IOPS mode on SSDs
Block: add BFQ-v7r8-I-O-sched-for-3.10.8+
config: enable IOSCHED_BFQ
block: bfq-iosched: tuning for SSD
a lot of block commits to support ROW IO scheduler
Block: add ROW I/O scheduler
block: row: add magic values
config: enable IOSCHED_ROW
sched/cputime: Do not scale when utime == 0
[v1.4b] - 5th October 2015
ramdisk:
Synapse: THERMAL: add CPU, GPU, MIF & ISP thermal controls
Synapse: BATTERY: add charge controls (adapted from AndreiLux)
source:
GPU: allow min freq to 100 / 160 MHz
GPU: allow max freq to 772 / 852 MHz
GPU: increase throttling levels for better performance
GPU: increase max allowable voltage
GPU-MALI-T760: Added GPU THERMAL control interface
ARM: Mali-T760: disabled min/max lock. TouchWiz use this, so we can use normal DVFS with this patch
drivers/cpufreq: fix Samsung typos
exynos7420_tmu: add configurable interface
config: increase kernel log size so it is not overwritten
DEBUG: capture beginning of the crash in last_kmsg
config: enable building of dtb
[v1.3b] - 4th October 2015
updater-script:
create basic flashable zip for custom recovery
ramdisk:
Update N920T to N920TUVU2COI5
Synapse: SCREEN: remove mDNIe colour controls
init.rc: ensure IO schedulers are not overridden
source:
remove video: exynos: Decon: Add mDNIe colour control (causing display colour issues. Maybe take a look another time)
[v1.2b] - 3rd October 2015
ramdisk:
Update N920C to N920CXXU1AOI1
Synapse: LED: add LED fade-in/out controls
Synapse: SCREEN: add mDNIe colour controls (AndreiLux)
Synapse: HMP: add HMP LITTLE Packing control (Power savings at a slight cost to performance)
Synapse: HMP: add Exynos Core Control Interface (choose 1 > 8 cores online)
init.rc: set randomize_va_space to 0 (disabled) for improved GUI responsiveness
init.rc: fix Samsung syntax error: setprop sys.sysctl.compact_memory 0
disable some unnecessary security stuffs (arter97)
default.prop: (trying to fix errors and panic)
remove FHA for now whilst testing for reboot
various security additions/removal testing for reboot​
source:
Source: merge in SM-N920C_SEA_LL N920CXXU1AOI1
Trying to fix some some errors and panic
sysrq: Emergency Remount R/O in reverse order
Revert "security: SELinux: Avoid enabling enforcing by conventional flag
Revert "security: SELinux: revert Samsung hard enforcing
selinux: loose everything
config: more TIMA adjustments​
video: exynos: Decon: Add mDNIe colour control
video: exynos: Silence mDNIe control hook
cpufreq: Silence dm_hotplug debug
config: compile SCHED_HMP_LITTLE_PACKING
HMP: disable HMP LITTLE packing (default)
LED: add LED fade-in/out control
Dynamic CPU Hotplug: exynos-interface from Universal5410
dm_cpu_hotplug.c: fix compile error
[v1.1] - 30th August 2015
ramdisk:
Synapse: INFO: added asv_summary
Synapse: GPU: added GPU freq scaling MIN/MAX controls
init.rc: added some boot defaults (ensure stock CPU & GPU freqs)
source:
A57: allow max 2400 MHz & min 500 MHz
A53: allow min to 200 MHz
cpufreq: Add kt files and build it
cpufreq: Set global var screen_is_on when screen goes on and off
gpu: Add code to allow user to control min and max GPU Mhz - @ktoonsez
[v1.0] Initial Release - 29th August 2015
A lot of credit (as always) goes to @AndreiLux for various source commits, Synapse app and UCI support and more !
REQUIREMENTS
Variant support for:
SM-G920F​
FOR BUG REPORTING: Stock UNMODIFIED TouchWiz (TW) 5.1.1 ROM (this means no Xposed or tweaks etc)
Custom recovery i.e.. TWRP
INSTALLATION
Uninstall any CPU control apps, tweaks and init.d scripts etc.
Recommend: Disable or remove KNOX (you can disable with Synapse once kernel is flashed)
Install Synapse app from Google Play and rate it ☆☆☆☆☆ !!
Device Settings:
Enable Developer Options > OEM UNLOCK
If flashing from any custom kernel with Synapse app > Device settings > Applications > Synapse > Force Stop > clear data​
If not installed > Install SuperSU from Google Play:
Boot into custom recovery and flash SkyHigh_kernel____.zip FOR YOUR DEVICE and reboot
After boot:
a) wait at least 120 secs to stabilize
b) Open Synapse
c) Tap "Understood"
d) DO this step so some defaults are set !!
1. tap the square menu button top right hand corner
2. tap the three dots button
3. "select all globally"
4. tap the back button next to it
5. apply​
DOWNLOADS
SM-G920F [ v2.9 ] READ THIS >>>>> FIRST [ v3.0 ] RELEASE IS TOMORROW
________________________________________________________________________
SOURCE
ALL KERNELS COMPILED WITH SAME SkyHigh SOURCE !!
Github
.
Help and FAQ
THREAD RULES & PROTOCOLS FOR THIS DEVELOPMENT THREAD:
I MIGHT NOT HAVE YOUR DEVICE variant and or able to reproduce your "issue". With this in mind, without providing as much information as possible, and resetting your device to a stable unmodified baseline, any potential troubleshooting or logs could be meaningless. So please follow the guidelines set out below. Thanks
BY POSTING YOUR ISSUES IN THIS THREAD, YOU ARE AGREE TO HELP YOURSELF FIRST BY PROVIDING INFO REGARDING:
Code:
1. DEVICE MODEL ?
2. ROM and firmware version (build number, boot-loader etc) ?
3. EXACT steps taken to reproduce YOUR issue
4. Screen-shots (if applicable)
5. Did you read Posts #1-3 completely?
6. Did you search the thread, XDA or GOOGLE?
7. Did you follow the install instructions EXACTLY?
8. What was your previous kernel?
9. Do you have any other known kernel tweaking apps, scripts or mods? ([B]remove them[/B]). [COLOR="Red"]This includes Xposed etc[/COLOR]
10. Try older kernel (if available)
11. Factory reset ?
12. Try latest stock [B]UNMODIFIED[/B] firmware (without custom ROM - if you have installed) and factory reset
13. Delete your ROM BusyBox (kernel uses it's own in /sbin)
ONLY IF YOU HAVE TRIED SUGGESTIONS ABOVE:
Turn on logging in Synapse and save logs AT TIME OF ERROR. AND post together with ALL the above information.
ELSE, DON'T WASTE MY TIME, YOU WILL BE IGNORED AND/OR POST REPORTED !!
THANK YOU :good:
CAN I BUILD A KERNEL FOR YOUR __XX DEVICE ?
I will not build for any device that I can not compile using SAME source, personally test method or debug. Some device variants can compile with same source.
If you have any of the following, please post your LATEST stock boot.img along with the firmware version you extracted it from.
N920R4​
Download the full firmware package from either sammobile.com or samsung updates.com (1.5+ GB )
"NO UCI SUPPORT"
It's a ROM busybox compatibility issue
Three choices:
Device > settings > applications > Synapse > force close & wipe data and REBOOT
OR
Remove your ROM busybox from /system xbin and /system/bin (Synapse will use the kernel busybox in /sbin).
Force stop Synapse and delete app data (device settings > applications)
Re-flash kernel as per Installation Instructions
OR
Try install a different busybox
Force stop Synapse and delete app data (device settings > applications)
Re-flash kernel as per Installation Instructions
STUCK ON SAMSUNG BOOT LOGO AFTER FLASH
Ensure you flashed the correct kernel for your device model
Ensure your download is not corrupted. Check MD5 hash or re-download
Your current base firmware (ROM, boot-loader version etc.) may be incompatible - UPDATE to latest with Odin and try again.
CM SUPPORT
Read Post #12
"Unauthorized actions have been detected, reboot to undo changes"
As it's a common warning found with all KNOX enabled android devices, you would have found the answer by Google search and also that it is actually unrelated to kernel and also unrelated to this kernel development..............
It is caused by the process of rooting/modifying your device. Unless you use KNOX, don't worry.
[Q] How to disable
[A] Freeze or delete your KNOX & Security related apps/processes manually (using root explorer or titanium backup (pro) or use Synapse > Security > disable KNOX
CAN I USE OTHER KERNEL CONTROL APPS
No, many features and options won't be available. Remove all other control apps to avoid conflicts !
Synapse is the recommended and has everything you need
BATTERY TIPS
Try enable some of the CPU MULTICORE features in Synapse (slight performance cost):
Power Aware Scheduling
HMP LITTLE Packing
PEWQ (power-efficient workqueue)
Increase the HMP Up threshold a little
PERFORMANCE TIPS
LATER
RANDOM REBOOT
Don't UV or UC CPU or GPU
Use SkyHigh defaults
Use a stock UNMODIFIED ROM for your device variant
No tweaks, Xposed or other CPU control apps installed
ASV_GROUP (ALL DEVICES ARE NOT CREATED EQUAL)
http://forum.xda-developers.com/showpost.php?p=61579949&postcount=202
CAN I INCLUDE SkyHigh KERNEL IN MY ROM
Although I do appreciate your contribution here, if you could please do not include my kernel in any ROM package etc. This policy goes for anyone.
Having my kernel distributed outside my development thread just removes a lot of credit and more importantly, constructive user feedback that could be helpful to my development or user issue.
DOWNLOAD LINK NOT WORKING
I want to keep this project all in one place - ☆☆ NO MIRRORS ☆☆
Please try again in a few minutes
POOR CPU/GPU BENCHMARK or GRAPHICS PERFORMANCE
Disable any CPU MULTICORE options in Synapse
Allow the device to cool. Repetitive testing will heat the device hardware and invoke thermal throttling and lead to decreased benchmark.
HIGH CPU/GPU OC >> excessive heat >> thermal throttling >> reduced clock frequency >> DECREASE PERFORMANCE
BACKUP & RESTORE
DO NOT restore profiles from different kernel version
If the backup isn't visible, reboot device and ensure for have "synapse boot completed" message. Otherwise synapse won't read the file.
DYNAMIC MANAGEMENT OF DIRTY PAGE WRITEBACKS
* [Christopher83]
This feature allows to have two different intervals for dirty page
writebacks and to dynamically manage them when the system has been
resumed (it's active) or when has been suspended.
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)
- dirty_writeback_suspend_centisecs is the interval for the dirty page
writebacks when the system is suspended (screen off)
This feature is in part inspired on Francisco Franco's patch:
https://github.com/franciscofranco/mako/commit/34d79548cf16b69c7d0154836018e7f258a22947
Click to expand...
Click to collapse
TCP/IP NETWORK SECURITY
* Thanks to zeppelinrox & V6SuperCharger
Hardening the TCP/IP stack to SYN attack
Bump up tw_buckets in case we get DoS'd
Ignore pings
Don't cache connection metrics from previous connection
Don't pass traffic between networks or act as a router
Enable spoofing protection (turn on reverse packet filtering)
Don't accept source routing
Don't accept redirects
- Further reading:
http://www.cyberciti.biz/faq/linux-kernel-etcsysctl-conf-security-hardening
http://www.symantec.com/connect/articles/hardening-tcpip-stack-syn-attacks
CHROMECAST - STREAMING PROBLEMS
* Thanks to @AtLmd Post
Lock screen MUST be enabled (simple screen lock swipe) I don't know why but it breaks the chromecast app's ability to resume smoothly if switched off
Synapse > Network > DTIM (both screen ON & OFF) = 1
Synapse > Network > WIFI Power Mode (screen OFF) = FAST
.
UpInTheAir said:
There is no link yet. You didn't bother to read the link right next to it ?
Click to expand...
Click to collapse
Placeholder threads aren't allowed on XDA. Please let me know when you have a link to post for download. Until then, thread closed.
Thread Closed
Razvan
Forum Moderator

Categories

Resources