Related
This modules are for people with stock kernels because they don't have 'smartass' or ondemandX' governors.
EASY ENGLISH:
Differences between this modules and build in stock kernels:
- allows to set max CPU freq when screen is off (to save battery),
- allows to set starting CPU freq when phone awakes (to speed up awake process),
- allows set/change almost all aspects of governor (to suite needs),
- should be a bit more responsive when parameters are well chosen for smartassv2 governor.
Each governor has some predefinied values - more info in "Available settings".
If governors works or not on other version then 4.0.2.A.0.42 let me know.
Start:
The goal was bring 'smartassv2' and 'ondemandX' governor to work with stock kernel on Neo V.
Most information is in my thread on 'XPERIA X8 Android Development': [Module] | X8 | X10 mini/pro | AX8_SMARTASS v002 | 'smartass' governor | [2011-07-19]
To remind:
SmartassV2 (informal description and comparison with the first smartass)
SmartassV2 is a governor (controls the frequency of the CPU at each give moment) which like the first smartass is generally based on the implementation of interactive with some major changes and the addition of a built in sleep profile (behaves a bit differently when screen is off vs. on).
The smartassV2 improves the very naive scheme which the first smartass had: The first smartass (with the values I set for the hero), would cap the max frequency at 352Mhz for sleep and when screen is on, would do the opposite and keep the frequency at 518Mhz or above. For sleep this was very effective but a bit crude and unclean, and there could be some cases where you would need processing power even when screen is off (something is updating and music is playing and etc.). For screen on, smartass1 was too quick to jump to the max available frequency and again would never go below the 518Mhz, so in a nutshell its was using "too high" frequencies.
SmartassV2, introduce (internally) an "ideal" frequency which is the frequency we are "aiming" for, in some sense. The way I see it is that the "ideal" frequency is a hint to the governor what is a good balance between performance and battery life. Now when screen is on, I set (on the hero) the ideal frequency to 518Mhz which will ensure nice responsiveness but limit unnecessary use of higher frequencies when they are not needed. When screen is off, I set the ideal frequency to 352Mhz (0 will disable the screen state tracking all together). From my testing this will "convince" the governor to spend most of the its time during sleep at the lowest available frequencies. Note, that both during sleep and when awake the entire frequency range (as defined by the "user" - i.e. selected with SetCPU) is used by smartassV2. For example, when the CPU is loaded heavily, the highest available frequency will be used regardless if screen is on or off.
Click to expand...
Click to collapse
ondemandX - ondemand governor code from latest linux (3.0 at the moment) source *plus* the suspend/wake logic described above. No further optimization is done.
Click to expand...
Click to collapse
Info:
- information about governors is here,
- more information about 'smartass' governor is here or here,
- how different governors work is explained here: [Q] SetCPU governors (explained).
Prerequisites:
- Neo V (if works on Neo - let me know),
- root,
- ondemandX should work on any version,
- smartass was compiled against 4.0.2.A.0.42 version, how run on other version will be explained in manuall installation section,
- desire to replace SetCPU - when used only for 'ScreenOff' profile.
Manual installation:
Unzip file
Run copy.cmd file - this should copy modules to /system/lib/modules
run adb shell or terminal - whatever you like and execute su
Code:
su
If you have 4.0.2.A.0.42 version proceed to step 6
For smartass governor you need to know address for 'kallsyms_lookup_name'
run following command:
Code:
cat /proc/kallsyms | grep kallsyms_lookup_name
result should be as follows:
Code:
80101aec T module_kallsyms_lookup_name
[SIZE="3"][B]801056f0[/B][/SIZE] T kallsyms_lookup_name
Bolded value (801056f0) is address which we need.
Optional step: lower min CPU freq:
Code:
echo 122880 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
Insert ondemandX module:
Code:
insmod /system/lib/modules/aneov_ondemandx.ko
in dmesg command should be line:
Code:
<6>[ 431.711517] aneov_ondemandX: module v001 for device Xperia Neo V loaded
Insert smartassV2 module:
for version 4.0.2.A.0.42 just run command:
Code:
insmod /system/lib/modules/aneov_smartass2.ko
in dmesg command should be line:
Code:
<6>[ 420.308380] aneov_smartass2: module v001 for device Xperia Neo V loaded
for other use 'address' and use following command:
Code:
insmod /system/lib/modules/aneov_smartass2.ko lookup_address=0x[B][COLOR="Red"]801056f0[/COLOR][/B]
in dmesg command should be line:
Code:
<6>[ 420.308380] aneov_smartass2: module v001 for device Xperia Neo V loaded
Now you can enable desired governor. Execute:
Code:
echo "smartassV2" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
for smartassV2 or
Code:
echo "ondemandX" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
for ondemandX governor.
Lower min cpu freq a bit:
Code:
echo 122880 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
Until you're sure that it works with your hardware, don't install it to hw_config.sh.
Available settings:
Will be added later
v001:
- just initial version fixed to work with Neo V.
Disclaimer
I'm not responsible if this module damages your lovely phone. Use it at your own risk! Think before you do something!
Sources at: GitHub
Thank you!
On .62 firmware, I didn't have to specify lookup_address, since it didn't recognise that option, but it seems to work.
Also a good full article about governors:
http://forum.xda-developers.com/showpost.php?p=19846276&postcount=1
is there any chance to get this as a zip for cwm?
edit:yay! just put it manually into system/lib/modules and changed permissions and it works!
Working .62.
Could you also build an OC module please, that would be awesome.
Sent from my MT11i using Tapatalk
mpiekp said:
Working .62.
Could you also build an OC module please, that would be awesome.
Sent from my MT11i using Tapatalk
Click to expand...
Click to collapse
If I find source somewhere - or someone point me to sources - I can try.
Sources from any custom kernel, just compile against stock.
Thank you
Sent from my MT11i using Tapatalk
Hell yea, OC module for locked BL would be awesome!
Any news about OC or UV modes?
Wysłano z MT11i z użyciem Tapatalk
Will this work with my x8
Sent from my E15i using XDA
Intellidemand please!
Could you please make an intellidemand governor also..
Also please see these commits for some changes to smartass2 (more stable) and working lulzactive
thread dead for more than 2 months...
Zed's dead. but no matter
OK- so I'm planning on installing the module on a different device. with the assumption that the smartassv2.ko drivers are all the same, i figure that only the specifics differ.
e.g. no /sys/lib folder exists in my system, though a /sys/modules folder does.
So, the plan is: i edit the script to point towards the valid directories; place the files in those noted directories (eg create a /sys/lib/modules folder); edit the "scanning_available_governors" to mention those governors; kick back and enjoy.
two things concern me. First, I checked the symsearch.ko file found references to the kallsyms, as well as to the general public license and ARMv7, but haven't found much info online as to what the driver does. since it mentions architecture that may or may not adhere to my device (samsung galaxy player 5),should I go ahead?
Second, OP mentioned:
"result should be as follows:
Code:
80101aec T module_kallsyms_lookup_name
801056f0 T kallsyms_lookup_name
Bolded value (801056f0) is address which we need."
the instructions following that line doesn't mention the kallsyms_lookup_name addy again. so what is the addy good for?
thanks!
Wow IT REALLY WORKED.
i have smartass V2 on My locked bootloader .
Thank you.
(Yes i know i am a gravedigger but more people have to see this.)
Just everyday i find one more reason for not to unlock my BL.
I have the best governor
Best tweaks.
OC is useless (it consumes battery and Destroyes the phone).
WHY THE HECK WOULD I WANT A CUSTOM ROM.
EDIT: Erm guys how do i install it with hw_config.sh
It may be a silly question, but after reading descriptions to both the badass and the smartass v2 governors, but I'm still not quite sure which one will provide better battery life overall.
SmartassV2 is the answer ;P
not working on miui 2.7.13 based on 4.0.4
I would like to know the default settings of the parameters of ondemand CPUFreq governor that SAMSUNG has choosen for my SAMSUNG S4. I have not flashed my phone with any custom kernel. I have been reading about dynamic frequency scaling support in Linux Kernel and found out that CPUFreq subsystem implements this functionality with the help of the governors.
I found the governor for the Core 0 of my device as
:~$ adb shell cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
ondemand
then I started learning about ondemand governor. I found in kernel documentation, which states that following are the parameters for ondemand governor.
•sampling_rate
•sampling_rate_min
•up_threshold
•ignore_nice_load
•sampling_down_factor
•powersave_bias
next, I was trying to figure out where/how can I access these parameters, I read here
and some other places as well that these parameters are found in /sys/devices/system/cpu/cpu?/cpufreq/ondemand directory.
Now, In my case for SAMSUNG S4, I can not see any directory named as ondemand inside /sys/devices/system/cpu/cpu0/cpufreq . I tried a rooted SAMSUNG S3 of a friend aswell, and I could not see the directory in that aswell.
My intention is to keep the default settings/not change the kernel and just to get to know what are the default settings of the CPUFreq governor, I purchased the phone with ?
P.S. this is my first post on xda-developer forums, so please pardon me if I ignored some important rule.
Hey Everyone,
I'm by no means a pro at kernel building but I've put lots of effort into this kernel so I thought I'd share it with you. After a very long inner conflict period I've decided to post in the android development forum instead of the original android development. I've included features of my own as well as patches and other features of many other top notch kernel developers. I would prefer if you make your way over to my source (link below) and read the commits so you can get to know them and how they have contributed but alas I not that naive enough to think any of you really would actually go and do that so I've included a nice feature list in post 2 with proper credits (at least for the big stuff).
I am a huge fan of giving you options which is why I build my kernel with multiple toolchains and multiple sound options for you to test out and decide which option you find works best for you.
I also made a Release Folder that contains kernels that do not contain any CPU or GPU overclock to keep things more stable for you. This kernel is built with UBERTC 4.9.4 since I feel like that give the best battery. Choose this option for stability.
I frequently get asked if this kernel works with the many AOSP projects. The answer is YES! I haven't found an AOSP ROM yet that won't boot with this kernel. The only potential issue is that the ROM you flashed this kernel with has modified the ramdisk from stock or doesn't have a root containing sepolicy for Lollipop. Make sure to flash back to a stock ROOTED kernel and then flash UBER. My kernel uses you ramdisk while flashing for great ROM compatibility but sometimes this backfires.
Do not flash on CM or CM-based ROMs! This kernel is not currently compatible with those "CAF-based" ROMs.
WARNING!!! Even though I don't post anything unless it works (in this case on most if not all AOSP ROMs) I still don't want to be liable for user errors. In other words, if you flash one of these Kernels your warranty is void and I AM NOT RESPONSIBLE for any data loss or bricked devices etc.
For more info see this video
[AOSP 5.1 UBER KERNEL LINKS]
Mirror #1: https://s.basketbuild.com/devs/Cl3Kener/HAMMERHEAD/UBER-L/
Mirror #2: https://renderserver.net/browse?path=Cl3Kener/HAMMERHEAD/UBER-L
Mirror #3: uber.oceighty.co/HAMMERHEAD/UBER-L/
If you still want access to Kitkat Kernels Go to:: https://s.basketbuild.com/devs/Cl3Kener/HAMMERHEAD/UBER/
Comprehensive Changelog of Everything (Aka Source Code)
https://github.com/Cl3Kener/UBER-L/commits/master
Code:
[SIZE=4]
[B][SIZE="6"]UBER Changelogs[/SIZE][/B]
[B]10/03/15[/B]
- 3.4.109
- F2FS updates
- Backlight Dimmer from Kitkat Kernel Returns!
- KCAL updates
- Better BFQ/CFQ tunings
[B]09/18/15[/B]
- Enable BFQIO Cgroup
- Merge android-msm-hammerhead-3.4-lollipop-mr1.1 tag (no significant change)
- Remove UBERTC 4.8.5 Kernel and add UBERTC 5.2.1 Faux and Francosound versions
- Update Toolchains to 9/18/15 Snapshot
[B]09/11/15[/B]
- Returned SELinux Toggle to CFG (it was removed on accident)
- 8555f12 lz4: fix system halt at boot kernel on x86_64
- 264f011 Makefile: sort list of defconfig targets in make help output
- 7cc54ca kbuild: remove warning about "make depend"
[B]09/05/15[/B]
- Merge latest F2FS from upstream
- Kernel source bump to 3.4.108
- Update Toolchains to 9/5 (see github.com/UBERTC for details)
- Other misc bug fixes
[B]5/13/15[/B]
6cb9d79 f2fs: fix counting the number of inline_data inodes
f2f065b f2fs: don not re-lookup nat cache with same nid
189ca9c f2fs: remove unneeded f2fs_make_empty declaration
29b6fe9 f2fs: issue discard with finally produced len and minlen
611b6ee f2fs: introduce discard_map for f2fs_trim_fs
55efe4c f2fs: revmove spin_lock for write_orphan_inodes
30a0e33 f2fs: split find_data_page according to specific purposes
aa6141b f2fs: add need_dentry_mark
11a3834 f2fs: fix race on allocating and deallocating a dentry block
9f96171 f2fs: introduce dot and dotdot name check
e37bfdd f2fs: move get_page for gc victims
4dc9fb0 f2fs: add sbi and page pointer in f2fs_io_info
ccd6bae f2fs: add f2fs_may_inline_{data, dentry}
6779a11 f2fs: clean up f2fs_lookup
b60987f f2fs: introduce f2fs_commit_super
21087dc f2fs: add f2fs_map_blocks
36ec73a f2fs: add feature facility in superblock
a907c38 f2fs: move existing definitions into f2fs.h
06efb1d f2fs: add missing version info in superblock
39ee8dd f2fs: fix not to check IS_ERR for null pointer
aa9f5f4 f2fs: make has_fsynced_inode static
8ef6ea8 f2fs: add offset check routine before punch_hole() in f2fs_fallocate()
5cc5ac1 f2fs: use is_valid_blkaddr to verify blkaddr for readability
b5731af f2fs: fix wrong error hanlder in f2fs_follow_link
41a82f9 Revert "f2fs: enhance multi-threads performance"
74e1c0f Defconfig: Use XZ Compression
3296fd2 Defconfig: Use regular gzip compression
9c0a666 ipv4: Missing sk_nulls_node_init() in ping_unhash().
4213a5d SELinux: ss: Fix policy write for ioctl operations
a317da7 seccomp: Replace BUG(!spin_is_locked()) with assert_spin_lock
73d6b2c nf: IDLETIMER: Adds the uid field in the msg
b0064e6 ARM: add documentation for finding start of physical memory
4609cfd ARM: 8294/1: ATAG_DTB_COMPAT: remove the DT workspace's hardcoded 64KB size
40a96c1 ARM: 8191/1: decompressor: ensure I-side picks up relocated code
f53b231 ARM: compressed/head.S: remove s3c24xx special case
950e423 hashtable: introduce a small and naive hashtable
bd0707b lib/lz4: Pull out constant tables
666f751 SELinux: use deletion-safe iterator to free list
057b63c SELinux: per-command whitelisting of ioctls
e979523 security: lsm_audit: add ioctl specific auditing
b813589 SELinux: Update policy version to support constraints info
d464f89 SELinux: add default_type statements
6be5d3b SELinux: allow default source/target selectors for user/role/range
9529eb0 selinux: add SOCK_DIAG_BY_FAMILY to the list of netlink message types
efff44c selinux/nlmsg: add XFRM_MSG_MAPPING
d1d6e3b selinux/nlmsg: add XFRM_MSG_MIGRATE
1c24c4a selinux/nlmsg: add XFRM_MSG_REPORT
19bf436 selinux/nlmsg: add XFRM_MSG_[NEW|GET]SADINFO
bb0858e selinux/nlmsg: add XFRM_MSG_GETSPDINFO
cfe7f96 selinux/nlmsg: add XFRM_MSG_NEWSPDINFO
27c0a2f pstore: selinux: add security in-core xattr support for pstore and debugfs
7380a43 f2fs:sync with upstream branch
b0afd9f VFS: Make more complete truncate operation available to CacheFiles
[B]4/24/15[/B]
129daf9 Revert "usb-storage/SCSI: blacklist FUA on JMicron 152d:2566 USB-SATA controller"
41003d9 Linux 3.4.107
5af9f19 PCI: Handle read-only BARs on AMD CS553x devices
b167462 lib/checksum.c: fix build for generic csum_tcpudp_nofold
0f3307a mm: fix anon_vma->degree underflow in anon_vma endless growing prevention
419bc8f net: compat: Update get_compat_msghdr() to match copy_msghdr_from_user() behaviour
e370ccd nilfs2: fix deadlock of segment constructor during recovery
26c0d38 spi: dw: revisit FIFO size detection again
79940b6 ntp: Fixup adjtimex freq validation on 32-bit systems
6a5e559 s390/3215: fix tty output containing tabs
84630a5 x86, cpu, amd: Add workaround for family 16h, erratum 793
fc431d8 fsnotify: next_i is freed during fsnotify_unmount_inodes.
c7d8a3b net:socket: set msg_namelen to 0 if msg_name is passed as NULL in msghdr struct from userland.
7fbd1ca sched/rt: Reduce rq lock contention by eliminating locking of non-feasible target
cf11b56 Bluetooth: ath3k: workaround the compatibility issue with xHCI controller
53b3052 staging: comedi: cb_pcidas64: fix incorrect AI range code handling
99ce0af ipvs: rerouting to local clients is not needed anymore
294b66d jfs: fix readdir regression
dd3ef12 pagemap: do not leak physical addresses to non-privileged userspace
418605d Drivers: hv: vmbus: incorrect device name is printed when child device is unregistered
1f833bc nilfs2: fix deadlock of segment constructor over I_SYNC flag
bad8e6c ASoC: sgtl5000: add delay before first I2C access
d481c9e net: sctp: fix passing wrong parameter header to param_type2af in sctp_process_param
faca147 net: sctp: fix NULL pointer dereference in af->from_addr_param on malformed packet
27fb1ba gpio: sysfs: fix memory leak in gpiod_sysfs_set_active_low
407e221 gpio: sysfs: fix memory leak in gpiod_export_link
b9c0ed3a MIPS: Fix kernel lockup or crash after CPU offline/online
383e2c7 caif: remove wrong dev_net_set() call
0a533c8 lib/checksum.c: fix carry in csum_tcpudp_nofold
a096ac4 ALSA: ak411x: Fix stall in work callback
2c43d74 ASoC: atmel_ssc_dai: fix start event for I2S mode
93625b6 MIPS: IRQ: Fix disable_irq on CPU IRQs
b8efe516 x86, mm/ASLR: Fix stack randomization on 64-bit systems
666b625 net: sctp: fix skb_over_panic when receiving malformed ASCONF chunks
af58a41f net: sctp: fix panic on duplicate ASCONF chunks
61294cb vm: make stack guard page errors return VM_FAULT_SIGSEGV rather than SIGBUS
dd37b66 vm: add VM_FAULT_SIGSEGV handling support
31eae22 ipv6: replacing a rt6_info needs to purge possible propagated rt6_infos too
afd1787 net: sctp: fix slab corruption from use after free on INIT collisions
7e346ae ALSA: seq-dummy: remove deadlock-causing events on close
1cc70a9 drm/i915: Only fence tiled region of object.
dbabba0 USB: Add OTG PET device to TPL
32a4cb1 usb-core bInterval quirk
c3dbb4a usb-storage/SCSI: blacklist FUA on JMicron 152d:2566 USB-SATA controller
3e2ff0a nl80211: fix per-station group key get/del and memory leak
9048158 powerpc/xmon: Fix another endiannes issue in RTAS call from xmon
284dbe8 regulator: core: fix race condition in regulator_put()
73b7a4a ASoC: wm8960: Fix capture sample rate from 11250 to 11025
7477cfd spi: dw-mid: fix FIFO size
625dac0 spi: dw: Fix detecting FIFO depth
09089c8 x86, hyperv: Mark the Hyper-V clocksource as being continuous
884c3b1 libata: prevent HSM state change race between ISR and PIO
c5e388a scripts/recordmcount.pl: There is no -m32 gcc option on Super-H anymore
5804da9 libata: allow sata_sil24 to opt-out of tag ordered submission
208d3e5 ALSA: usb-audio: Add mic volume fix quirk for Logitech Webcam C210
33033f8 gpio: sysfs: fix gpio attribute-creation race
cc46bd9 gpio: sysfs: fix gpio device-attribute leak
01ae018 gpiolib: Refactor gpio_export
66f9bf0 gpio: sysfs: fix gpio-chip device-attribute leak
391bbd9 driver core: Introduce device_create_groups
b295f4b sysfs.h: add ATTRIBUTE_GROUPS() macro
d350632 can: dev: fix crtlmode_supported check
685bcb9 ftrace/jprobes/x86: Fix conflict between jprobes and function graph tracing
4f338c7 gpio: fix memory and reference leaks in gpiochip_add error path
67fbd53 mm: fix corner case in anon_vma endless growing prevention
6255515 mm: Don't count the stack guard page towards RLIMIT_STACK
b7bd760 USB: console: fix potential use after free
5e3c147 OHCI: add a quirk for ULi M5237 blocking on reset
e5b68b3 HID: roccat: potential out of bounds in pyra_sysfs_write_settings()
b5f80db mm: protect set_page_dirty() from ongoing truncation
9e2a7ed mm: prevent endless growth of anon_vma hierarchy
cc4a897 mac80211: fix multicast LED blinking and counter
1b6398d Input: I8042 - add Acer Aspire 7738 to the nomux list
d4211e2 Input: i8042 - reset keyboard to fix Elantech touchpad detection
ab8f85c time: adjtimex: Validate the ADJ_FREQUENCY values
e9dbd12 time: settimeofday: Validate the values of tv from user
6973163 sata_dwc_460ex: fix resource leak on error path
c463826 mm: propagate error from stack expansion even for guard page
70946fb USB: cp210x: add IDs for CEL USB sticks and MeshWorks devices
c8eb987 virtio_pci: document why we defer kfree
7586079 virtio_pci: defer kfree until release callback
be42ade virtio: use dev_to_virtio wrapper in virtio
86f0a0b ALSA: hda - Fix wrong gpio_dir & gpio_mask hint setups for IDT/STAC codecs
436f6e5 x86, um: actually mark system call tables readonly
a1c9f2c USB: cp210x: fix ID for production CEL MeshConnect USB Stick
536d010 video/logo: prevent use of logos after they have been freed
4b2d8f9 net: Fix stacked vlan offload features computation
9f9e0eb crypto: af_alg - fix backlog handling
8714253 udf: Check component length before reading it
e8ccb36 x86_64, vdso: Fix the vdso address randomization algorithm
381e190 udf: Check path length when reading symlink
a1d9cdb udf: Verify symlink size before loading it
5e5b0ad udf: Verify i_size when loading inode
aa4a4d8 isofs: Fix unchecked printing of ER records
2beaf0f ocfs2: fix journal commit deadlock
47d92db ALSA: usb-audio: extend KEF X300A FU 10 tweak to Arcam rPAC
c0f882a iscsi-target: Fail connection on short sendmsg writes
5bf2cf1 isofs: Fix infinite looping over CE entries
b43f5a7 storvsc: ring buffer failures may result in I/O freeze
0171dc6 x86/tls: Don't validate lm in set_thread_area() after all
fe0e500 x86/tls: Disallow unusual TLS segments
ccbdf10 genirq: Prevent proc race against freeing of irq descriptors
070cfb0 x86_64, switch_to(): Load TLS descriptors before switching DS and ES
3b6254d ncpfs: return proper error from NCP_IOC_SETROOT ioctl
1f8e97d Btrfs: fix fs corruption on transaction abort if device supports discard
ee88360 KEYS: Fix stale key registration at error path
d33fb04 ALSA: usb-audio: Don't resubmit pending URBs at MIDI error recovery
218ba26 can: peak_usb: fix cleanup sequence order in case of error during init
583aecd can: peak_usb: fix memset() usage
fdfce29 drm/radeon: check the right ring in radeon_evict_flags()
f712352 hp_accel: Add support for HP ZBook 15
e03e5f4 drm/vmwgfx: Fix fence event code
313249d drm/vmwgfx: Don't use memory accounting for kernel-side fence objects
b78be84 iommu/vt-d: Fix an off-by-one bug in __domain_mapping()
59075a8 ath5k: fix hardware queue index assignment
ec453d0 ath9k: fix BE/BK queue order
1e4f9ee ath9k_hw: fix hardware queue allocation
b0003ef serial: samsung: wait for transfer completion before clock disable
f703d74 mfd: tc6393xb: Fail ohci suspend if full state restore is required
ff130a1 USB: cdc-acm: check for valid interfaces
1f9db86 cdc-acm: memory leak in error case
52f7ea1 megaraid_sas: corrected return of wait_event from abort frame path
3c1b66b ASoC: sigmadsp: Refuse to load firmware files with a non-supported version
566423d genhd: check for int overflow in disk_expand_part_tbl()
9a95a6f scsi: correct return values for .eh_abort_handler implementations
e97273c PCI: Restore detection of read-only BARs
2c41cbd drbd: merge_bvec_fn: properly remap bvm->bi_bdev
482d22e driver core: Fix unbalanced device reference in drivers_probe
8ca5f89 UBI: Fix invalid vfree()
2f3b2e1 usb: renesas_usbhs: gadget: fix NULL pointer dereference in ep_disable()
7a2d438 writeback: fix a subtle race condition in I_DIRTY clearing
347ac8b writeback: Move I_DIRTY_PAGES handling
62f5128 eCryptfs: Force RO mount when encrypted view is enabled
bba4bdb i2c: davinci: generate STP always when NACK is received
1b231ad ahci: disable MSI on SAMSUNG 0xa800 SSD
2575c22 ahci: disable MSI instead of NCQ on Samsung pci-e SSDs on macbooks
9219bb3 ahci: disable NCQ on Samsung pci-e SSDs on macbooks
badcbca mm: fix swapoff hang after page migration and fork
81d169a drm/radeon: kernel panic in drm_calc_vbltimestamp_from_scanoutpos with 3.18.0-rc6
90f3dfb sata_fsl: fix error handling of irq_of_parse_and_map
f1c27d0 AHCI: Add DeviceIDs for Sunrise Point-LP SATA controller
e8fb016 drm/i915: Unlock panel even when LVDS is disabled
f67a7bb powerpc/pseries: Fix endiannes issue in RTAS call from xmon
0f0a13e Input: xpad - use proper endpoint type
9ac30f5 usb-quirks: Add reset-resume quirk for MS Wireless Laser Mouse 6000
77ff742 MIPS: Loongson: Make platform serial setup always built-in.
b17289a ALSA: hda - Limit 40bit DMA for AMD HDMI controllers
2568455 usb: xhci: rework root port wake bits if controller isn't allowed to wakeup
1b7b64f USB: xhci: Reset a halted endpoint immediately when we encounter a stall.
52647cb USB: xhci: don't start a halted endpoint before its new dequeue is set
b4205de ARM: 8216/1: xscale: correct auxiliary register in suspend/resume
71a57fa bnx2fc: do not add shared skbs to the fcoe_rx_list
f29bef1 nfsd: Fix slot wake up race in the nfsv4.1 callback code
bc8a39f SUNRPC: Fix locking around callback channel reply receive
496ed1e USB: ssu100: fix overrun-error reporting
454e251 USB: keyspan: fix overrun-error reporting
b80b73b USB: keyspan: fix tty line-status reporting
6327481 usb: serial: ftdi_sio: add PIDs for Matrix Orbital products
54e74b3 iio: Fix IIO_EVENT_CODE_EXTRACT_DIR bit mask
7170965 USB: serial: cp210x: add IDs for CEL MeshConnect USB Stick
cd571b4 spi: dw: Fix dynamic speed change.
a50a1ca f2fs: flush symlink path to avoid broken symlink after POR
4b73e2d f2fs: avoid abnormal behavior on broken symlink
edfd750 f2fs: change 0 to false for bool type
78760c3 Support GCC 6.0
317bb9d LZ4 : fix the data abort issue
be937e1 crypto: sha512 - Expose generic sha512 routine to be callable from other modules
077393f crypto: add crypto_[un]register_shashes for [un]registering multiple shash entries at once
db7f9b3 ARM: add support for kernel mode NEON
fe0a05a ARM: 7837/3: fix Thumb-2 bug in AES assembler code
99c2444 ARM: 7626/1: arm/crypto: Make asm SHA-1 and AES code Thumb-2 compatible
d060373 ARM: add .gitignore entry for sha256-core.S
2511498 arm: crypto: Add optimized SHA-256/224
7f6ad8f crypto: arm/aes update NEON AES module to latest OpenSSL version
bfeb2f7 vfs: make it possible to access the dentry hash/len as one 64-bit entry
ca8a95e vfs: move dentry name length comparison from dentry_cmp() into callers
a0848829 vfs: do the careful dentry name access for all dentry_cmp cases
2387abd vfs: remove unnecessary d_unhashed() check from __d_lookup_rcu
587ae11 vfs: clean up __d_lookup_rcu() and dentry_cmp() interfaces
700622d f2fs: avoid punch_hole overhead when releasing volatile data
b97d018 f2fs: do not recover wrong data index
1444e0f f2fs: do not increase link count during recovery
94a1fbe f2fs: assign parent's i_mode for empty dir
34bce52 f2fs: add F2FS_INLINE_DOTS to recover missing dot dentries
[B]4/04/15[/B]
eb3042e f2fs: fix mismatching lock and unlock pages for roll-forward recovery
63803ca f2fs: limit b_size of mapped bh in f2fs_map_bh
aa01503 msm: mdss: KCAL: Update Kconfig description
d220216 Revert "msm: mdss: KCAL: Check panel power state before applying values"
2ca0f0e crypto: msm: Update clock vote for improved performance
3c0c2ca msm: mdss: KCAL: Update according to linux guidelines and checkpatch.pl
03049a3 msm: mdss: KCAL: Check panel power state before applying values
2c6b7f2 soc: qcom: smd: Fix SMD packet sync loss issue
ed728c1 vfs: read file_handle only once in handle_to_path
2ac20db mm: Fix NULL pointer dereference in madvise(MADV_WILLNEED) support
f86c2e1 f2fs: persist system.advise into on-disk inode
4ebe176 f2fs: avoid NULL pointer dereference in f2fs_xattr_advise_get
eae07f7 f2fs: preallocate fallocated blocks for direct IO
54b3e53 f2fs: enable inline data by default
3778d5c f2fs: preserve extent info for extent cache
9eae818 f2fs: initialize extent tree with on-disk extent info of inode
270d9bf f2fs: introduce __{find,grab}_extent_tree
4d1d685 f2fs: split set_data_blkaddr from f2fs_update_extent_cache
e593abe f2fs: enable fast symlink by utilizing inline data
f545fdf f2fs: add some tracepoints to debug volatile and atomic writes
bab1b76 f2fs: set SBI_NEED_FSCK when encountering exception in recovery
77a1d2e f2fs: avoid wrong f2fs_bug_on when truncating inline_data
e131be1 f2fs: enhance multi-threads performance
3f434ce f2fs: set buffer_new when new blocks are allocated
dc04eca f2fs: fix to cover sentry_lock for block allocation
e6f5b86 f2fs: fix to check current blkaddr in __allocate_data_blocks
b341170 f2fs: fix to truncate inline data past EOF
0f7c2b2 f2fs: fix to calculate max length of contiguous free slots correctly
8b45aaf f2fs: fix unlocked nat set cache operation
2d99836 f2fs: cleanup statement about max orphan inodes calc
276e1f8 f2fs: remove unnecessary condition judgment
fb7e065 f2fs: set the correct place of initializing *res_page
e00264c f2fs: reduce searching region of segmap when set free section
7496d83 f2fs: fix extent cache memory leak
fc94db1 f2fs: relocate Kconfig from misc filesystems
798a549 f2fs: Update for AIO_OPTIMIZATION
0862871 F2FS: Small Fixup
9da735d xfs: introduce a generic shutdown ioctl
0fef042 Update F2FS to Latest
5d05017 Revert "FS: import F2FS"
c7823f7 Revert "Update F2FS"
fbe2f98 Revert "f2fs: fix wrong statistics of inline data"
b894aa8 Revert "F2FS: Update Inode Compatibility"
011f5f3 Revert "f2fs: Fix Compile"
675bc72 ARM: 8160/1: drop warning about return_address not using unwind tables
6a61897 ARM: 8158/1: LLVMLinux: use static inline in ARM ftrace.h
937edd7 gpu:msm: Fix 5.0 compile
7f8067a msm: mdss: Keep KCAL within its own source file [Squashed]
99b7d5b Revert KCAL bits in prepration for update
[B]3/20/15[/B]
- Merge 5.1 Kernel Sources
[B]3/06/15[/B]
18c1482 mmc: Do not build tests
564473b diag: Make fixes to diag_switch_logging
a4a108b Readahead: Optimize divide/multiply by power of 2 using L/R shift
ab96dc0 eCryptfs: Remove buggy and unnecessary write in file name decode routine
5c1fc3f mmc: core: Silence log spam
[B]2/28/15[/B]
- Merged latest Color Drivers for N5 (neobuddy)
- Changed Toolchains from SaberMod (Now partially closed source so that you cannot build for yourself anymore) to an AOSP-based open source toolchain called UBERTC. Many patches from Linaro have been included in source and also some GCC build fix patches from SaberMod to allow for the latest toolchain components. All sources are GPL and can be found [URL="https://github.com/UBERTC/"]https://github.com/UBERTC/[/URL]. New toolchains have less of a tendency to lag in scrolling and other screen transitions in comparison to SaberMod and I think are better suited for UBER.
[B]01/31/15[/B]
- Merged 3.4.106
- Bugfix: Small Potential Memory Leak
[B]01/31/15[/B]
dcd2770 memory hotplug: reset pgdat->kswapd to NULL if creating kernel thread fails
4028fbb memcg: further prevent OOM with too many dirty pages
86aa61a memcg: prevent OOM with too many dirty pages
04848e5 kernel: cgroup: push rcu read locking from css_is_ancestor() to callsite
fed88ee mm: vmscan: remove reclaim_mode_t
28907d4 mm: vmscan: do not stall on writeback during memory compaction
fdc5efe mm: vmscan: remove lumpy reclaim
ecb6e1a mm: remove swap token code
3786e5f sched: Fix reference to stale task_struct in try_to_wake_up()
6ced785 KEYS: close race between key lookup and freeing
3604d7d ARM: pull in <asm/simd.h> from asm-generic
c48e1eb msm: watchdog_v2: Print IRQ during bark
4e46170 ASoC: msm: qdsp6v2: Silence some noise
5466e82 net: wireless: bcmdhd: Silence some unnessecary noise
c726ad0 netfilter: x_tables: Silence some debug info
bd23093 Defconfig: Remove lots of Debugging
5cfb502 Makefile: Make more consistent
ba54a8f Makefile: -O3 instead
1cc151d Makefile: Disable annoying warnings
c8fe6d2 Makefile: Rethink flags and ordering
d5d8089 Makefile: Add -floop-nest-optimize everywhere
d55d009 block: Tune SIO and remove dead code/white spaces
f11eac5 Makefile: Try floop-nest-optimize
[/SIZE]
If you are unsatisfied with UBER you can uninstall it. Here is the link to the uninstaller http://d-h.st/y1k
Features
Code:
* Based upon Google's msm 3.4.y source for Hammerhead
* Updated to 3.4.109 from Kernel.org
* MultiROM Compatible (has Kexec patch)
* Compatible with Stock as well as AOSP projects (CAF-based do not work sorry CM fans, CAF-kernel is just not as stable and battery friendly imao so I'll stay AOSP for now). If it doesn't work on a ROM let me know!!!
* CPU Governors added: Intellidemand, Intelliactive, Adaptive, Lionheart, AbyssplugV2, Ondemandplus, Badass, Wheatley, Hyper, Lazy, PegasusQ, Nightmare, DanceDance, Darkness, Slim, Intellimm, Optimax. and Uberdemand
* GPU Governors: Performance, Ondemand, and Interactive (Franco)
* IO Schedulers: Noop, Deadline, VR, SIO, ROW, CFQ, BFQ, FIOPS, FIFO, ZEN and Tripndroid
* Compiled with Custom Linaro ARM EABI 4.9.3 toolchains (Cl3Kener) (see https://github.com/UBERTC/)
* Compiled with Custom Linaro GNUEABI 4.9.3 (Christopher83)
* Compiled with Custom UBERTC 4.9.3/5.2.1 (Cl3Kener) (see https://github.com/UBERTC/)
* -Ofast optimized with neon and graphite enhancements (Cl3Kener)
* Linaro compiler flags for greater optimization build wide (Cl3Kener)
* Snapdragon & CortexA15 optimizations (Tons of Contributors)
* Non-Stock Hotplug and Thermal regulator (from showp1984)
* Touch Boost - Showp1984 (comes with hotplug)
* GPU OverClock up to 650 MHz (27 MHz is still default idle with lowest frequency being underclocked to 100 MHz) (Cl3Kener)
* Allow CPU OverClock up to 3.0 Ghz (Cl3Kener)
* Allow CPU UnderClock to 96Mhz (showp1984 implementation)
* L2 Cache OverClock (flar2)
* Ramdisk Edits on the fly for greater compatibility. (Strongly based on Showp1984 implement)
* Undervolting Control (Franco)
* LZ4 support implemented kernel wide - fastest compression/decompression available (Cl3Kener)
* Google Snappy Compression/Decompression support (just in case you want it)
* XZ Compression to latest 3.17.y (Cl3Kener)
* KSM (Kernel Samepage Merging)
* Faux Sound (Faux123)
* Franco Sound (Franco)
* Sweep2Wake, Sweep2Sleep, Double Tap 2 Wake (Showp1984 with Faux123 verticle s2w support and flar2 dt2w enhancements)
* Powerkey suspend for S2W/DT2W (Flar2 version)
* Wake timeout for S2W/DT2W/ (Flar2)
* Dynamic and Asynchronous Fsync (Faux123)
* USB Fast Charge with many voltage options (Faux123)
* Gamma Control (Various Contributers)
* Color Control (savoca)
* Fstrim (reduces lag see more: http://man7.org/linux/man-pages/man8/fstrim.8.html)
* ExFat Support (you'll need to load it via this init.d https://www.dropbox.com/s/tfm8k9vmskuhs4v/loadexfat) Updated to latest version (Neobuddy)
* Low Memory Killer - Many patches from Neobuddy
* Zram support upstreamed to 3.17.y branch (Cl3Kener)
* Zram supports lz4 compression now (kernel.org)
* Zcache, and Cleancache support updated to 3.14.y (Cl3Kener)
* BLX - Battery Life Extender (See here http://forum.xda-developers.com/nexus-s/development/mod-battery-life-extender-blx-t1257497) Ported by Ayysir to msm8974 devices
* F2FS file system support from Samsung
* Mount internal storage as CDROM (Frozen Cow)
* Advanced TCP Congestion Options (Veno as default, all 12 from http://kernel.org)
* Stereo Call Recording Support
* Uber.cfg for tuning kernel thanks to @janres155 & @Williamsss
* Many patches to improve various parts of the kernel (see source)
* Full Source including defconfig is available for you use/learn from. (Not a feature but I feel it is important that my source is complete so you can build directly from it if you want to learn and experiment)
JOIN MY DEVELOPMENT COMMUNITY ON GOOGLE PLUS (CLICK LINK) Come join for more fun! I've got some tutorials, ROMs, and other things I share with community members and well.
Installation Instructions
1. For best results a install these kernel after a fresh ROM install (although it still should work if you don't do that)
2. Reboot into recovery (TWRP 2.8+ or compatible recovery)
3. Flash Kernel Zip
4. Reboot and let Settle for ~10 minutes (optional but recommended)
5. Navigate to system/etc/uber_v1.3.cfg using your favorite root file browser and change values based on descriptions to whatever you want.
6. Enjoy!!!
Note: In Android Lollipop while Superuser kinks are still being worked out you may need to reflash root after you flash kernel.
CREDITS & SPECIAL THANKS TO:
Dennis Rassmann - for all of his kernel work. I'm in love with all of his features and you'll find them all in my kernel.
Ayysir - for his wonderful tutorial on making a bash script to build kernels.
Other great kernel devs Francisco Franco, Faux123, Flar2, Neobuddy89, FrozenCow, Christopher83, Savoca, Hellsgod and any other mentioned in the above feature list or changelog - I cherry-pick work of all of the kernel greats!
Google - for kernel base and Android Open Source Project!
Linaro - for some really great toolchain patches!
Code Aurora Forum (CAF) - for some really great kernel patches!
Gnu.org - for always improving the C Compiler for better made code!!!
SaberMod - for making patches to fix any errors in GCC code!
LG - for manufacturing this awesome phone!
UBER Kernel sources can be found at https://github.com/Cl3Kener/UBER-L
Toolchain Sources can be found at https://github.com/UBERTC/
Config Sources can be found at https://github.com/wSedlacek/cfg
Informational Links
Comprehensive Guide to Android Development
Here is a fantastic guide on "Innards" of Kernels
Building a Bash Script to make Kernels
XDA:DevDB Information
[KERNEL][3.4.109][10/03/15] UBER-L | LINARO & UBERTC 4.9.4 -O3 Graphite F2FS, Kernel for the Google Nexus 5
Contributors
Cl3Kener
Source Code: https://github.com/Cl3Kener/UBER-L
Kernel Special Features:
Version Information
Status: Stable
Created 2014-01-27
Last Updated 2015-12-01
Solutions/Ideas to the Most Common Issues
I cannot seem to flash UBER Kernel why is that? Some ROMs come with these build.prop lines which are unacceptable to TWRP but work fine as far as the ROM goes. You will have to remove these lines from the build.prop for it to flash.
dalvik.vm.dex2oat-flags "--compiler-filter=interpret-only"
dalvik.vm.image-dex2oat-flags ""After you have installed the kernel you can re-add these lines to your build.prop. If you don't have these lines in your build.prop it is most likely a bad download.
I have RRs with this kernel but not with others, why is that? I have undervolted some other kernel features besides the cpu that you cannot change to save you battery. On some N5s (since not all are created equal) you may actually have to increase voltages on cpu or else you keep getting RRs. Try +25 across CPUs and see if that fixes your RRs. If not keep going down the list.
Having issues with Undervolting? The chief complaint about this kernel is that "I can't uV as much as I can with other kernels." I have undervolted other kernel features (ie cpu regulators) that you cannot change to save you battery. This makes it hard for you to uV the cpu voltages as far but rest assure you'll still be getting better battery for it. Also, be aware that undervolting is a little dangerous in this kernel because of the potential of data loss when dynamic fsync is enabled. If you do decide to undervolt make a backup first so when your phone crashes you can restore. Also be aware that most of the logs ending in wdog_reset are caused by too much uV so before you post a log that ends in wdog_reset please stop undervolting first to see if the RRs persist. Below -25 uV seems to be the point where most users experience issues. Also keep in mind that voltage is important in benchmarking. Many people are benchmarking at incorrect voltages for their devices. I have to add +25 mV to all values so that it doesn't RR during benchmark. Each phone is a little different so some of you may be fine as is and some of you may need to go +50 mV or even potentially more. You'll have to experiment to see where your phone's "sweet spot" is. I again recommend also disabling Dynamic Fsync until you have figured out where that sweet spot is to prevent data loss.
Why am I having issues with ROMs on MultiROM? From my experiences, Custom Kernels and MultiROM have always not played well together. Flashing a custom kernel on Internal ROM has never been an issue you try and flash a custom kernel on ROMs 2-whatever you have weird permission issues which can cause all sorts of problems for you (apps crashing, RRs, loss of root, etc). This is probably why the kernel sharing feature was added which is good but has it's own set of problems when using UBER. (See post directly below) To reiterate, this is not a bug in UBER or MultiROM just a slight incompatibility between the two we have to overcome by hand.
UBER works fine on Internal ROM but has issues on ROMs 2 and beyond when using MultiROM and sharing UBER why is this? UBER is not specifically geared for use in MultiROM, not because I don't like multiROM but simply because of Uber's nature. UBER uses showp1984's custom msm_mpdecision and thermal which conflict with proprietary mpdecision and thermal regulators and cause RRs if these files are present. During normal kernel flash these files are renamed and don't conflict with UBER. When you share this kernel during ROMs 2 and beyond can still be used safely if you know what you're doing. In order to allow ROMs 2, 3, and beyond to share the kernel you must delete N5 proprietary files found at system/bin/mpdecision and system/bin/thermal-engine-hh when running those ROMs. It is a fairly easy process, just install a Root File Browser, locate then, and delete. Normally in kernel flashing process I rename those files to mpdecision_bck and thermanl-engine-hh_bck for you so you never have to see or worry about them. If you use Sharing Feature on MultiROM you'll have to deal with these yourself. I apologize for this inconvenience but there is nothing I can do from my end. Flashing UBER on ROM 2 breaks it and sharing has problems until you remove these two files.
Why are certain apps crashing on me? Most likely it is due to Frandom. I have implemented Frandom by default in this kernel and to my knowledge I'm the only developer that does that by default. Some apps or mods may not be frandom compatible. Most are 100% compatible but not all. If you notice programs stop opening or are having constant reboots try removing 00_frandom from the init.d folder and reboot. I think for stable releases which I plan on posting on XDA this weekend I will not have frandom implemented by default but in nightlies it will always be implemented. Also if you keep having random reboots this is something to try as well.
Not booting? Maybe you have Ramdisk Incompatibility. This kernel uses your ramdisk. Most of the time that works well. Sometimes it does not. Make sure to flash http://goo.im/devs/Cl3Kener/HAMMERHEAD/KERNELS//STOCK-BOOT_IMAGE-4.4.3.zip and try again if it doesn't boot. If it still doesn't boot make sure to verify that it is not CAF. Some ROMs fail to mention they are CAF-based but they really are.
My phone crashed once during benchmarking or for no apparent reason and now keeps randomly rebooting. My guess is you have Data Corruption. If you crash your phone out benchmarking or have a frandom related RR and you still keep getting RRs you might have data corruption. This usually happens when you have Dynamic Fsync enabled because Fsync is disabled when screen is on. When testing I crash my phone all of the time and apps and things get messed up. Having a backup is good but if you don't want to waste time backing up all of the time you can salvage things still. Here is what I do when I've crashed the phone and continue to get soft reboots: 1) I install SD Maid from the Google Play store. (I have pro version so I can clean more but free version should work well enough) 2) I use SD Maid to clean all of the app data. (don't worry it is smart enough to not loose your passwords so you won't have to resign into your apps) Then I download ROM Manager by Koush. I don't actually use ROM Manager I just think it has the best permissions fixing feature of any app I've tried (including recoveries). I select the option Fix Permissions toward the bottom of the free version. It then prompts a reboot and then I reboot and life is good again.
I have battery drain when nobody else does.... help!!! Install a wakelock detector and figure out what is keeping your CPU awake. If it's an app. Fix permissions, clear app data, reinstall app, disable app, etc. until is stops having issues.
Still have problems? Search my Google+ community in the questions category. If you don't find anything see below:
ERROR REPORTING
I am always open to hearing about your errors although just telling me something went wrong without giving me details does me absolutely no good. So here are my expectations if you do want to complain about something not working:
1. Please list the ROM you are using,
2. The IO scheduler you were using
3. The CPU governor you were using
4. The CPU frequency range
5. What you have done to attempt to fix it.
6. If you were able to simulate it again using the same settings.
7. Anything else you think is applicable to the issue
I would also hope that you would consider trying some of the following things to fix your issue before you ever report it because most of these things will fix the problem without me even having to change a thing.
1) Fix file permissions using a program that does a thorough job. I recommend using the fix file permissions in ROM manager because it is the best I’ve seen. For the record, I don’t actually use ROM manager for anything other than fixing permissions. Please consider trying this first because it tends to fix most of the FC/RR/SOD errors you might have.
2) Make a backup and install a clean version of the ROM you are running and see if you are still experiencing those same errors. You may have corrupted files if you’ve been dirty flashing.
3) If that doesn’t solve it, redownload and reflash, maybe something got corrupted but it still managed to flash. This happens sometimes and I can cause you grief.
4) Pull a logcat. MAKE SURE TO DISABLE DYNAMIC FSYNC BEFORE LOGGING!!! LEAVING IT ENABLED WILL CORRUPT YOUR LOG!I know not everyone knows how to do this but you can learn if you check out this OP or if you aren't comfortable with using terminal commands to pull a log just install Bootlog Uptime and set it up to autocopy log on RR. Opening the program after crash will autocopy your log and you send it to me.
QUICK GUIDE TO TUNING YOUR KERNEL
Thanks to the uber.cfg you no longer need to tune manually because you have the following already in the kernel:
1. BOOT SETTINGS
1.1 KERNEL SWITCH
1.2 GRACE TIME
1.3 WAIT TIMERS
1.4 FILE SYSTEM TRIM
2. CPU SETTINGS
2.1 CPU SETTINGS SWITCH
2.2 CPU FREQUENCY SCALING
2.2.1 CPU FREQUENCY SCALING SWITCH
2.2.2 CPU MAX FREQUENCY
2.2.3 CPU MIN FREQUENCY
2.3 CPU GOVERNOR
2.3.1 CPU GOVERNOR SWITCH
2.3.2 CPU GOVERNORS
2.4 CPU MULTICORE POWER SAVING
3. CPU VOLTAGE SETTINGS
4. HOTPLUG SETTINGS
4.1 MPDECISION SWITCH
4.1.1 MPDECISION SCREEN-OFF MAX FREQUENCY
4.1.2 MPDECISION SCREEN-OFF SINGLE CORE
4.1.3 MPDECISION TOUCHBOOST
4.1.4 MPDECISION MIN CPUS
4.1.5 MPDECISION MAX CPUS
4.1.6 MPDECISION HOTPLUG CONTROL
4.1.7 MPDECISION UNPLUG CONTROL
5. I/O SETTINGS
5.1 I/O SCHEDULER
5.2 I/O READ SPEED
5.3 I/O READ SPEED FOR SD CARD
6. GPU SETTINGS
6.1 GPU SETTINGS SWITCH
6.2 GPU FREQUENCY SCALING
6.2.1 GPU MAX FREQUENCY
6.2.2 GPU MIN FREQUENCY
6.3 GPU GOVERNOR
6.3.1 GPU GOVERNORS
6.3.2 GPU UP THRESHOLD
6.3.3 GPU DOWN THRESHOLD
7. GAMMA SETTINGS
7.1 GAMMA PRESET
7.2 BACKLIGHT DIMMER
7.2.1 BACKLIGHT DIMMER SWITCH
7.2.2 MINIMUM BRIGHTNESS
8. SOUND SETTINGS
8.1 SOUND ENGINE
8.2 FRANCO SOUND SETTINGS
8.2.1 FRANCO MIC INPUT LEVEL
8.2.2 FRANCO CALL OUTPUT LEVEL
8.2.3 FRANCO SPEAKER OUTPUT LEVEL
8.2.4 FRANCO HEADPHONE OUTPUT LEVEL
8.3 FAUX SOUND SETTINGS
8.3.1 FAUX MIC INPUT LEVEL
8.3.2 FAUX MIC INPUT LEVEL FOR CAM
8.3.3 FAUX SPEAKER OUTPUT LEVEL
8.3.4 FAUX HEADPHONE OUTPUT LEVEL
8.3.5 FAUX POWER AMP LEVEL
8.3.6 FAUX LOCK
9. MEMORY SETTINGS
9.1 ZRAM SETTINGS
9.1.1 ZRAM SWITCH
9.1.2 ZRAM COMPRESSION
9.1.3 ZRAM DISK SIZE (MB)
9.2 VIRTUAL MACHINE SETTINGS
9.2.1 SWAPPINESS
9.2.2 DIRTY RATIO
9.2.3 DIRTY BACKGROUND RATIO
9.2.4 DROP CACHES
9.2.5 FS WRITEBACK DELAY MODE
9.3 KERNEL SAMEPAGE MERGING
10. WAKE SETTINGS
10.1 WAKE CONTROL SWITCH
10.2 DOUBLE TAP TO WAKE
10.3 SWEEP TO WAKE/SLEEP
10.4 POWERKEY SUSPEND
10.5 WAKE TIMEOUT
11. MISCELLANEOUS SETTINGS
11.1 TCP CONGESTION CONTROL
11.2 DYNAMIC FSYNC
11.3 POWER SUSPEND
11.4 VIBRATION INTENSITY
11.5 USB FAST CHARGE
11.5.1 FAST CHARGE SWITCH
11.5.2 FAST CHARGE LEVEL
11.6 BATTERY LIFE EXTENDER
12. MODULES
12.1 FRANDOM
12.2 EXFAT
I still left these commands for people that like to see them anyways:
Set Color Profiles
See here http://forum.xda-developers.com/showpost.php?p=52926016&postcount=866
Dynamic Fsync
To enable - echo 1 > /sys/kernel/dyn_fsync/Dyn_fsync_active
To disable - echo 0 > /sys/kernel/dyn_fsync/Dyn_fsync_active
KSM (Kernel Samepage Merging)
To enable - echo "1" > /sys/kernel/mm/ksm/run
To disable - echo "0" > /sys/kernel/mm/ksm/run
USB Fast Charge
To enable - echo 1 > /sys/kernel/fast_charge/force_fast_charge
This makes USB to computer connections transfer current the same as the wall charger. (Classical version)
Faux123 added the a ability to change currents to 500 900 1200 1500 2000. Enable by doing this
To enable custom - echo 2 > /sys/kernel/fast_charge/force_fast_charge
Then
echo 1500 > /sys/kernel/fast_charge/fast_charge_level
change value 1500 to whatever you want (as long as it's one of those 5 values)
To disable - echo 0 > /sys/kernel/fast_charge/force_fast_charge
Set Default IO Scheduler
IO Acceptable values are bfq, cfq, deadline, fifo, fiops, noop, row, sio, vr, zen
echo "bfq" > /sys/block/mmcblk0/queue/scheduler
Set Default CPU Governor
Acceptablevalues are adaptive, badass, intelliactive, dancedance, wheatley, abyssplugv2, ondemandplus, intellidemand, interactive, conservative, userspace, powersave, lionheart, ondemand, performance and others mentioned in kernel features above.
echo "1" > /sys/devices/system/cpu/cpu0/online;
echo "ondemand" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor;
echo "1" > /sys/devices/system/cpu/cpu1/online;
echo "ondemand" > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor;
echo "1" > /sys/devices/system/cpu/cpu2/online;
echo "ondemand" > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor;
echo "1" > /sys/devices/system/cpu/cpu3/online;
echo "ondemand" > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor;
Backlight Dimmer
N is disabled, Y is enabled.
echo "N" > /sys/module/lm3630_bl/parameters/backlight_dimmer
Touch Boost
Toggle 0 is disabled 1 is enabled.
echo "0" > /sys/kernel/msm_mpdecision/conf/boost_enabled
Double Tap To Wake
There are three options here:
0 is disabled
1 is normal dt2w (bottom half of screen)
2 is full screen dt2w
echo "0" > /sys/android_touch/doubletap2wake
Sweep2Wake/Sweep2Sleep
This one is tricky because there are two files to change. If you want both only run
echo "1" > /sys/android_touch/sweep2wake
If you only want sweep2sleep you'll have to run this as well.
echo "1" > /sys/android_touch/s2w_s2sonly
To disabled run both run these commands but with 0s instead.
GPU Governor Toggle
Acceptable values are "performance" "simple" or "ondemand". Ondemand is default so I placed simple here. Performance will freeze system is placed at full OC (at lest for me so be careful!)
echo "ondemand" > /sys/class/kgsl/kgsl-3d0/pwrscale/trustzone/governor
Frequency options (Use values on the left for init.d script)
533333000-> 533 Mhz
487500000-> 487 Mhz
450000000-> 450 Mhz
389000000-> 389 Mhz
320000000-> 320 Mhz
200000000-> 200 Mhz
150000000-> 150 Mhz
Set Max GPU:
echo "320000000" > /sys/devices/fdb00000.qcom,kgsl-3d0/kgsl/kgsl-3d0/max_gpuclk
Set Min GPU:
echo "150000000" > /sys/devices/fdb00000.qcom,kgsl-3d0/kgsl/kgsl-3d0/min_pwrlevel
Pwrkeysuspend (disables s2w, dt2w)
# 0 = disabled, 1 = enabled
echo "1" > /sys/module/qpnp_power_on/parameters/pwrkey_suspend
Wake Timeout of S2W/DT2W
Note: # is in minutes (not seconds)
echo "#" > /sys/android_touch/wake_timeout
Load ExFat Module
insmod /system/lib/modules/exfat.ko
SET DEFAULT BOTTOM CLOCK SPEEDS
(If you want to set max change crom scaling_min_freq to scaling_max_freq on bottom four) Acceptable values any of the clock speeds.
echo "96000" > /sys/devices/system/cpu/cpufreq/ondemand/optimal_freq
echo "96000" > /sys/devices/system/cpu/cpufreq/ondemand/sync_freq
echo "96000" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
echo "96000" > /sys/devices/system/cpu/cpu1/cpufreq/scaling_min_freq
echo "96000" > /sys/devices/system/cpu/cpu2/cpufreq/scaling_min_freq
echo "96000" > /sys/devices/system/cpu/cpu3/cpufreq/scaling_min_freq
Vibrator Level
Stock Value is 63. Range of acceptable values is 0-100
echo "63" > /sys/class/timed_output/vibrator/amp
Dirty Ratios
# dirty_background_ratio default is 10 (background meaning screen is off usually)
echo "20" > /proc/sys/vm/dirty_background_ratio
# dirty_ratio default is 20.
echo "40" > /proc/sys/vm/dirty_ratio
Set MPDecision Values
Note: Only change these values after you've played with them in your favorite kernel tuning app. I recommend figuring out your settings then finding these files with a root browser then you can fill these init.d lines in with your root browser of choice.
echo "1" > /sys/kernel/msm_mpdecision/conf/enabled
echo "0" > /sys/kernel/msm_mpdecision/conf/boost_enabled
echo "300000" > /sys/kernel/msm_mpdecision/conf/idle_freq
echo "4" > /sys/kernel/msm_mpdecision/conf/max_cpus
echo "1" > /sys/kernel/msm_mpdecision/conf/min_cpus
echo "12" > /sys/kernel/msm_mpdecision/conf/nwns_threshold_0
echo "0" > /sys/kernel/msm_mpdecision/conf/nwns_threshold_1
echo "25" > /sys/kernel/msm_mpdecision/conf/nwns_threshold_2
echo "7" > /sys/kernel/msm_mpdecision/conf/nwns_threshold_3
echo "30" > /sys/kernel/msm_mpdecision/conf/nwns_threshold_4
echo "10" > /sys/kernel/msm_mpdecision/conf/nwns_threshold_5
echo "0" > /sys/kernel/msm_mpdecision/conf/nwns_threshold_6
echo "18" > /sys/kernel/msm_mpdecision/conf/nwns_threshold_7
echo "1" > /sys/kernel/msm_mpdecision/conf/scroff_single_core
echo "140" > /sys/kernel/msm_mpdecision/conf/twts_threshold_0
echo "0" > /sys/kernel/msm_mpdecision/conf/twts_threshold_1
echo "140" > /sys/kernel/msm_mpdecision/conf/twts_threshold_2
echo "190" > /sys/kernel/msm_mpdecision/conf/twts_threshold_3
echo "140" > /sys/kernel/msm_mpdecision/conf/twts_threshold_4
echo "190" > /sys/kernel/msm_mpdecision/conf/twts_threshold_5
echo "0" > /sys/kernel/msm_mpdecision/conf/twts_threshold_6
echo "190" > /sys/kernel/msm_mpdecision/conf/twts_threshold_7
Set Thermal Values
Go to /sys/kernel/msm_thermal/conf/ in a root file browser and change the values
I recommend that you figure out what you like and then create your own init.d script like I did. Here is the link to my example Script. I have 99 appended to the front so that it will run last resetting any previously set settings.
https://copy.com/cyApOWNSjPs1
Here is my init.d tweak folder. https://www.dropbox.com/sh/88sqwe9q018pcne/xCzZBKAJTt Make sure to give them a number in the front if you decide to add them. Like 01_blahblah or 02_blahblah.
will it work in all roms (aosp,cm,...)?
Nice. I'll give it a try (stock rom).
Finally.. Thanks man.. Will try ASAP and let you knw
Sent from my Nexus 5 using Tapatalk
mondaza said:
will it work in all roms (aosp,cm,...)?
Click to expand...
Click to collapse
Read the op man
Sent from my Nexus 5 using Tapatalk
Djmattox08 said:
Read the op man
Sent from my Nexus 5 using Tapatalk
Click to expand...
Click to collapse
What Is this read and how can I do it.lol.All seriousness this is a badass kernel.
Sent from my Nexus 5 using Tapatalk
What about changelog?
Bam ROM installed and working fine.Thanks for the work and greetings from Spain, HTCMania.
I've been running the linaro 4.7.4 version of Uber on Blue Lightning and it works great! Is there any reason I should switch to the 4.8.3 version?
Jephre said:
I've been running the linaro 4.7.4 version of Uber on Blue Lightning and it works great! Is there any reason I should switch to the 4.8.3 version?
Click to expand...
Click to collapse
Yeah, it's got bigger numbers
Sent from my Nexus 5 using Tapatalk
Chester welcome! I fcking love it kernels..... Flashing now
Sent from my Nexus 5 using Tapatalk
sinkster said:
Yeah, it's got bigger numbers
Sent from my Nexus 5 using Tapatalk
Click to expand...
Click to collapse
Harhar, very funny
Sorry, I'm not very technical, but I'm interested in learning more about kernels. Aside from the bigger numbers, is there some sort of performance or efficiency difference between the two? Pros and Cons of each?
Much appreciated!
iPsychoGeek said:
What about changelog?
Click to expand...
Click to collapse
Well the op said that if a ROM didn't boot up on this kernel we are to let you know. Well guess what? Latest cm nightly doesn't boot up. That's because cm decided to merge a bunch of caf stuff and now virtually all custom kernel are unbootable. Just saying. :crying:
Jsparta26 said:
Well the op said that if a ROM didn't boot up on this kernel we are to let you know. Well guess what? Latest cm nightly doesn't boot up. That's because cm decided to merge a bunch of caf stuff and now virtually all custom kernel are unbootable. Just saying. :crying:
Click to expand...
Click to collapse
Hope the OP can fix this
---------- Post added at 10:56 PM ---------- Previous post was at 10:10 PM ----------
Does anyone else ecounter random reboots when locking the screen?
What scheduler and governor are you guys using on 4.8.3 for better performance? There's so many to choose from and I'm having a difficult time telling which ones work better.
Good kernel
Sent from my Nexus 5 using Tapatalk
t1.8matt said:
What scheduler and governor are you guys using on 4.8.3 for better performance? There's so many to choose from and I'm having a difficult time telling which ones work better.
Click to expand...
Click to collapse
It's basically suck it and see. Here's a description of governors: http://forum.xda-developers.com/showthread.php?t=1792369
Sent from my Nexus 5 using Tapatalk
Hey Everyone!
So once again I'm having to rebuild my kernel thanks to CM. I uploaded yesterdays kernels early this morning after good day of testing with Stock. I have now created a branch for Stock as a backup and I guess we'll see if somehow the new kernel with CM updates is still compatible later. I hope to knock out the whole things today which will be difficult because it looks like somewhere in the ballpark of 200-250 commits. Assuming I have an error 1 every 10 that should only take me about several hours to do.
Anyways, so someone asked about changelogs. It's not that I don't believe in super detailed changelogs but I find that unless it's a tangible features nobody really understands/cares which is why I just include major features on Post #2. I've include the link to my github source which I find it best because iif you don't understand the commit message you can just click on the commit and read about the changes. Or I guess if you really wish I can just grab a log and paste it here like this
Code:
eac11e6 workqueue: fix mismatch
364f2a7 lib: spinlock_debug: increase spin dump timeout to one second
8f8e924 lib: spinlock_debug: increase spin dump timeout
1b51e62 sched/debug: Make sysrq prints of sched debug data optional
e3aab22 msm: cpuidle: use format string in snprintf
aba2b89 msm: gdsc: Make enable/disable function clock controls symmetric
83ddecf ARM: dts: msm: Add additional GDSC devices
5c07136 msm: subsystem_restart: Correct state transition even in absence of PIL
36f3fa0 msm: Fix NULL pointer dereference in sensors ADSP driver.
76b41a8 msm: msm_bus: Don't touch ID array in case of invalid IDs
ca44047 msm: msm_bus: fix memory leak in msm_bus_fabric_probe
26a3de9 msm: Fix compiler error due to CONFIG_HIGHMEM being disabled
7c14347 msm: Update the kernel log messages
19dd8b4 msm: msm_bus: Fix the type error causing bandwidth overflow
76bb790 add extra free kbytes tunable
638a2f6 ARM: Flush the caches for non panicking CPUs in case of a kernel panic
1ca0aca ARM: smp: fix incorrect per-cpu definition of regs_before_stop
82cd77a ARM: smp: Save CPU registers before IPI_CPU_STOP processing
1344e17 ARM: 7816/1: CONFIG_KUSER_HELPERS: fix help text
70f5ee2 ARM: 7819/1: fiq: Cast the first argument of flush_icache_range()
522611e ARM: Fix FIQ code on VIVT CPUs
c50dd00 ARM: Fix the world famous typo with is_gate_vma()
a354187 ARM: fix nommu builds with 48be69a02 (ARM: move signal handlers into a vdso-like page)
7249d66 ARM: fix a cockup in 48be69a02 (ARM: move signal handlers into a vdso-like page)
85e9ad0 ARM: make vectors page inaccessible from userspace
f56fc17 ARM: move signal handlers into a vdso-like page
cdbe879 ARM: allow kuser helpers to be removed from the vector page
ec85740 ARM: update FIQ support for relocation of vectors
8e3a8a1 ARM: fiq: change FIQ_START to a variable
6dc1962 ARM: move vector stubs
065cf0f ARM: poison memory between kuser helpers
b3e9875 ARM: poison the vectors page
a2a12a7 ARM: 7735/2: Preserve the user r/w register TPIDRURW on context switch and fork
c18c81f ARM: 7693/1: mm: clean-up in order to reduce to call kmap_high_get()
2902c6e ARM: dts: msm: Remove dual configuration for CPU on msm8974
bf41f92 msm: msm_bus: Changes for QOS computation at BIMC
212375b msm: msm_bus: Change priority overrides based on master configuration
571edf5 ARM: dts: msm: remove ebi cache dump reservation for 8974
1b752b9 coresight: enable flush-on-flushin for periodic flush to usb
6655519 coresight: use dma_alloc_coherent for allocating tmc-etr memory
ae85721 coresight: Add support for byte counter interrupt feature
62c4004 coresight: add lpae support for coresight tmc driver
d2e3216 ARM: dts: msm: remove contiguous etr memory reservation support for 8610
fc30c37 ARM: dts: msm: remove contiguous etr memory reservation support for 8226
8e08231 ARM: dts: msm: remove contiguous etr memory reservation support for 9625
465f943 ARM: dts: msm: remove contiguous etr memory reservation support for 8974
84f8b02 ARM: dts: msm: modify memory reservation requirements for tmc-etr on 8610
ebbb2e9 ARM: dts: msm: modify memory reservation requirements for tmc-etr on 8226
63d10d8 ARM: dts: msm: modify memory reservation requirements for tmc-etr on 9625
04eb909 ARM: dts: msm: modify memory reservation requirements for tmc-etr on 8974
4cdbd69 ARM: dts: Enable additional GDSC collapse modes based on HW version
e67d6ee workqueue: Remove gcwq_has_idle_workers
70a7f5d workqueue: simplify CPU hotplug code
5627e14 workqueue: remove CPU offline trustee
0ba7786 workqueue: don't butcher idle workers on an offline CPU
7fdf3cb workqueue: reimplement CPU online rebinding to handle idle workers
afd342d workqueue: drop @bind from create_worker()
f601fe0 workqueue: use mutex for global_cwq manager exclusion
153b22f workqueue: ROGUE workers are UNBOUND workers
8beff10 workqueue: drop CPU_DYING notifier operation
0a5bb32 Defconfig: SMH
0384859 Revert " DRIVERS: SLIMBUS: Initial OC of Slimbus"
Those were my changes yesterday. (I having a feeling most of you just skipped over it)
As far as which do I think is better I personally like bleeding edge (and it seems like most of you do too) so I run Linaro 4.8.3. To me it feels a little snappier (on stock that is, I use stock for any of the battery life tests etc). Battery life seems to be about the same between the two though so again it's not like a big deal one way or another. I just like to give you all options instead of only making one kernel. Because I have build scripts and a fast computer it takes me about 5 minutes to build one kernel so I can make both in about 10 minutes. That's no big deal for me. The part that takes the time is the patching, coding, tweaking, and testing.
Speaking of testing, I still haven't really figured out my dream IO and CPU Gov combo yet. I've been playing around alot and hopefully some of you will too. I can tell you that I always default to CFQ or BFQ with Ondemand since I really like those combos but I am also starting to like several other combos. If you find a combo you think is awesome please post it and a screenshot if you want to convince us it is good for battery or whatnot.
Anyhow, enjoy the 1/27 kernel from yesterday! I'll be working on a CM compatible kernel today.
Cheers!
Cl3Kener
Custom kernel for Samsung Galaxy Ace 2
Features:
Only one universal kernel for JB, KK and LP-based ROMs
CPU, GPU and DDR OC support
more governors and I/O schedulers
Lite kernel - some kernel features moved to modules
fully working BLN
Sweep2wake && Doubletap2wake
CPU freq settings for suspend
Full F2FS support
SELinux support
UKSM support
ABB-charger tweaks
Credits:
@dh.harald and @hafidzduddin for contribution on codina sources
@ Team Canjica for a base for this kernel
@ Nova Fusion for F2FS implementation
@zwliew for contribution on TC kernel
@cocafe for LiveOPP, GPU OC, abbamp and abb-charger tweaks and many cool patches which I've used from his kernel
@faux123 for dynamic Fsync implementation
@Christopher83 for dynamic management of dirty page writebacks implementation
@KINGbabasula for contribution on TC kernel sources
@boype for SIOPlus tweaks and OndemandPlus governor
@Adi_Pat for abbamp, kernel tweaks
@PolishVodka for initramfs scripts for 4.2.x and 5.0.x
@Rox for help in fixing initramfs scripts for 4.1.2
@ace2nutzer for optimization CPU OC and for whatever scripts which I have used in my kernel
@Meticulus for BLN, Sweep2wake and Doubletap2wake
@mkaluza for huge LiveOPP/Mali improvements and Dynamic governor
@yanpol199 for help with F2FS support in TWRP
@ all users who tests this kernel and directs the development along the right path
@ all those users, who I forgot to mention (PM me if so)
Team Win for TWRP recovery
CyanogenMod Team for CWM recovery
Phil3759 for philz recovery
Samsung for opening kernel source
Linus Torvalds for Linux sources
Standard Disclaimer: Not responsible for bricking your phone, voiding your warranty, or any other pain or suffering you may feel as result of using this kernel!!!
To install kernel with F2FS support read installation method in 3rd post
To install kernel with dual boot support, proceed this method.
Since R2.12.1 has been released, no need to care about bootscripts, kernel package will install it itself.
Source Code:
r6.0
< r6.0
Download:
FTP
Thanks @S.AMU for providing FTP-Server
Thanks @shaqman89 for providing build server
XDA:DevDB Information
Chrono Kernel, Kernel for the Samsung Galaxy Ace II
Contributors
ChronoMonochrome, cocafe, faux123, zwliew, mkaluza, Meticulus, KINGbabasula, ace2nutzer, TeamCanjica
Source Code: https://github.com/ChronoMonochrome/Chrono_Kernel-1/commits/master-3.10
Kernel Special Features: Swappable ramdisk, UKSM, dual boot support
Version Information
Status: Stable
Current Stable Version: R5.1
Stable Release Date: 1974-11-11
Beta Release Date: 1974-11-11
Created 2014-06-24
Last Updated 2017-10-27
Changelogs and features
Bug list:
-
Changelog
(old changelog)
R2.10
Build from R2.6 sources with re-added all changes in LiveOPP, cpufreq_limits module, some interfaces from 2.9.x (usb sw reset, PonKey emulator on voldown/up).
R2.9
Mali OC module v2.0:
added interfaces boost_hispeed1, boost_hispeed2.
added interfaces mali_threshold_freq_down and mali_threshold_freq_up
(new interfaces manual)
1) mali_threshold_freq_down/up:
echo new value to tweak it:
Code:
echo 150 > /sys/kernel/mali/mali_threshold_freq_up
2) mali_boost_hispeed(2)
Use command
Code:
echo idx=X > /sys/kernel/mali/mali_boost_hispeed2
to tweak its freq.
following command is to tweak its threshold:
Code:
echo threshold=220 > /sys/kernel/mali/mali_boost_hispeed2
partially re-enabled touchboost (it actually was enabled even on 2.7.4, but I forgot to mention)
reverted suspend/hibernate/freezer etc. commits to hopefully fix reboots issue in deepsleep
fixed APE_25_OPP (in suspend it actually used APE50 previously)
minor fixes in cpufreq_limits driver
R2.8
Mali OC module v2.0(detailed description in 3rd post):
added interfaces boost_hispeed1, boost_hispeed2.
added interfaces mali_threshold_freq_down and mali_threshold_freq_up
partially re-enabled touchboost (it actually was enabled even on 2.7.4, but I forgot to mention)
reverted suspend/hibernate/freezer etc. commits to hopefully fix reboots issue in deepsleep
fixed APE_25_OPP (in suspend it actually used APE50 previously)
minor fixes in cpufreq_limits driver
(2.7.6)
- fixed broken GPU scaling algorithm (removed /sys/kernel/mali/mali_scaling_dynamic)
(2.7.5)
- partially reverted LiveOPP voltage autocalibration
- fixed unstable mali tunables and added interface mali_scaling_dynamic
Code:
echo 1 > /sys/kernel/mali/mali_scaling_dynamic
When mali_scaling_dynamic is used, mali will scale between mali_boost_low and mali_boost_high using all steps between these mentioned. mali_stats provides statistics about mali utilization on each step.
- removed some GPU freq steps
(2.7.4)
- new governor Dynamic (thanks to mkaluza)
- new GPU scaling algorithm (thanks to 1N4148 ) - ondemand-like GPU governor
- LiveOPP: reworked avs-based varm recalibration algorithm
(2.7.3)
added governor OndemandPlus (thanks to boype)
removed governors with hotplugging support
added interface to tweak PLLDDR freq on suspend:
Code:
echo on > /sys/kernel/cpufreq/pllddr_raw
To control freq are used raw PLLDDR register values:
Code:
echo suspend=0x000050158 > /sys/kernel/cpufreq/pllddr_raw # 675 MHz
Code:
echo resume=0x000050168 > /sys/kernel/cpufreq/pllddr_raw # 798 MHz
PLLDDR freq can be checked via
Code:
cat /sys/kernel/liveopp/pllddr
Settings applies after 3 sec after suspend/resume.
Too low suspend or too high resume value may cause reboot. Please note that this setting still experimental and unstable itself, so it's disabled by default.
adjusted some GPU OC defaults
fixed BT issues
(2.7.2)
- fixed pllddr_cross_clocks instability
- removed unneeded DDR_50_OPP requirement on screen on (should prolong battery lifetime).
2.7
many various commits from Linux 3.3 (thanks @faux123)
improved hotplugging mechanism
updated RCU system
kernel scheduler
memory management
etc...
LiveOPP:
recalibrate varm and vbbx on boot (better stability)
added interface to OC some clocks that depends on PLLDDR
reimplemented sweep2wake and doubletap2wake (thanks @Meticulus)
enabled UKSM (thanks @cocafe)
- better RAM performance with tiny cost CPU. Boot time will be increased by 3 sec, it's ok.
uploaded kernel for s6d.
R2.6
ABB-charger:
reverted most of changes. It's only uses custom voltage table, termination current 150 mA and some other tweaks, provided by ace2nutzer.
added tweakable interfaces for termination current(better battery lifetime).
LiveOPP:
added most ape_25_opp switch interface
added steps 85, 350, 450 MHz.
ddrpll interface renamed to pllddr ;D
added input boost support for most of governors (thanks to zwliew for original patch)
R2.5
- only one kernel version for all ROMs/Filesystems/codina(p), please note that installation method is different from usual installation
- Switch to single platform RTC driver - AB500 (finally fixed all problems with clock freeze issue) [golden-guy]
- update LiveOPP from CoCore
- reworked and added DDRPLL boost [WIP]
R2.4
completely rewritten screenoff limits driver
added steps 30, 125, 150, 175 MHz, increased voltage on various steps for stability
enabled SELinux again
various fixes in FAT filesystem
re-added exFat support
re-added ZenX
abb charger fix v2 [ace2nutzer]
zRam script moved to init.d (to be able to change zRam size) on CM11
new package installation script, with little changes by me (thanks to borkins for help with this)
R2.3.2
improved battery live (full credit to ace2nutzer)
reduced liveopp table (too hard to search stable/optimal voltage)
Reverted all commits from tuna kernel (these changes are tested not well, may cause instability)
temporarily disabled SELinux
R2.2
LiveOPP 2.2:
no longer use setting ARM OPP (this previously caused lags)
simple algorithm for setting clock and voltages
use only pll, external clock no longer used
use only 1 varm selection
Big LiveOPP table (51 step: 46, 69,..., 1244 MHz)
Added and optimized new governor ZenX
Added FIFO I/O scheduler
Moved more kernel stuff to modules
TWRP 2.8.0.0
R2.1.5
Huge update from Tuna Hybrid kernel by @faux123 ( a lot thanks to him! ) :
a lot various commits from Linux Kernel 3.3-rc3
various fixes backported from Linux 3.5
fixed 3G/WiFi data arrows again
reduced kernel: 628 Mb RAM is available
Reverted from R2.1:
update of device-specific drivers from Novathor 3.4 kernel
"ARM: 7493/1: use generic unaligned.h"
(R2.0.2)
update from TC kernel
moved all networking modules to kernel (fixed lost data usage, tethering, etc.)
added module autoload (read below)
renamed interface /sys/kernel/cpufreq/screenoff_cpufreq_limits -> /sys/kernel/cpufreq/cpufreq_limits_on_suspend
R2.0-refresh
Cleaned kernel source tree from some doubtful commits
moved some kernel features to modules(thanks to mkaluza for idea and most of changes)
9p, CIFS, NTFS file systems
some unneeded ipv6 features
HID drivers
most of governors
slightly decreased boot time(in my case, from 8500 to 8330 ms)
slightly increased available RAM - 628 MB (thanks to reduced kernel size)
Huge LiveOPP improvement by mkaluza:
improved overclock stability, added all extended steps
UV 100-400 MHz steps to 0x12-0x14 (lower power consumption)
added state APE_25_OPP, used only with screen off(originally introduced by mkaluza, adapted for codina by me)
allowed change APE_OPP and DDR_OPP from LiveOPP
changed step 1228 MHz -> 1248 MHz (may cause reboots, need to find out optimal voltage)
Mali improvements by mkaluza
temporarily removed 25 MHz step (don't know how to add it with new LiveOPP, all attempts is caused boot loop)
(R1.6.3)
revert "update sweep2wake and doubletap2wake by Meticulus"
add cpufreq steps: 25, 500, 700 MHz; remove: 1050, 1100, 1250 MHz (only 12 CPU freq step is allowed)
R1.6
ARM: 7493/1: use generic unaligned.h (This has the
benefit of better code generated especially for ARMv7 on gcc 4.7+
compilers.)
register rear cam flash as LED (for BLN) - thanks to @Meticulus
update sweep2wake and doubletap2wake by Meticulus
add LMK timeout interface - @cocafe
Fix max freq not capped on suspend bug on Lulzactive (it was conflicted with screenoff cpufreq limits driver)
(R1.5.2)
F2FS support in TWRP (thanks to [email protected] for help with this)
R1.5.1
update from TC kernel
enabled SELinux (was disabled in r1.5 for testing)
ARM: 7006/1: Migrate to asm-generic wrapper support
added jRCU (thanks to cocafe)
Bugfixes
reverted to LK 3.2.0
fixed disappeared data usage monitor and probably data arrows also
fixed wifi/usb tethering - hopefully, need tests
fixed incorrect display of RAM occupied by some applications
fixed incorrect phone recognition on codina P in CWM/TWRP - thanks to @ace2nutzer
R1.5
Completely reworked file systems update:
fixed reboots, apps FC
fixed CWM loop
fixed huge battery drain (hopefully)
F2FS backported to Linux 3.2
R1.4
Bumped to Linux 3.2.9
File systems: big update from LK 3.2
Writeback: update from LK 3.2
Reduced wlan_rx_wake wakelock by half - zwliew
F2FS support in /system
Fixed more potential and real memory leaks in kernel
Removed u8500 hotplug driver again
R1.3
added BLN separate configuration of blink on and off delays
added MCDE tweaks (read below)
tweaked PegasusQ governor (based on script by ace2nutzer)
fixes:
reverted commits which caused most of random reboots reasons
finally fixed kernel panic in CFQ I/O scheduler (I hope so)
interactive governor reverted to stock TC
R1.2
workaround for s6d display bug (separate kernel version - soon)
CPU freq settings for screen off
Updates from linux kernel 3.2 (currently updated to 3.2):
File systems
Specific drivers
Security
Various core changes
Reverted:
Proportional Rate Reduction for TCP
Power management update from 3.2
1000 MHz messy workaround, provide another workaround instead
r1.1
Fixed 100 MHz bug
Added 300 MHz CPU step
Added VR I/O scheduler again (thanks to @cocafe for fixes compile errors)
Updates from Linux Kernel 3.2:
Process bandwith controller
Thin provisioning and recursive snapshots in the Device Mapper
I/O-less dirty throttling, reduce filesystem writeback from page reclaim
Proportional Rate Reduction for TCP
Memory management (Cross Memory Attach, "vmscan: add block plug for page reclaim", "thp: mremap support and TLB optimization", etc.)
Networking
Device Mapper
Virtualization
Crypto
Tracing/Profiling
r1
backport new zRam driver from 3.5 LK by @faux123. Also enables LZ4 compressor for zRam.
add u8500 hotplug driver by @zwliew again
revert voltage of display and other regulators to stock
add vpnclient.ko
a somewhat fixes and optimizations from CoCore - thanks to @cocafe
fix lagfree, lulzactiveq and interactive wrong tunables
adjust voltage(0x37) for 1200 and 1250 MHz
17.08.2014
Undervolt display from 1800 to 1400 mV
Undervolt various regulators
Revert CFQ to 3.0 branch to fix reboot issue
Add Lionheart governor, disable InteractiveQ and Hotplug
Support for 4.2.x ROMs (thanks to @PolishVodka for initramfs)
12.08.2014
fixed CFQ reboot issue (i hope so )
reboot into recovery from extended power menu should work (JB 4.1.2)- thanks to Rox
TWRP recovery instead CWM for ext4 kernel versions
Update to 3.1.10
9.08.2014
Fixed reboot issue (I hope so)
Add BFQ scheduler again
Fixed UMS bugs - thanks to cocafe
Upgrade kernel to 3.1.1
4.08.2014
Fixed bug of random change min CPU freq to 1Ghz.
Removed u8500 hotplug driver
Update sioplus from [email protected]
Temporarily removed BFQ and VR I/O scheds because they are became broken for some reasons.
Update LMK from [email protected]
Updates from 3.1 LK:
Sound cards, input devices, watchdogs, networking, staging, multifunctional devices, ... etc. See full list of changes on github.
29.07.2014
Added CPU 100MHz freq step
U8500 hotplug driver - zwliew
Universal exfat driver - zwliew
Switch to SLUB again
Updates from LK 3.1:
SLUB
Memory management (6/7 commits)
VFS (9/10 commits)
Dynamic writepage throttling
21.07.2014
revert CPU voltages to default for 0-3 steps
some changes in memory management
17.07.2014
Switch to SLQB memory allocator
Update BFQ I/O sched from v7r3 to v7r5
Enable UHID support (testing)
Some fixes in memory management
Remove some buggy "fixes" from last build
5.07.2014
fixed headset bug that appeared in last build
fixed the file permissions for CoCore Manager (for JB)
4.07.2014
F2FS support (still only KK version)
Usb drivers from STEXperia sola kernel instead stock samsung
(probably, UMS bug has been fixed. For me it works perfectly now.)
LZ4-compressed kernel support
minor fixes
27.06.2014
sources updated
enabled init.d support in kernel (JB)
added Lagfree governor
added ROW I/O scheduler
23.06.2014
fixed cpu oc via 3rd party apps
lowmemorykiller should be less aggressive
19.06.2014
cwm 6.0.48 instead stock recovery
14.06.2014
initial build
Kernel Tweaks:
(GPU/CPU undervolting and related tweaks)
Undervolting the CPU/GPU will bring battery savings but possible instability.
1) to undervolt CPU use ChronoKernel app or via init.d scripts:
Code:
echo *cpufreq* varm=xx > /sys/kernel/liveopp/arm_summary
for example, following sets voltage varm=0x10 for 200 MHz:
Code:
echo 200000 varm=0x10 > /sys/kernel/liveopp/arm_summary
or
Code:
echo 200000 varm-=10 > /sys/kernel/liveopp/arm_summary
(default varm voltage for 200 MHz is 0x1a but, code above sets 0x1a - 0xa(10) = 0x10 )
2) to undervolt GPU use init.d script:
Code:
echo x vape=yy > /sys/kernel/mali/mali_dvfs_config
Example:
Code:
echo 2 vape=0x1c > /sys/kernel/mali/mali_dvfs_config
"2" stands for DVFS idx (look at mali_boost_high/mali_boost_low).
To prevent overriding of such settings by ChronoKernel app, add line to your init.d script after GPU undervolting
Code:
chmod 444 /sys/kernel/mali/mali_dvfs_config
Don't change voltage of both GPU/CPU at the same time - otherwise if you'll get reboot if won't know what it caused. The same is for different frequencies - if you'll change voltage of too many steps you won't know which frequency caused reboot. It's not easy process, though, following method simplifies it: https://github.com/mkaluza/i9070_kernel_CoCore-E/wiki/Undervolting-janice .
3) Custom LiveOPP table.
By default some LiveOPP steps such as 100, 200, 500 ... MHz aren't used. You can re-enable those by following way:
Code:
echo 200000 enable=1 > /sys/kernel/liveopp/arm_summary
Or use CK app instead. Don't enable it unless it uses the same voltage as 400 MHz. The same is for the rest frequencies - until some of them uses same voltage, no point to enable steps with lower freq. I've added 100 MHz just to further make some tests with it once again. It can't use lower varm than 200 MHz - that's why it's disabled by default. Furthermore, not all phones well keep undervoltage, that's why 100-400 MHz steps uses same stock voltage varm=0x1a.
UPD. thanks to @borkins for this nice editor LiveOPP ARM steps: http://forum.xda-developers.com/showpost.php?p=60311291&postcount=2921
(CPU freq management tweaks)
CPU freq. limiter for screen OFF, adjust it via:
Code:
SYSFS=/sys/kernel/cpufreq/cpufreq_limits_on_suspend
echo min=100000 > $SYSFS
echo max=400000 > $SYSFS
echo on > $SYSFS
Too low frequency may cause freezes after wakeup and sound scrathes. If you use Dynamic govermor, it make no sense to use cpufreq limiter, because Dynamic already takes care about CPUfreq usage optimization. For more, read wiki.
Input boost
This feature has been originally written by zwliew.
Not all governors support input boost. Supported governors: ondemand, interactive, conservative, ZenX, lionheart and some others. Dynamic governor has its own boost interface.
Default boost frequency is 400 MHz.
Code:
echo 450000 > /sys/kernel/cpufreq/input_boost_freq # echo '0' to disable
echo 35 /sys/kernel/cpufreq/input_boost_ms
(BackLight Notification)
To configure time intervals of BLN blinking type(bln_ondelay stands for time of blink and bln_offdelay - delay between two blinks):
Code:
echo bln_ondelay=500 > /sys/kernel/bln/blink_mode
echo bln_offdelay=6000 > /sys/kernel/bln/blink_mode
Make sure BLN enabled:
Code:
echo 1 > /sys/class/misc/backlightnotification/enabled
# to enable bln_wakelock.
echo on > /sys/kernel/bln/bln_wakelock
Use /sys/devices/virtual/misc/backlightnotification/blink_mode to changes modes.
Blink modes:
0 = no blinking
1 = blink backlight only
2 = blink backlight + rear cam flash
3 = blink rear cam flash only
(Module autoload)
Now there is a simple way to load modules at boot. Just move needed modules to /system/lib/modules/autoload and reboot device(or execute /etc/init.d/00autoload)
(DDR overclock)
This feature has been developed by me and allows you to improve DDR and GPU performance. Please note, that DDR OC might work unstable and cause filesystem corruption. Though, DDR clock of 975 MHz has been highly tested and should work fairly stable on most devices.
Overclocking DDR over 975 MHz is highly NOT recommended, especially in case if you not sure that you can deal with possible consequences.
How to OC DDR:
1) by using
this script .
2) by using Terminal Emulator(in example below 975 MHz):
Code:
echo 0x5017f > /sys/kernel/liveopp/pllddr_oc_on_suspend
This setting will be applied right after disabling screen.
(Minimum APE/DDR OPP on screen on)
This feature has been developed by me and allows to set minimum APE/DDR OPP states which are used when screen is ON. APE controls many systems such as an image, video, audio system etc. DDR OPP determines performance of DDR. Default values are APE50 and DDR50. Lower states(APE25/DDR25) reduces power consumption, but may cause graphical glitches like screen blinking or filling it by vertical grey lines. If you don't have mentioned effects, it's recommended to use APE25/DDR25:
Code:
echo ddropp=25 > /sys/devices/pri_lcd_ws2401.0/mcde_screenon_opp
echo apeopp=25 > /sys/devices/pri_lcd_ws2401.0/mcde_screenon_opp
* if you don't have folder /sys/devices/pri_lcd_ws2401.0, use /sys/devices/pri_lcd_s6d27a1 instead.
(Screen refresh rate)
This feature has been developed by cocafe and modified by me. Lower lcdclk frequency cause less power usage, but too low values makes system unusable.
Following command allows to change screen refresh rate:
Code:
echo x > /sys/kernel/mcde/lcdclk
use
Code:
cat /sys/kernel/mcde/lcdclk
to see supported lcdclk modes. Default mode is 60 Hz which is recommended in most typical cases. If you've screen tearings, blinking etc. change resresh rate mode to "60+ Hz":
Code:
echo 0 > /sys/kernel/mcde/lcdclk
(ABB charger tweaks)
added tweakable interfaces for termination current. To adjust it type(just an example):
Code:
echo 90 > /sys/kernel/abb-chargalg/termination_curr_1st
echo 70 > /sys/kernel/abb-chargalg/termination_curr_2nd
curr_2nd should be less or same as curr_1st. Lower values prolongs battery lifetime, but also slows battery charging.
Default values are curr_1st == curr_2nd == 150 mA. Please note, too low values maybe aren't usable.
(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
Click to expand...
Click to collapse
(Software CRCs)
Disabling software CRCs gives you a slight bump(10-30% is what they say) of MMC performance, at the cost of a possibility of your Ace 2 freezing randomly.
Code:
echo 0 > /sys/module/mmc_core/parameters/use_spi_crc
Click to expand...
Click to collapse
(Dynamic dirty page writebacks)
This feature has been developed by Christopher83 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).
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 disabled):
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)
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:
echo 0 > /proc/sys/vm/dynamic_dirty_writeback
- Or run this command to re-enable the dynamic dirty page writebacks feature
Code:
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:
echo "3000" > /proc/sys/vm/dirty_writeback_active_centisecs
echo "1000" > /proc/sys/vm/dirty_writeback_suspend_centisecs
(Storages switch)
By default, this kernel comes with internal and external storages switched. You can revert this behavior, by changing the line
Code:
use_swap=1
to
Code:
use_swap=0
in file /ramdisk/fstab_specs.txt and flashing the kernel package. This setting will remain until you format /ramdisk partition.
(Tweak app)
ChronoKernel settings
Thanks mars_army for this app!
Bug reports:
after experiencing a random reboot, type in terminal:
Code:
su
cat /proc/last_kmsg > /storage/sdcard0/last_kmsg.txt
report it in the thread and attach the last_kmsg.txt
Other information
How to install kernel with F2FS support:
For those who don't know what F2FS is, check these links out:
General info
Benchmarks
Warnings
1. Make sure you have a standard kernel for backup that uses ext4 just in case. If anything goes wrong, just install the backup kernel and reboot to recovery.
2. You will have to wipe your /data and /cache partitions for this. Basically factory reset.
3. For 2, you could try to backup data and restore after formatting. I haven't tried this but I could work.
Click to expand...
Click to collapse
Installation method of kernels with full F2FS support:
Before installation make sure that you have at least ~25% free space on each partition that will be formatted to F2FS.
for CWM:
make backup
format /system partition to F2FS (and also /data and /cache if you didn't do it before)
restore /system partition
for TWRP
disable md5 generation
make backup of /system
find backup folder, run terminal and rename file system.ext4.win to system.f2fs.win (it won't work via filemanager)
Code:
mv system.ext4.win system.f2fs.win
format /system as f2fs
restore backup
Then install kernel.
To install kernel on ROM that isn't supported by installer:
(supported ROMs):
Stock ROM 4.1.2
CyanogenMod 10.1*
CyanogenMod 10.2*
CyanogenMod 11*
CyanogenMod 12
* most ROMs that based on this ROM are also supported. Despite of that some ROMs are supported, they can work incorrectly due to difference in their initramfs scripts(ramdisk).
1. Install needed ROM first,
2. Type following command in terminal emulator:
Code:
cd /
find . -xdev | cpio -o -Hnewc | gzip -9 > /sdcard/x.y.z.cpio.gz
where x.y.z is OS version (for example - CM11-based ROM - 4.4.4.cpio.gz)
3. put this file in installer at osfiles/x.y.z/ (e.g. osfiles/4.4.4/4.4.4.cpio.gz)
4. install kernel
To install a new ROM that is not F2FS compatible:
Use EXT4 to F2FS converter script
or edit the updater-script as follows
(manual method)
1. Replace strings
"mount("ext4", "EMMC", "/dev/block/mmcblk0p3", "/system");"
with string
"run_program("/sbin/busybox", "mount", "/system");"
2. Replace string
"format("ext4", "EMMC", "/dev/block/mmcblk0p3", "0", "/system");"
with string
"run_program("/sbin/mkfs.f2fs", "/dev/block/mmcblk0p3");"
3. Add string
"run_program("/sbin/busybox", "mount", "/data");"
after strings
"run_program("/sbin/mkfs.f2fs", "/dev/block/mmcblk0p3");"
"run_program("/sbin/busybox", "mount", "/system");"
4. Add string
"unmount("/data");"
before string
unmount("/system");
Click to expand...
Click to collapse
Fix for CodinaP, recognized as Codina in recovery (thanks @fluffi444 )
http://forum.xda-developers.com/showpost.php?p=58839849&postcount=2448
Various tweaks (thanks @xo.en )
xo.en said:
do NOT use swapiness more than 30, bigger values can bog machine down!
small advice:
Code:
#!/system/bin/sh
#chmod -R 755 /system/etc/init.d
chown root:root /proc/sys/vm;
echo "30" > /proc/sys/vm/swappiness;
busybox chmod ugo+rw /proc/sys/vm/vfs_cache_pressure;
echo "50" > /proc/sys/vm/vfs_cache_pressure;
echo "2000" > /proc/sys/vm/dirty_expire_centisecs;
echo "1500" > /proc/sys/vm/dirty_writeback_centisecs;
busybox chmod ugo+rw /proc/sys/vm/dirty_ratio;
echo "90" > /proc/sys/vm/dirty_ratio;
busybox chmod ugo+rw /proc/sys/vm/dirty_background_ratio;
echo "75" > /proc/sys/vm/dirty_background_ratio;
echo "512" > /sys/devices/virtual/bdi/default/read_ahead_kb;
echo "10" > /proc/sys/fs/lease-break-time;
echo "4" > /proc/sys/vm/page-cluster;
echo "5360" > /proc/sys/vm/min_free_kbytes;
echo "8" > /proc/sys/vm/min_free_order_shift;
echo "0" > /proc/sys/vm/oom_kill_allocating_task;
echo "1" > /proc/sys/vm/overcommit_memory
busybox sysctl -w kernel.random.write_wakeup_threshold=256;
busybox sysctl -w kernel.random.read_wakeup_threshold=1376;
and
Code:
#!/system/bin/sh
chmod 0644 /sys/module/lowmemorykiller/parameters/adj
echo "0,3,6,10,12,15" > /sys/module/lowmemorykiller/parameters/adj;
chmod 0644 /sys/module/lowmemorykiller/parameters/minfree
echo "1024,2048,2560,4096,6144,8192" > /sys/module/lowmemorykiller/parameters/minfree;
chmod 0644 /sys/module/lowmemorykiller/parameters/debug_level
echo "0" > /sys/module/lowmemorykiller/parameters/debug_level;
works miracles in my case, especially second one, imho it would be hard to use different values, i was trying different setups for YEARS(with this machine), so it is not just random throw. Bigger LMK REALLY makes things worse here. It usually has tremendous influence over fluidity of gui, and whole sys.
Click to expand...
Click to collapse
Odin kernel
with TWRP
with CWM
There is no KSM or Low Memory killer or any Performance tweaks ?? Built in CWM ?
Master-ZizO said:
There is no KSM or Low Memory killer or any Performance tweaks ?? Built in CWM ?
Click to expand...
Click to collapse
This kernel based on stock CM kernel by TeamCanjica, and it's have same changes.
Damn, I was so excited to see a new kernel, but I noticed that it's actually for 4.1.2. I almost flashed it on a 4.4.3, not that it would have been such a tragedy.
Is there gonna be a version for the KitKat ROMs?
dragos281993 said:
Is there gonna be a version for the KitKat ROMs?
Click to expand...
Click to collapse
yes, please wait a little bit.
ChronoMonochrome said:
yes, please wait a little bit.
Click to expand...
Click to collapse
OK. I've got another question for you. Are you gonna add "lagfree" between the governors you already added, because that's probably one of the best governors a kernel can have ?
This is for stock samsung JB?
yes it is
Even if in the download section it says 4.4.2, I flashed the kernel on a Carbon 4.4.3 and it's working like a charm. The only thing that doesn't show up correctly is both frequency bars in "performance". It shows 0MHz max, 0MHz minimum, but if you set the minimum to 600MHz, for example, the frequency will run at 600 minimum, even if it shows 0.
five attempts and each time bootloop and recovery keys do not work.
dragos281993 said:
The only thing that doesn't show up correctly is both frequency bars in "performance". It shows 0MHz max, 0MHz minimum, but if you set the minimum to 600MHz, for example, the frequency will run at 600 minimum, even if it shows 0.
Click to expand...
Click to collapse
It works normally for me. (ROM CM11 by TeamCanjica 4.4.2)
dragos281993 said:
OK. I've got another question for you. Are you gonna add "lagfree" between the governors you already added, because that's probably one of the best governors a kernel can have ?
Click to expand...
Click to collapse
Maybe I'll add this Governor.
mPiter said:
five attempts and each time bootloop and recovery keys do not work.
Click to expand...
Click to collapse
please post your last_kmsg log.
@ChronoMonochrome how do I do ksmg log when the phone does not turn on?
ChronoMonochrome said:
It works normally for me. (ROM CM11 by TeamCanjica 4.4.2)
Maybe I'll add this Governor.
please post your last_kmsg log.
Click to expand...
Click to collapse
If you added "lagfree", you'd be the first on to do it, so it would obviously be amazing and it would make you a better developer than others, of course.
EDIT: About the frequency thing, for me it shows 0MHz probably because I've got kitkat 4.4.3. Everything else's working fine.
@mPiter ,
Bug reports:
after experiencing a random reboot, type in terminal:
Code:
su
cat /proc/last_kmsg > /storage/sdcard0/last_kmsg.txt
report it in the thread and attach the last_kmsg.txt
Click to expand...
Click to collapse
p.s. restore stock kernel first.
there is a new folder in sdcard0 : triggers and files in it ( Cpt log). what is it?
ip3000 said:
there is a new folder in sdcard0 : triggers and files in it ( Cpt log). what is it?
Click to expand...
Click to collapse
I have no idea what caused this problem. Because on stock kernel and CM kernel i did not have this problem. Try to remove this folder and create text file with same name.
Would love to see lag free if anyone could make possible
Sent from my GT-I8160 using Tapatalk
1. Compatible for aosp 4.4.4 or only for CM?
2. Whats is the different with custom kernel by zwliew?
@ChronoMonochrome
Be Sure ! If you benefit to the other's you will see it's effect.
Imam Ali (a.s.)
If you don't believe in any religion and don't fear the Resurrection Day, at least be free in this world.
Imam Husayn (a.s.)
Q&A in 2nd post
Features/Changelog in 3rd post
Mod & Tweak in 4th post
Flash at you own Risk !
Download directory
Kernel Source Code: https://github.com/mostafa-z/Gabriel_MM
Ramdisk Source Code: https://github.com/mostafa-z/MM_RAMDISK
There is a file named "compile.log" in kernel zip file
that says which branch i used for build process
[ Stweak support added from V 1.7 ]
Big thanks to these kind Developers, who shared their works
Q&A
Q: i have long charge time !
A: there is a driver to reduce charge current if battery temp goes high to prevent damage, if cpu temp goes high thermal driver will cut off freqs so it can reduce charge time, so monitor system for why temp is high specially on battery.
Q: can i turn intelli_thermal_2 off to get better performance?
A: we have 2 intelligent thermal control driver, if you turn it off the built-in driver will get online and control the temperature which is controlling temp during the boot till intelli_2 get online then you can have more control over it. i changed parameters from 80 & 90 degC to 72 & 75 degC for safer temp control (as a user requested ). so if you want get higher freq values at higher temperature you should get control of intelli_2. caution: reduce the temperature for long life.
Q: i can't get last_kmsg , there is no last_kmsg ?
A: actually there is a tunable parameters to let the kernel dump it at fails but you can use ADB and get live kmsg log at terminal by running "cat /proc/kmsg". it will show you live show
Code:
<3>[ 8624.446243 / 07-07 11:08:50.416] pre-check do_freq_control temp[47], limit_idx[14],
<3>[ 8624.696399 / 07-07 11:08:50.666] pre-check do_freq_control temp[48], limit_idx[14],
<3>[ 8624.946358 / 07-07 11:08:50.916] pre-check do_freq_control temp[47], limit_idx[14],
<3>[ 8625.196421 / 07-07 11:08:51.166] pre-check do_freq_control temp[46], limit_idx[14],
<3>[ 8625.446387 / 07-07 11:08:51.416] pre-check do_freq_control temp[46], limit_idx[14],
<3>[ 8625.696374 / 07-07 11:08:51.666] pre-check do_freq_control temp[46], limit_idx[14],
if you want get log only for your desired parameters like temp you can limit it with "cat /proc/kmsg | grep temp"
Q: my device is always hot and max freq is decreasing to lower values?
A: depends on your config, decreasing max freq is due to thermal limitation ( protect your device from heat by decreasing max freq to produce less heat ... ).
you can find out which process using the cpu and cpu produced heat :
run "top -s cpu" in your android terminal or adb :
Code:
PID PR CPU% S #THR VSS RSS PCY UID Name
22972 2 [B] 26%[/B] S 14 1362360K 135488K bg u0_a23 [B]android.process.media[/B]
4432 0 [B]24%[/B] S 4 9680K 2632K fg media_rw [B]/system/bin/sdcard[/B]
4974 1 7% S 14 1354472K 69500K fg system com.android.settings
361 2 3% S 18 191664K 6452K fg system /system/bin/surfaceflinger
22960 0 2% S 10 1716192K 198660K bg u0_a38 com.android.gallery3d
23060 3 1% R 1 3068K 1288K fg root top
21534 0 1% S 20 1221608K 49832K bg u0_a104 com.grarak.kerneladiutor
3532 0 0% S 148 2023996K 93580K fg system system_server
1134 0 0% D 1 0K 0K fg root mdss_fb0
in this case process.media is using much more that other processes , find out why it's running or end that process.
Q: i faced lag ! what can i do ?
A: depends on your config, but try ramp up thermal degC can prevent to throttle freq & cores (you will kill your device by heat )
Q: can i take my device temprature down ?
A: depends on your config, try lower down temprature degC limit to make throttle freq & core as soon as possible.
lower down max freq, you have not to kill performance at all try free up the ram from unwanted apps
Q: i have long charge time ?
A: i switched cpu_governor at charge process to have shortest ( ~ 1:20 ), monitor its rate at battery usage.( i've tested slim and alucard )
Q: what you mean by optimized build?
A: simple answer is i use GCC build flags in build process, google it.
Q: do you have any script for configuration?
A: actually i'm trying to build some script :
example: to drop cache and free up ram in scheduled time using: echo 2 > /proc/sys/vm/drop_caches
and some cool script from dorimanx
implementing stweak can fix all of these stuff
Q: why there is a build for slim governor and one for elementalx?
A: they have almost similar code, they can't live toghether or i can't make them.i'm working on it.
Q: do you have plan to build with separate toolchain, like uber-7,5 or linaro ?
A: it depends on users feedback, let's experience them, who cares
Q: do you support other variants like D852 and ... ?
A: as far as i can
Q: why kernel options not tuned?
A: i've planing to implement stweak to have control over sysfs
Q: what is your kernel config?
A: i satisfied if i have 0% or 1% during the night
Code:
# My simple profile
cpu alucard
hotplug alucard
gpu powersave
i/o noop 1024
screen
232 237 256, saturation 75 (franco config)
entropy
read 512, write 256
fsync off
thermal
core control off
freq throttle 75, core throttle 72
temp,core hysterecis 10
# my smoothness profile
cpu slim/elementalx
down_differential 10
input_enent_timeout 800
sampling_down_factor 2
ui/sampling_rate 15000
hotplug alucard
sample_rate 35%
gpu msm-adreno
simple algorithm laziness 3, ramp threshold 7
screen same
i/o fiops 1024
entropy same
fsync same
note: for better performance set same sample rate at cpu and hotplug
Features/Changelog
KERNEL 2.3
* restore f2fs driver to 3.4.y stable
* codes compiled with gnu gcc 7.1.0 toolchain compile by me
* kernel use updated libraries instead of linux ones by gcc 7.1.0
* add CFS kernel scheduler switch (how to balance tasks onto different CPU unit)
* fix devfreq nodes unavailable
* remove async-fsync
* add fsync control
* remove sched relaxing cpu-idle by nvidia
* merge kernel cpu codes
* merge cpu-idle codes from 3.10.y kernel mainline
* merge codes to fat, exfat from 3.10.y kernel mainline
* add interactivex, nightmare, darkness governors
* merge massive codes to crypto, of, cgroup, kernel time, ntp, tick, rcu, lib
* merge codes to net
* merge codes to zram driver from 4.11.y kernel mainline
* merge codes to base/power & base/core & qos driver from 3.10.y kernel mainline
* merge codes to mdss
* merge codes to selinux
* merge codes to kernel/irq
* merge codes to kernel scheduler, cputime, cpu accounting from 3.10.y kernel mainline
##### Ramdisk/Stweak
* add dcop7 profile by @dcop7
* add salvation profile by me
* add per governor profile for alucard & nighmare cpu governors
* add profile for alucard hotplug
* add adreno-idler controls
* add multicore power saving controls
* fix thermal driver switch
* fix synapse stats, now it shows kernel stats
* fix node path for cpu-boost & devfreq governors
* update busybox to latest codes from branch "busybox.net/master", compiled by me
KERNEL 2.2
* allow modem to enter deep sleep (control interface in mastercore tab)
* merge random driver from 3.16.y
* disable more debug option to save space and cpu cycle
* add maple io scheduler (based on zen & sio)
* merged alucard touch-boost driver's option and stability to caf cpu-boost to fix the min freq locking to boosted freq and boosted core & freq in heat.
* merge NTFS fs from 3.10.y
* merge EXT4 & F2FS fs from 3.10.y ( better coded file system can save power )
* merge update to selinux
* removed dyn_fsync and add fast async_fsync from htc
* merge update to ZRAM & ZSMALLOC from 4.8 kernel
* merge swap speed update to ZRAM driver
* merged massive update to memory code from 3.10.y and upstream code aurora updates backported from 4.5.y
* merge updates to memory code and ram leaks fixes ( slub, OOM, LMK, page_aloc, etc )
* merged some updates to memory code from 4.6.y and some fixes to shrinker code
* merged many updates to memory code, including vmpressure and new shrinker API & tunable process reclaim control available in memory tab
* add zen-interactive tuning to optimized & overclocked version and all ondemand based GOVs (Tunes the kernel for responsiveness at the cost of throughput and power usage) (web)
Thank you @dorimanx
##
* all profiles will be reset at fisrt boot after flash
KERNEL 2.1
* merge kernel printk driver from 3.10.y
* merge cgroup & library updates from 3.10.y
* merge I/O driver from 3.10.y (all io schedulers converted to use new io update)
* merge LMK driver from 3.10.y and fix panic under memory pressure
* merge ipc & android binder codes from 3.10.y (interprocess communication mechanism, rom and apps should do better under pressure, thanks dorimanx)
* add quick wake-up driver and fix for lpm and cpu-idle
* available in 3 style
1- same as previous versions
2- same as #1 + GCC OPTimization Flags (Ofast, Graphite, ...)
3- same as #1 & #2 + CPU and GPU has been Over Clocked ( CPU 2.8 GHz and GPU 657 MHz )
##### Ramdisk/Stweak
* add suigintou profile
* some typo fixes
* add overclocked frequencies which works only in Over Clocked version
KERNEL 2.0
* merge MMC codes from 3.10.y kernel mainline
* merge cpuidle codes from 3.10.y
* add ability to disable dmesg (kernel logging)
* merge qseecom from 3.10.y
* merge watchdog from 3.10.y
* add frandom
* add Boeffla sound engine
sysfs available at: /sys/class/misc/boeffla_sound/*
enable with : echo 1 > /sys/class/misc/boeffla_sound/boeffla_sound
to change volume you should add left & right chanel : echo "20 20" > /sys/class/misc/boeffla_sound/speaker_volume
##### Ramdisk/Stweak
* add ability to disable dmesg logging (others tab)
* add sound control options
* update busybox
KERNEL 1.9
* merge workqueue from 3.10.y and use new idr
* alucard hotplug is up with latest version to use the new workqueue structure.
##### Ramdisk/Stweak
* add an option to deactivate hotplug protection (you can set hotplug out of the stweak and cortexbrain can't change it to stweak value)
KERNEL 1.8
* Linux kernel version 3.4.113
* merge arm codes
* getting almost same and close features to v 1.7 features
* revert back to 3.4.y kernel scheduler
* multirom support
* merge lge v30j kernel source codes
* merge lmk (low memory killer) & oom (out of mermory) codes
* squashfs implemented (i don't have any tools to enable it)
* lz4 de/compression updated with 3.10.y
* enabled unaligned memory access (faster lz4 de/compression)
* merged latest 3.4.y f2fs updates
* merged latest zram from 3.10.y Motorola
* merged latest zsmalloc codes 3.10.y and some other memory improvement codes
* merged kgls, devfreq codes (gpu update)
* merged much saner idr and using it in most parts of kernel
* zram using new idr and compact in sleep mode (see kernel log for statistics while going to sleep, much improved results will show when ram loaded and have much app)
* kernel uses 300 Mhz internal clock
* swapping scheduled on all cores to free up ram faster
* merged codes to main cpu driver
* added null cpu-idle governor
* merged some CVE commit
* krait boost enabled
* added dynamic fsync
* compiled with latest Linaro 6.1.1
##### Ramdisk/Stweak
* added Gabriel profile (ran asphalt 8 , no lag in high detailed maps and ui)
* added undervolt control
* added sleep state control for VM (there is 2 profile for VM in Gabriel profile that you can adapt and use, one for awake state (speedmod) and one for sleep state (boeffla, adapted from boeffla kernel)
* added more controls on hotplug and cpu
* added kcal profiles
* control for new features, dynfsync, vibrator strength , ...
KERNEL 1.7
* Linux kernel version 3.4.112
* Merge UKSM codes (ultra kernel same page merging)
* Add cpufreq barry_allen, intel, ondemandx, interactive & ondemand from AOSP kernel mainline
* Merge Nvidia Cpuquiet codes (available on kernel adiutor)
* Merge cpu codes
* Merge multi cpu policy limiter
* Merge cpu freq limiter v 5.4 (per core functions)
* Merge cpu-boost update (per core functions)
* Merge sched codes (higher linux mainline)
* Merge workqueue codes (higher linux mainline)
* Merge power codes (higher linux mainline)
* Disable bunch of trace & debug to save cpu cycle
* Merge HMP (heterogeneous multi-process) codes (higher linux mainline)
* Cpu underclock to 268 MHz
* Merge KGSL codes
* Add Thunder-plug hotplug driver
* Add Intelli-plug hotplug driver
* Merge Random codes (3.16.y mainline)
* Merge RWSEM optimization
* Merge sl[a,o,u]b memory codes
* Merge zcache codes (3.18.y mainline)
# with new cpu/sched codes some hotplug driver may don't work properly, codes need more update !
* Implement Stweak support (kernel control with profile support)
* Stweak: add more sleep/awake functions to control kernel
* Stweak: add tunable service control (fstrim,memory reclaim and more)
* Stweak: initial 5 profile support (extreme battery,battery,default,performance,extreme performance)
# install Dorimanx stweak by default as respect him, other different ui available in download folder
KERNEL 1.6
* Introduce Linaro 5.3 Toolchain
* Fixed latest kernel crash
* Add Ondemand CPU_Governor from semaphore kernel (nexus 4)
* Update Intelli_Thermal driver (parameters descriptions)
* Set High Performance Profile After Boot Up to Finish the OS Load Process
As Fast As Possible and Smoothly,
Normal Profile will set after CPU Temp Goes Under 65 degC, Just a While
KERNEL 1.5
* F2FS bring up to date with Kernel.org latest codes,
stable branch 4.7-rc1-3.4 - 2016-06-03
* Sync FS just once before suspend, not all the time
* Mako Hotplug added
* Quick Wakeup driver added
( system back into suspend without fully resuming
if the wake reason was a special quick wakeup event )
* Make MPDecision to be Conservative
* Enhanced Power Efficiency by NVIDIA implemented
* Interactive CPU back to LGe changes
* CPU Boost updates and Relative Dependencies Removed
this should solve last Kernel oops
* Back light control by jon777 added
Force Rom to use defined min/max back light
/sys/module/lm3697/parameters/*
* Arch Power & Gentle Fair Sleepers sysfs added
/sys/kernel/sched/*
disabling gentle fair sleepers may bring you smoother ui
* Add MMC CRC control sysfs
/sys/module/mmc_core/parameters/use_spi_crc
( Enabling software CRCs on the data blocks can be a
significant (30%) performance cost )
KERNEL 1.4
* Support F2FS (see this instruction)
* Neon-mode activated
* Neon optimized Crypto
KERNEL 1.3
* Fix kernel crash/reboot
* Add Smartmax cpu_governor
* cleanup dmseg to produce better logs
* Install custom busybox for my later needs
* Enable msm_thermal by default
KERNEL 1.2
* Support Exfat
* Tune down default thermal limit to 72 & 75 degC
* Switch to XZ kernel compressor
* Initial support for D850, 1 ,2
KERNEL 1.1
* Introducing UBERTC-7 toolchain, Experimental (first time for G3)
* CPU_Governor added:
zzmoove,alucard,impulse,intellimm,hyper,nightmare,darkness,lionheart,(slim & elementalx : gpu_boost feature)
(i can't have slim and elementalx at same time) :\
interactive synced with AOSP source
* GPU_Governor added:
conservative + adreno idler,simple gpu algorithm
* Minimum GPU Freq 27 MHz
* Hotplug added:
alucard,msm
* I/O Scheduler added:
bfq,fiops,sioplus,zen,vr,tripndroid
* CPU_Boost updated
* Scheduled Workqueue implemented
* CPU Voltage control supported
* MSM_Thermal v2 implemented
* KCal v2 implemented
* Live user sharpening control implemented
can access by "/sys/devices/virtual/graphics/fb0/sharpening"
* KSM ,disabled by default
* Adaptive LMK (by motorolla) implemented
* Fsync implemented
* TCP congestion algorithm (westwood & ...)
* State notifier (determine screen state, on & off)
/sys/module/state_notifier/parameters/*
* ZCache,ZRam,Zsmalloc,Frontswap implemented
zram compressor can switch to lzo or lz4
maximum compressor streams can change from 1~4 cpu
## enabling zram can drain battery faster, google zcache,zram,frontswap
## to enable 512 MiB zram copy these commands to your init.d script or run in terminal:
Code:
swapoff /dev/block/zram0;
echo "1" > /sys/block/zram0/reset;
echo "lz4" > /sys/block/zram0/comp_algorithm;
echo "2" > /sys/block/zram0/max_comp_streams;
echo "512MB" > /sys/block/zram0/disksize;
mkswap /dev/block/zram0;
swapon /dev/block/zram0;
* Process reclaim implemented (i don't think it's working ...)
* EXT4 filesys updated
* Frandom implemented (10-50 times faster than what you get from Linux urandom)
* Disabled crc check
* memutils, memcpy, memmove optimization
## filename resolution
SLIM is for slim cpu_governor
ELEX is for elementalx cpu_governor
U7 is for UBERTC-7 toolchain
U5 is for UBERTC-5.3.x toolchain
L5 is for Linaro-5.3.x toolchain
OPT is for optimized with gcc build flags
STK is for no-optimization
Mod & Tweak
1- Bullet_93 UKM_Mod ( synapse ) 010716
Bullet_93_Mod 1.3
2- Tasker instruction
Niceeeeeeeee I loveeeeee it always best on LP and now in MM
f400 variant pls...
Pls support f400 i would like to use this kernel as daily driver........
toks420 said:
Pls support f400 i would like to use this kernel as daily driver........
Click to expand...
Click to collapse
you know i'd failed for fF400 with LP, i will try again, if you know anyone who build stock MM for F400 please introduce him/her to me,tnx
i should get sources,step by step during the time
Great to see you on MM builds @mostafaz, thank you for your work.
Any reviews? Performance, battery life, feeling?
Great performance......
For battery life is to early.......
( UBERTC 7.0.0 )
Cpu elementalx
Gpu alucard
D855
FULMICS 5.3
Inviato dal mio LG-D855 utilizzando Tapatalk
davidez25 said:
Inviato dal mio LG-D855 utilizzando Tapatalk
Click to expand...
Click to collapse
Hat do you mean different file?....
D855
FULMICS 5.3
cultofluna said:
Hat do you mean different file?....
D855
FULMICS 5.3
Click to expand...
Click to collapse
Yes
because there are 4 files, the difference between them?
Inviato dal mio LG-D855 utilizzando Tapatalk
Exfat
Pls support exfat for sdcard
Great builds, thank you for your work. :good:
davidez25 said:
Inviato dal mio LG-D855 utilizzando Tapatalk
Click to expand...
Click to collapse
davidez25 said:
Yes
because there are 4 files, the difference between them?
Inviato dal mio LG-D855 utilizzando Tapatalk
Click to expand...
Click to collapse
Can you not read? ^^
mostafaz said:
## filename resolution
SLIM is for slim cpu_governor
ELEX is for elementalx cpu_governor
U7 is for UBERTC-7 toolchain
U5 is for UBERTC-5.3.x toolchain
OPT is for optimized with gcc build flags
STK is for no-optimization
Click to expand...
Click to collapse
Which means one contains slim governor(among other governors included) compiled with ubertc 5 and the other one with ubertc 7, and another pair with elementalx governor.
When I use 64GB sdcard, it seems that i can't use. Please support exfat. Thank you!
Thaks dev for the kernel. Will be my daily driver going forward.
Sent from my LG-D855 using XDA-Developers mobile app
Slim for battery life
Elementalx for performance
Right?
Thanhtho96 said:
Slim for battery life
Elementalx for performance
Right?
Click to expand...
Click to collapse
Both are performance oriented and very simillar.i just let users choose which one they decide to have.
You can disable gboost in governor settings & lower down differential & ramp up sample_rates & lower responsivness ...
how can i get better battery life in this kernel? download slim version?