ZRAM/Compcache on locked bootloader - Sony Ericsson Xperia Neo, Pro

Unfortunately I cannot unlock my bootloader using testpoin method as it has been secured using the new method. Don,t want to void my warranty so i won't unlock it using the official method. I have problems with small amount of ram - launcher redraws etc. I know that I cannot flash custom kernels but is there any other way to get ZRAM/COMPCACHE working on locked bootloader phone?

ICS .587 supports swap and zram (at least my Arc S LT18i, stock kernel, stock rom, locked bootloader)
by default zram was 60 MB, I changed it to 80 MB, 1/4 of Arc S RAM....
zram of 80 MB uses 25 MB of real RAM and can be filled with about 71 MB of swap data
so, calculated compression ratio should be 71/25=2.84
based on Statistics:
Per-device statistics are exported as various nodes under
/sys/block/zram<id>/
disksize
num_reads
num_writes
invalid_io
notify_free
discard
zero_pages
orig_data_size
compr_data_size
mem_used_total
http://shmilyxbq-compcache.googlecode.com/hg/README
Played little more with zram, see this post http://forum.xda-developers.com/showpost.php?p=31705363&postcount=24

Related

[Kernel] Archos Gen8 Kernel (2.3.20 firmware OK) (max 1.2G) (Updated: 15-APR-2011)

First, thanks $aur0n for the nice work and I can now also boot from SD card and enjoy the rooted system in EXT4
For those interested in overclock, you can try this kernel (I have tested it in Archos 70IT, but it should work in A101/A43IT as well):
** See below for instructions on how to apply this overclock kernel with the newest firmware
2011-04-15 (Latest version)
=========================
- Re-compile the whole kernel from archos latest kernel source code
- Suggested to use with newest chulri's initramfs
- Overclock to 1200Mhz
For firmware 2.3.20:
Download here: http://www.mediafire.com/?pnbev44hk2m1346
Click to expand...
Click to collapse
File name: zImage_archos_2.3.20_recode09.zip (MD5: 7756BA280F3FEBAD23A528A10EB1D6B5)
==================================================
Get rooted with newest firmware 2.X.X + overclock!
Click to expand...
Click to collapse
** Special thanks to chulri for the updated initramfs **
0) Install SDE first
1) Download chulri's initramfs from here: http://code.google.com/p/archos-gen8-sde-rooting/downloads/list
(Download the appropriate version that matches with your firmware version)
2) Grap the newest overclock kernel: http://www.mediafire.com/?pnbev44hk2m1346
3) Reboot your Archos holding "Volume -"
4) Recovery System -> Developer Edition Menu -> Flash Kernel and Initramfs
5) Connect USB and copy initramfs from (e.g. avos_2.X.XX_temproot.zip) and copy zImage from (e.g. zImage_archos_recode04A.zip) to Archos machine
6) Reboot by holding "Volume -"
7) Choose the 2nd menu item (Developer Edition)
8) Here, you get rooted in the newest firmware + overclock kernel
9) Enjoy ^_^
==================================================
Previous Versions
==================================================
2011-02-11
===================
- Further complier optimization
- Better performance on Archos 101
- Max frequency back to 1200Mhz because some users report not stable at 1280Mhz
- Revert interactive CPU governor (seems not stable)
- Suggested to use with chulri's initramfs
1200Mhz version:
Download here: http://www.mediafire.com/?eo3cmqg64md7qdb
Mirror: http://www.zshare.net/download/8731000468bf80d9/
Click to expand...
Click to collapse
File name: zImage_archos_recode04A.zip (MD5: 950D533F09131FCFCBD2BE4084C44691)
File name: zImage_archos_2.1.04_recode01.zip (MD5: ADF0C6FCCA503932D1C3860B3BAF61B3)
2011-02-01
===================
- Rebase from the original kernel source
- Complier optimization
- Add interactive CPU governor
- Bluetooth fix (please test, should still have problems)
- For those enjoying online flash movie, e.g. myTV.tvb.com, please set the freq to min:1000/max:1000 (Best with flash player v10.1.105.6 or upper)
- Set freq to min:1100/max:1100 for best 3D gaming experience
- Suggested to use with chulri's initramfs
1280Mhz version:
Download here: http://www.mediafire.com/?wu37fj90g69o61e
Mirror: http://www.zshare.net/download/860178577cd732f3/
Click to expand...
Click to collapse
File name: zImage_archos_2.1.04_recode01.zip (MD5: ADF0C6FCCA503932D1C3860B3BAF61B3)
2011-01-17
==================
- Not guarantee to work with $aur0n's 0.4.1 initramfs. Please use 0.2/0.3 initramfs (boot from SD) if you get problems
- More stable & smooth
- Overclock to 1280Mhz (Stable in playing NFS shift for a few hours - I am in world track now...)
- Remove 250Mhz and add 600Mhz (as 600Mhz is needed for SetCPU to display correctly)
- Fix the SetCPU 'time in state' problem
- Revert the bluetooth driver
- Cherry-pick more commits (refer to my github)
- Special thanks to $aur0n's initramfs
1280Mhz version:
Download here: http://www.mediafire.com/?1qweknppsoyb6rx
Mirror: http://www.zshare.net/download/8536472801a3552a/
1200Mhz version:
Download here: http://www.mediafire.com/?36wjsvkh6615dxg
Click to expand...
Click to collapse
Alternative link to $aur0n's initramfs (boot from SD): http://www.mediafire.com/?t41kvaonad7c83d
File name: zImage_archos_1280_fix01.zip (MD5: 5DAC535DA0EFFB1422BC887EF19564F8)
File name: zImage_archos_1200_ext4_fix07.zip (MD5: 1F022CCCD127A051154E98C5AC56CD2F)
2011-01-12
================
- More stable & smooth
- Apply 2.6.29.6 patchset - kernel
- Apply 2.6.29.6 patchset - ipv4
- ramzswap support (refer: http://code.google.com/p/compcache/)
- Cherry-pick more commits (refer to my github)
Download here: http://www.mediafire.com/?dih30gjy0lvljpk
Mirror: http://www.zshare.net/download/85094141432e0aae/
File name: zImage_archos_1200_ext4_fix05.zip (MD5: ECA8381E8371D1FE89FE2253D3482E9E)
2011-01-06
======================
- EXT4 fix (Quadrant score ~ 2500)
- Stable at max frequency 1200Mhz and min frequency 250Mhz (thanks Tzbob)
- Selectable frequency using SetCPU: 250/300/1000/1152/1200 Mhz
- 2.6.31 scheduling tweaks
- Source code pushed to github.com for easy sharing and conforming to GNU public license
- Merge various commits ( details can be seen in my github: https://github.com/ardatdat/archos-kernel/ )
- Quadrant scoring 2808 using 1200Mhz and boot from SD (Sandisk 8G Class 4)
Download here: http://www.mediafire.com/?7o7wnyipxwffx3w
Mirror: http://www.zshare.net/download/8483628818cf11b2/
File name: zImage_archos_1200_ext4_fix04.zip (MD5: 2CEF2D7F526DCD81B9C75EE2DAEBFF6F)
2011-01-03
================
- Updated a new kernel that supports $aur0n script (EXT4 support)
- Down-clock to 1100 Mhz because 1200 Mhz seems too hot and not too stable
- Merge some patches from kernel 2.6.29.6
Download here: http://www.mediafire.com/?ut6deu41216wdyd
Mirror (zip): http://www.mediafire.com/?83rd6te7a8ndmts (MD5: 7C8F9D48D74F45251B358FB3E2454485)
2011-01-02
============
- Initial version (not EXT4 support)
- Over-clock to 1200Mhz
http://www.mediafire.com/?bw8iq34tkvkllxe (MD5: 83D2A38A84C97C9336325EDD48C8D1B3)
Beware! After overclock, you will feel a bit hotter than before and battery drains much faster!! Flash it at your own risk.
What you need to do is:
1) Install SDE
2) Get the initramfs from this post (download the kernel+init.zip and extract it): http://forum.xda-developers.com/showpost.php?p=9948644&postcount=1
3) Replace the zImage with the new overclocked kernel
4) Boot into SDE recovery menu and copy the initramfs.cpio.gz and zImage through USB cable
5) Boot into SDE developer OS
6) You should get all your apps here and have superuser right now
You will now have read/write access to /system/ or /data/ ...etc.
Next step: You can download GScript from the market (free) to make some custom scripts to remove unnecessary apps and replace the hosts file, etc.
=================================================
Give us a "Thank" if you think this kernel works great for you
* Feel free to buy me a beer by clicking at the 'donate' button
=================================================
Oh thanks man! I'll impliment this into my own version of Auron's, yeah there was some confusion about your method, thanks for clearing that up!
Nevermind XD I don't know enough to add that, but Auron heavily uses EXT4 which he compiled into his kernel, which is probably why it isn't working for you, he explains in his topic the things he did or did not do.
Tzbob said:
Oh thanks man! I'll impliment this into my own version of Auron's, yeah there was some confusion about your method, thanks for clearing that up!
Nevermind XD I don't know enough to add that, but Auron heavily uses EXT4 which he compiled into his kernel, which is probably why it isn't working for you, he explains in his topic the things he did or did not do.
Click to expand...
Click to collapse
Thanks. BTW, it would be good if Auron will release his source such that we know what exactly is changed apart from the EXT4 things.
New kernel updated!!!
Get it at the #1 post
Now, it is EXT4 support and can be used together with $aur0n initramfs !!!
Down-clock to 1100Mhz seems to make it more stable
Thanks man really appreciate your quick work! works perfectly with Auron's
Although I'm curious how that overclock works, I've read up on it and it seems that everyone else is making overclocking modules etc. your solution seems a lot more efficient. Do other people know about it too?
I first though it was just a soft change, something that didn't affect the hardware, but something that just forced the digit 1100 instead of 1000, this doesn't appear to be the case since I get some speed gains in Quadrant
~ benched a 2438 ^^
edit: is it possible for you to change the LOWEST value as well? i'm not sure how it would react but I imagine a 100Mhz/200Mhz feature would save up some standby-battery-usage also is it possible to change the intervals with this method? so that we can get 300/400/500/600/700..1100?
edit2: would it be theoretically possible to compile a kernel with driver support for gamepads and others? perhaps ntfs-3g to mount ntfs external drivers... thinking about this we have usb host on this device and an open bootloader
Tzbob said:
Thanks man really appreciate your quick work! works perfectly with Auron's
Although I'm curious how that overclock works, I've read up on it and it seems that everyone else is making overclocking modules etc. your solution seems a lot more efficient. Do other people know about it too?
I first though it was just a soft change, something that didn't affect the hardware, but something that just forced the digit 1100 instead of 1000, this doesn't appear to be the case since I get some speed gains in Quadrant
~ benched a 2438 ^^
edit: is it possible for you to change the LOWEST value as well? i'm not sure how it would react but I imagine a 100Mhz/200Mhz feature would save up some standby-battery-usage also is it possible to change the intervals with this method? so that we can get 300/400/500/600/700..1100?
edit2: would it be theoretically possible to compile a kernel with driver support for gamepads and others? perhaps ntfs-3g to mount ntfs external drivers... thinking about this we have usb host on this device and an open bootloader
Click to expand...
Click to collapse
The most difficult part is to determine how much voltage to be given to each frequency. So, it would take some efforts to study.
In addition, setting too low frequency is not necessary be good because the machine might go into deep sleep and never wake up.
Have you run any Super PI tests (or something similar) to see if there are stability issues with the increased clock rates?
Typically when I over-clock my CPU on my PC I increase the voltages at the micro or mini level (CPU, Front Side Bus, Memory, Memory Controller, etc.). As an example 1.3500 may not be stable but 1.3501 could be. Typically You can find the voltage tolerances typically at CPU manufacturer website (ie Intel for me). of course you also have to deal with the temperature of the CPU and other supporting components that regulate the voltage. I will run a Super PI type application to test stability for a few hours. If it works then dont add voltage.. if it comes back with a miscalculation OR an application/OS crash then increase the voltage by a micro amount...
You are correct when you saw it not performing at a higher clock rate... typically what happens if the CPU does not have enough voltage to perform at the expected clock rate it seems to throttle the execution rate to ensure some level of integrity of the executing transaction..
Unfortunately over-clocking is not a science..
ardatdat said:
The most difficult part is to determine how much voltage to be given to each frequency. So, it would take some efforts to study.
In addition, setting too low frequency is not necessary be good because the machine might go into deep sleep and never wake up.
Click to expand...
Click to collapse
its using the same cpu as a lot of android phones are and i daresay that most of the work (working out optimal cpu voltage etc) has already been done
The question is for non-standard clock rates. Standard clock rates should have well defined voltages.
thefunkygibbon said:
its using the same cpu as a lot of android phones are and i daresay that most of the work (working out optimal cpu voltage etc) has already been done
Click to expand...
Click to collapse
can this kernel work on a101 or not?
Yes it will work, I'm 90% sure since they tested it on the 70IT and it's working perfect on my 43IT.
Tzbob said:
Yes it will work, I'm 90% sure since they tested it on the 70IT and it's working perfect on my 43IT.
Click to expand...
Click to collapse
ok i will give it a try....
I have tried this 1100 Mhz kernel and angry birds don't want to start and asphalt 5 have to force closing, I have returned with the only rooted rom....
merlin_1492 said:
I have tried this 1100 Mhz kernel and angry birds don't want to start and asphalt 5 have to force closing, I have returned with the only rooted rom....
Click to expand...
Click to collapse
While this kernel has been OC, it only allows you to choose higher frequencies. BUT, you can still choose 1000 Mhz as the highest by setting it in SetCPU.
After setting min/max as 1000Mhaz in SetCPU, this kernel is just like any other kernels, except that I have applied some of the newest kernel patches (fix bugs?) so that this kernel MUST be better than the stock one.
Hope you enjoy using it
no no, the problem is that after installing oc kernel(without touching anything about frequency), angry birds doesn't run and asphalt 5 doesn't run well and it closes when init a race...So, what's the problem? I have returned to original kernel(with rooting), and now are perfectly running(angry birds and asphalt5)...
merlin_1492 said:
no no, the problem is that after installing oc kernel(without touching anything about frequency), angry birds doesn't run and asphalt 5 doesn't run well and it closes when init a race...So, what's the problem? I have returned to original kernel(with rooting), and now are perfectly running(angry birds and asphalt5)...
Click to expand...
Click to collapse
It is quit strange, coz I can run angry birds, dungeon hunter, etc.. very smoothly even when I use 1100 Mhz, have you tried to install SetCPU and set the frequency?
Any one have similar problems?
Working great on my A101! It's subtle, but I do notice a slight performance increase in pocket legends. Keep up the great work ardatdat!
ok so i did it and now the youtube app freezes up with 1100 or 1200 mhz...the video plays for like 3 or 4 sec and than freeze leaving only audio playback.. video plays normal at 1000 mhz and down...
thanks for your sharing
but I can't unzipped the newest kernel
the 7-zip showed "file broken"
uglin said:
thanks for your sharing
but I can't unzipped the newest kernel
the 7-zip showed "file broken"
Click to expand...
Click to collapse
Thanks. A mirror (zip) link is posted in post #1, please check and re-download

share your stable setups

Here we can share our prefered ROM SETUPs that includes
When i mean prefered i mean it's each one's personal opinion and everyone's views should be respected..
1)rom
2)kernel
3)memory scripts
4)battery scripts
5)other tweaks(Audio)
6)SD partition and file system
7)min max frequency and governor
8)battery life you get with usage statistics
please share relevant link to threads if you can.
let me start with mine
ROM: VO1'S 13/11 deodexed http://forum.xda-developers.com/showthread.php?t=1837056
KERNEL: swap all 3.0 fire kernel http://forum.xda-developers.com/showthread.php?t=1960652
Partition: 1.5gb ext4 sd-ext + 150 mb linux swap
SCRIPT: Adrenaline engine 4.4 (modded for psn swap kernel)
CPU min:320 max:825 governor:Smartassv2
Tweaks: Hardware rendering http://forum.xda-developers.com/showthread.php?t=1877183
GPS ntp servers from http://www.pool.ntp.org/zone/in
Battery life: 13-14hrs
USAGE STATS:
display on:4.5hrs
music:1hr
wifi:7hrs
2g packet data:15mins
browsing:45mins
gps:10mins
games:1hr
share yours also
Guys none interested??!!
Sent from my GT-S5830 using xda app-developers app

[DEV][N5110][KERNEL] kexec-hardboot derivated method explained and kernel patch

Hi,
No access to dev subforum. Admin, please can you move it ?
This article can be usefull for developpers on other devices where kexec-hardboot does not work.
This derivated method could be an alternative.
This post follow this one http://forum.xda-developers.com/showthread.php?t=2558783 to give details about kernel patch to add this fonctionnality.
To understand the method used by mkasick, you can read this thread : http://forum.xda-developers.com/showthread.php?t=1266827. You can read also Tassadar explaination post here : http://forum.xda-developers.com/showthread.php?t=2104706
The important information is that, after a reboot, a part of the memory is not erased and then can be used to store data.
On stock distrib, this feature is used to keep previous kernel messages and make them readable from userspace in /proc/last_kmsg.
The kexec-harboot method was to use this feature to store kernel and initrd (and atags param) in a part of memory that will survice a reboot.
kexec comes in to part : a kernel syscall and a userspace programm.
On regular PC with Linux distrib, usually, when we want to restart quickly to another kernel, we do two steps :
- a first call to kexec program from userspace to load kernel/initrd into memory : kexec syscall is called and store all pages anywhere in free virtual pages. kexec kernel keep an index to know how to reorder all the pages to put them in real physical destination, when it will be time to jump to the new kernel.
- a second call to kexec (kexec -e) from userspace to switch to the new kernel : kexec syscall prepare the shutdown of all internal stuff ( flushing memory cache in TLB, disabling MMU, reseting cpu... ). At the very end of the process, just before jumping to the new kernel, all pages previously stored everywhere in memory are relocated to there final destination. This relocation process is done after mmu disabled. Just after relocation, new kernel is ready and kexec jump to first entry.
This process did not work well on android devices because some internal devices where not properly shutdown. That's why mkasick had the brilliant idea to store the new kernel in non flushed memory after reboot.
kexec-hardboot change the last action of kexec (jump to new kernel) by a reboot. After reboot (all internal devices are in a proper state), the second part of the patch verify if a kexec kernel has been previously loaded and if yes, jump to it, instead of the regular one.
( atags copy is also done there ).
I tried to apply this method on our Galaxy Note 8, everything was fine (reboot asm code, hardboot patch) except one blocking issue : the disable MMU code in kernel for our exynos4412 seems to not work well and hangs the system.
To solve this issue my idea was the following : If kexec can not do all the stuff and especially the relocation stuff, just do it by yourself : Instead off calling first time kexec to load kernel in non contigus virtual pages and creates index for relocation, we will write a userspace procedure to load directly the kernel at the physical final destination.
The only prerequisite will be to reserve enough physical memory at boot time. In the attached kernel patch, I reserve 32M of memory but, theorically, 8M could be enough for roms booting ( 8M limitation of boot.img block device).
Reserving more space is usable in case we want to play with bigger initrd. A lot of more memory can be reserved if needed.
To conclude, the method is as follow :
- Patch kernel to add hardboot patch
- Patch kernel to add Memory reservation at boot time ( bootmem allocator )
- Replace all kexec work by a userspace program to load kernel/initrd/atags directly to destination​I think this method can be applied easily to almost all android devices, as far as they support /proc/last_kmsg.
References/credits :
mkasic : kexec-hardboot creator
Tassadar : multirom creator - nice kexec-hardboot explainations​
Philippe,

[JB+KK+LP][HACK] RAM "repartition" - up to 691.1 MB of accessible RAM

Hi everybody!
Today I've experimented with kernel a bit and have found a way to increase accessible RAM up to 691.1 MB, at the cost of not working(or not fully working) camera, HW decoding and inablilty boot to recovery. The way is to modify cmdline:
https://github.com/ChronoMonochrome/Chrono_Kernel/commit/17d83a66bcb07a79e4575e0da3b762acd0def203
We use CONFIG_CMDLINE_FORCE=y to ignore cmdline passed by bootloader and use instead new one which contains defconfig.
The default cmdline is(JB bootloader with 624 MB - don't remember its baseband name)
CONFIG_CMDLINE="cachepolicy=writealloc mpcore_wdt.mpcore_margin=359 root=/dev/ram0 rw rootwait crash_reboot=yes crash_dump=no init=init console='null' [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] vmalloc=264M jig_smd=0 lpm_boot=0 checksum_pass=1 checksum_done=1 sec_debug.enable=0 sec_debug.enable_user=0 androidboot.serialno=47907233a768cf60 board_id=12 startup_graphics=1 logo. lcdtype=4 sbl_copy=1"
Click to expand...
Click to collapse
and new one that's in config:
CONFIG_CMDLINE="cachepolicy=writealloc mpcore_wdt.mpcore_margin=359 root=/dev/ram0 rw rootwait crash_reboot=yes crash_dump=no init=init console='null' [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] vmalloc=264M jig_smd=0 lpm_boot=0 checksum_pass=1 checksum_done=1 sec_debug.enable=0 sec_debug.enable_user=0 androidboot.serialno=47907233a768cf60 board_id=12 startup_graphics=1 logo. lcdtype=4 sbl_copy=1"
Click to expand...
Click to collapse
Take a look at "[email protected] [email protected]". 72M means size of HWMEM, "@256M" - its physical address. The same is for "mem" - 55M is size of nearest RAM bank.
Because we forcibly passed this cmdline and bootloader can't add parameter bootmode=2, it disallows to boot into recovery. Maybe later I'll be able to fix it.
Now about other side-effects of reduction of HWMEM - I've tested few sizes of HWMEM, and results as follows:
HWMEM=16M(699M) - camera, audio and hw decoding doesn't work at all
HWMEM=24M(691M) - camera and hw decoding doesn't work at all
HWMEM=48M - video recording and hw decoding doesn't work
HWMEM=64M - video recording still doesn't work, but camera doesn't FC when enabling video mode. May be some cameras will work.
HWMEM=72M - haven't found any bugs yet.
HWMEM=84M - default HWMEM size.
UPD. also uploaded kernel with [email protected] - this decreases available RAM, but maybe for some app or game will be useful this plenty of HWMEM
http://xda.mister-freeze.eu/XDA-files/ChronoMonochrome/kernel/mem_repart/
I've also tried to decrease modem_mem and mem_trace, but unfortunately, it causes bootloop (tested 8MB of modem memory, and 10M of mem_trace, both of these settings separately)
Now few words about how to flash it when recovery is unavailable: extract boot.img to /sdcard and flash kernel via terminal. Script to flashing kernel is attached - if you not familiar with terminal commands I recommend just execute this script to automatize the process. To return to usual kernel, extract boot.img to the same place, flash it, reboot to recovery and flash installable kernel again.
Enjoy :highfive:
@ChronoMonochrome thanks for keeping alive our ace 2 , so far I test HWMEM = 72M , but I have one question , what else do you bring to our phone ? Cheers ^^ :good::good:
Now some users will know why we doesn't see a full 768MB of RAM in phone info.
But @chrono, because of "androidboot.serialno=47907233a768cf60 board_
id=12 lcdtype=4" forced cmdline will bootup every codina devices?
Ave_Hornet said:
but I have one question , what else do you bring to our phone ? Cheers ^^ :good::good:
Click to expand...
Click to collapse
haha maybe LK3.1, but it's f***n buggy, it has problems with earlysuspend - it's unable to play music when screen is off and etc. Furthermore, I'm unable so far merge all changes from chrono kernel (most of them cause bootloop).
PolishVodka said:
Now some users will know why we doesn't see a full 768MB of RAM in phone info.
But @chrono, because of "androidboot.serialno=47907233a768cf60 board_
id=12 lcdtype=4" forced cmdline will bootup every codina devices?
Click to expand...
Click to collapse
Hm, honestly I've some doubts about it - maybe anyone already tested it?
This "androidboot.serialno" probably was generated by bootloader - I haven't tested yet whether other number works or not.
UPD. checked right now - at least androidboot.serialno=ffffffffffffffff works as well as mentioned one. board_
id=12 shouldn't cause problems since it's probably number, specific for codina, but only lcdtype=4 may cause problems on s6d display.
ChronoMonochrome said:
Because we forcibly passed this cmdline and bootloader can't add parameter bootmode=2, it disallows to boot into recovery. Maybe later I'll be able to fix it.
Click to expand...
Click to collapse
Fixed! :fingers-crossed: https://github.com/ChronoMonochrome/Chrono_Kernel/commit/8dbbd48feb1c57db7a335684ff418af01de00d40
This extends bootloader cmdline with new size of HWMEM, instead of passing custom cmdline.
As it turned out, HWMEM should be minimum 68 MB to avoid having any bugs:
http://xda.mister-freeze.eu/XDA-files/ChronoMonochrome/kernel/mem_repart/codina_kernel_hwmem68M.zip
Let me know, if you need a build with even lower size of HWMEM.
As for now, I did not notice any error in HWMEM=64 , but if I think well, that if the will not be any errors ,such modification will be commonplace in Your Kernel?
:silly: Btw. You Are CRAZY @ChronoMonochrome :good: :good:
Edit1. Searches for the network, but nothing works related to the Internet ,Anyone can confirm that ?
Damn it, it was too fast. I've seen some errors in kmsg and camera randomly FCs. I'm afraid that some errors in logs also can evidence about damage FS. I had to restore CWM backup to avoid camera FC, but even on usual kernel with orig HWMEM size I still have errors in kmsg when taking a photo:
Code:
<4>[ 54.664611] CM_NO_MORE_MEMORY domainId: 22, memType 7, wordSize 61440, alignement 15
<4>[ 54.664642] ALLOCATOR Dumping allocator "scratch" [0x00058800:0x00068800]
<4>[ 54.664642] Error: CM_NO_MORE_MEMORY: CM_AllocMpcMemory() failed
<6>[ 55.954864] dma dma0chan22: allocated logical channel (phy 3)
But I should say that I've previously used more unstable HWMEM size as low as mentioned 16 MB - and I've had some crashes which probably caused memory corruption(I do not mean the RAM, as is a non-volatile memory). The problem is that I've used dynamic fsync - now I came to conclusion that we should forget about using it - even simple app FC can cause problems, which persists until you restore full CWM backup. Does anyone have camera FC or errors in kmsg like above?
ChronoMonochrome said:
...... The problem is that I've used dynamic fsync - now I came to conclusion that we should forget about using it - even simple app FC can cause problems, which persists until you restore full CWM backup. Does anyone have camera FC or errors in kmsg like above?
Click to expand...
Click to collapse
Yeah, exactly the same what i had said for some weeks.. it makes no sense.... kernel default is "0" Fsync ON and i've removed NT-APP Permission to make it fail-safe (for this tweak)..
usually it's no problem if we have a fresh cwm backup.. simply format /data and restore only /data .. in 99% of cases the system works normal again..
PolishVodka said:
Now some users will know why we doesn't see a full 768MB of RAM in phone info.
Click to expand...
Click to collapse
Why was clear since beginning, but i remember talk about HOW to change it you-know-where over year ago
Now this topic is extremly interesting.
Vodka, will you make SAME kernel that's used in slimkat with HWMEM=64?
I fell off my chair seeing how this rom with your kernel works, this is totally unreal, man(14760 pts in antutu at 1.1ghz - also - machine works now at 500mhz like at 800mhz before).
Outstanding! Simply outstanding! :good:
Sorry to be without any information in this post. But this news must be celebrated.
EDIT
Using 68M without any issues... Camera/Video are working fine... with incredible RAM of 647 MB :good:
fluffi444 said:
Using 68M without any issues... Camera/Video are working fine... with incredible RAM of 647 MB :good:
Click to expand...
Click to collapse
I could confirm this :good::good:
Edit:
Btw, would this work for any kernel @ChronoMonochrome? Or is it specific to yours?
Why not simply use dynamic memory allocation through CMA for all ION heaps to free up more RAM when not used by surfaceflinger, audio or other subsystems? Afaik legacy memory allocators like PMEM, CMEM, HWMEM were all deprecated when the unified memory manager (ION) was introduced in Android 4.0.
yowanvista said:
Why not simply use dynamic memory allocation through CMA for all ION heaps to free up more RAM when not used by surfaceflinger, audio or other subsystems?
Click to expand...
Click to collapse
Yep, I thought about dynamic memory allocation too. Unfortunately, with one thought it ended up. I do not have much experience in programming to do so. Too many things use HWMEM - if I'm not wrong, mali also use it. It doesn't seem to me a simple.
shaqman89 said:
Btw, would this work for any kernel @ChronoMonochrome? Or is it specific to yours?
Click to expand...
Click to collapse
There are nothing specific to my kernel. As I said, it just adds new parameters "hwmem" and "mem" to the end of cmdline(it's much simplier to don't override old parameters but just do as it done). Therefore, it should work with every kernel.
Should i flash the zip after chronokernel version 2.19 or no?
HI @ChronoMonochrome
Take a look at "[email protected] [email protected]". 72M means size of HWMEM, "@256M" - its physical address. The same is for "mem" - 55M is size of nearest RAM bank.
if i change hwmem from 72 to 70 or 71 and mem from 55 to 60 or 56 its good for ace 2
and how i change this hwmem and mem ?
thanks sorry if my english is bad
I want to test it on my Ace 2. What is most stable value for our phone? And can You tell me how-to-do-it with noob-friendly tut?
str3tch72 said:
I want to test it on my Ace 2. What is most stable value for our phone? And can You tell me how-to-do-it with noob-friendly tut?
Click to expand...
Click to collapse
A user with over 2000 post is not allowed to ask for an "noob-friendly how-to".
If you do so anyway you are just only to lazy to search or to lazy to switch brain to ON.
*just kidding (a bit)* :highfive:
Just flash complete Kernel - HWMEM changes are hardcoded in kernel...
http://xda.mister-freeze.eu/XDA-files/ChronoMonochrome/kernel/mem_repart/
chrono_kernel_R2.21.2_hwmem68.zip is the latest with HWMEM68 which gives you 640 of RAM.
But be warned - Sooner or later some apps starting to FC without any obvious reason.
@ChronoMonochrome
Good job , thnaks.
I remember , when we upgrade Android 2 to 4 , there was two partitions named param and normal , that shoud be replaced in order to increase memory from 500MB to 624 , so what was that?
Here is that thread
sorset said:
@ChronoMonochrome
Good job , thnaks.
I remember , when we upgrade Android 2 to 4 , there was two partitions named param and normal , that shoud be replaced in order to increase memory from 500MB to 624 , so what was that?
Here is that thread
Click to expand...
Click to collapse
624MEM_V2.tar.md5 replaces bootloader, but 624MEM_V1.tar.md5 doesn't... It should be interesting itself, but I haven't any idea how it can work without replacing bootloader and its cmdline.
UPD. Maybe cmdline isn't hardcoded in bootloader, but written somewhere in param.lfs.
fluffi444 said:
......
chrono_kernel_R2.21.2_hwmem68.zip is the latest with HWMEM68 which gives you 640 of RAM.
But be warned - Sooner or later some apps starting to FC without any obvious reason.
Click to expand...
Click to collapse
Right now flashed my Kernel with HWMEM=68 (646MB RAM) .. and now i just want to ask u how long i need to wait till some Apps starts to FC ?? - Of course just approxx. maybe after 1 day of usage ???

☆☆[ZIP] [GUIDE] NOTE 4 - KERNEL Profiles and Tweaks [Simple, Easy] [5 Jan] ☆

☆☆[ZIP] [GUIDE] NOTE 4 - KERNEL Profiles and Tweaks [Simple, Easy] [5 Jan] ☆
NOTE 4 Snapdragon Kernel-Tweaks​
*Post 4 Updated with profiles zip , but don't forget to read
Hello fellow Note 4 users and all other who have a device with a Snapdragon 805 SoC , Ever since I made the Nameless Optimizer for our Nameless ROM , there was a lot of requests for making it available for all ROMs , I wish to express here that such a thing is impossible without modding the whole ROM , but I'll guide you to use some important tweaks that would make a DIFFERENCE
CONTENTS
1. Introduction and Credits
2. The Guide
3. The tweaks
4. Profiles zip (NEW)
5. RAM Manager (*NEW)
6. Troubleshooting and FAQ ​
Optimizing the CPU
I am sure you have always wondered whether it is possible to have a better battery life without sacrificing performance ,
I won't say its magically possible to get 10 hrs sot with ultra-heavy usage...
But if you follow this guide carefully/use these profiles it would much better than what u have ever had on your Note 4
Contributors
@Senthil360
Google+ : Find Me Here
My sincere thanks to
@Crimsonthunder for adding things in kernel and helping me,
@Pafcholini for that incredible touchboost option , and lot of other helps
@friedrich420 for AEL kernel
@psyntific and @F4uzan for testing the values
and my whole Nameless Team
Note to users : Be helpful to each other , use this thread as an opportunity to enhance your knowledge in kernel tweaks, I sincerely expect this thread to be filled with any/all sorts of tweaking doubts , so before posting something, kindly hit the search button
Ok lets cut to the chase
So I want to mention here three things which affects the battery and performance
1. Screen Brightness (affects only battery) - Well it depends on our personal usage , and we can't do much regarding that
2.Apps , services , background tasks- These topics have been discussed a million times here on XDA , disabling services , amplify , greenify and infinite other things...
My personal settings are
Greenify - Yes - (most of the data dependent user apps ,excluding system apps)
Xposed -No
Sync - Occasionally
Location - Disabled(default)
P.S - I use a greenify widget at homescreen to hibernate time to time
** I will provide the custom lmk values below
3.CPU frequencies and Voltages
Ok this is the most important thing that we are going to discuss here,
This is for INTERACTIVE and Interactive based governors.
Most of us use Interactive and interactive based governors because its the most reliable and its good balance between battery and performance , but actually it could be improved way more than how it behaves at default state...
The Problem
The most annoying feature of this governor are
1. It spends unnecessary time at higher frequencies draining too much battery
2. At times it stays at lower freqencies when we need that sudden burst , instead we only see stutters and delayed app opening/loading
These silly behaviour is what we are going to change (Note : Tested with following kernels , NL (not official), Emotion and AEL)
A Comparison
Take a look below in these screenshots, the first one is without tweaks ,
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
This is below is tweaked interactive
** Tweaked interactive has more battery life and performance than default **.
So now after those screenshots you might be wondering , yeah I see a bunch of frequencies being used , What's the deal?
Here's the answer, what we are going to do , we are going to instruct the CPU to use frequencies according to the situation ,cleverly to improve battery life without sacrificing performance.
** Here CPU = Governor + Hotplug
For example consider the activity of *Loading and reading a webpage*
Default interactive behaviour :
Opening browser : 2649 Mhz
Loading : 2649 Mhz
And while u look at screen , without touching - it scales to 1574 Mhz every 2 secs for no reason
Scrolling webpage - It will start with minimum of 1574 Mhz at 2 cores and reach 2649 Mhz
Damn thats too much...
**Tweaked Interactive Behaviour :
Opening browser : 1190 to 1497 mhz
loading 729 mhz to 1728 mhz on each core (depending on load of webpage)
looking at screen : 300mhz to 499 mhz
scrolling webpage : 729 to 1190 mhz across each core ( it will increase depending on ur scrolling speed )
That was just an example for Browser , but it is optimized for every activity, right from listening music in idle to Playing a hd game )
The Solution
"Really? But How?" you might ask , lol
** A) Well first of all, you might not have heard a dumber thing than this, Samsung had put tons of Exynos value on the snapdragon variants which we are going to deal with (Note : stock exynos values may have beem removed in custom kernels)
** B) Next , here is the golden formula
Power consumption = (Voltage^2) × (Frequency× no of cores)
**(Actually the real formula also needs to be multiplied with the Capacitance of SoC but since it is a constant it is insignificant in this formula)
Alright what that means , To put it simply More cores with LESSER frequency is MORE EFFICIENT than lesser cores with HIGHER frequency
Yeah that's right,and huge thanks to @psyntific for helping with me during all tests irrespective of Night or Day
See these calculated values,
For 2649 ghz at 2 cores
(1080^2) × (2649 × 2) = 6,179,587,200 (i)
Similarly for 1497 at 4 cores
(890^2) × (1497 × 4) = 4,743,094,800 (ii)
Dividing (ii) by (i) , we are saving 25 % at higher frequency, but as i said above this saving is much more in other cases , i.e Browsing , scrolling , app opening
C) Tweaking more cores to start scaling up from lesser frequency
This is one other important tweak , the holtplugs are tweaked in such a way that they will give priority to using more cores rather than frequency while task is increasing and shutting down much better while task decreases , infact its a combination of governor and hotplug tweaks
D) And tons of more governor and system tweaks like Boost duration, frequency sampling/polling rate (Every milliseconds makes a difference) , pardon me its impossible to mention everything here , I'll add it in the tweaks section
Oh have to mention this,
However, if you put any trust in Quadrant scores you could use them to prove that dancing naked for 5 minutes in your garden affects device performance.*-*Chainfire
Phew and now that you are ENLIGHTENED , let's proceed to the easier tweaking part
The Tweaks ​
Required app : Kernel Adiutor (special build for Note 4 by @Pafcholini)
Find it here :
https://mega.nz/#!JgMjBLab!m1Hgm0S0Xs-YqN5PM5wkmREndb_QsLsNLH66yzo3bj0
☆ 1. Interactive based -performance and battery
Hotplug tweak
* Disable all other hotplugs
*Enable MSM Mpdecision Hotplug (at bottom)
* Minimum CPU online = 2
* Maximum CPU online = 4
* Max Cores Screen-off = 1
* Idle Frequency = 960 Mhz
* Start delay = 5000 ms or lesser
* Delay = 75
Interactive tweak
Follow the same order while tweaking and do exactly as described , otherwise it won't work
* Set governor to Interactive
* Disable scheduled workqueues
*Disable cpu-boost unless absolutely necessary
Open governor tunables and change the following
*(Note for Emotion users) If bk_locked is 1 change it to 0 before tweaking and then for making the new values stick change it back to 1
* boostpulse_duration = 80000
* go_hispeed_load = 95
* hispeed_freq = 499200
* input_boost_freq = 960000
* min_sample_time = 100000
** target_loads = 98 422400:15 729600:30 1190400:35 1344000:40 1497600:55 1574400:60 1651200:65 1728000:75 1958400:85 2035200:90 2265600:95 2496000:98
(just copy paste lol)
* Now above_hispeed_delay = 20000 1497600:40000 1728000:30000 1958400:30000 2035200:15000 2265600:20000
== If above_hi_speed_delay does not stick copy and paste these values in /sys/devices/system/cpu/cpufreq/interactive/above_hispeed_delay , save the file and change its permission to 444 to prevent overriding
CPU Voltage tweak
* Decrease global offset by 40 mV (Minus 40 mV)
==========================​
Other recommendations
* Intellithermal ON (for gamers)
* I/O scheduler cfq
* KSM OFF (u really don't need this )
* Software CRC control OFF
That's it for now so simple right , more guides technical info will be added later
Even though my intention was to teach you and help people to make thier own tweaks, its proving to be difficult for few or some don't have much time
So now I share my profiles as a falshable zip , you can use it , as it is or as a base to make your own settings , somehow I hope this will be helpful to all the users. Good luck
1. Marshmallow
2. Lollipop
MM kernel based ​
PROFILES-V4 Stable​Release date : 12 / Jun / 2016
These profiles were tested on
* Nameless Kernel 1.2 MM edition
Download here
Spoiler
https://www.androidfilehost.com/?fid=24580943222146101
LP kernel based ​
PROFILES-V3​​
Release date : 06 /Feb/2016
These profiles were tested on
* AEL 8.4
*Emotion RC23 & 24
*Nameless V7
Download here and flash from recovery
https://www.androidfilehost.com/?fid=24399994186369309
PROFILES-V2 Stable​Release date : 18 /Jan /2016
These profiles were tested on
* AEL 8.2
*Emotion RC23 and 24 betas
*Nameless V7.0
Download here and flash from recovery
https://www.androidfilehost.com/?fid=24369303960687778
PROFILES-V1 Stable​Release date : 05 / Jan / 2016
These profiles were tested on
* AEL 8.1
*Emotion RC23
*Nameless V6.0
Download here and flash from recovery
https://mega.nz/#!V9M0kDCI!yc8T4T7-S5BoDwTaboYtODkWn4sdRrLxHUIRLTD5eBQ
The profiles here have few additional codes for settings that are not available in UI of Kernel adiutor , so for full functionality apply after each boot manually. For those who are wondering if these profiles are just the result of changing few settings like governor , hotplug . Its not that and in reality its much more complex, It involves things such as ,
*Going through committ changes of each kernel to make best use of the available features.
*Calculating tunables for governors ,I/O schedulers ,Hotplugs based on the complex algorithms ,formulas that govern them
*Applying these knowledge for our device considering the real-time usage and the interaction between Cpu,hotplugs,schedulers,VM,LMK ,/proc/sys values /sys/module and a lot of other things.
What you see in app is just what the app allows you to see
*Setting up tasker for set on boot :- http://forum.xda-developers.com/showpost.php?p=64875576&postcount=261
RAM Management
So without further delay let me start with the LMK (Low Memory Killer) parameters
1.Foreground Applications - These are the the current applications that you are using in front of your eyes , For example the browser while you are browsing
2. Visible applications - Let's say after downloading something using browser , it loads another page in the meantime you open the file with a file manager, Now here the Browser is Visible Application and File manager is Foreground application
3. Secondary Server - The components of UI and launcher fall in this category
4. Hidden Applications - This one is little anamolous , the apps which are not running currently visibly like the browser or file manager i mentioned above , but these are the apps that run in background and live on RAM (some are essential, some are useless (bloat) )
5. Content Provider - We can call these linked apps , for example when pressing a number in whatsapp , the dialer comes up here the dialer app is content provider for whatsapp
6. Empty Applications These are needless apps just running and living on RAM which can be killed
Ok Now let's see what happens with the values we set..
To put it simply , suppose say we set the values as 88 , 110 , 132 , 164 , 176 , 220 respectively for the slots 1 to 6 .. (Note 4 5.1.1. Default values ) ,
Lets take the 132 , 3rd slot for example , I said the 3rd slot i.e 'Secondary Server' holds things such as UI launcher related stuff ,
That's Ok but what the hell does 132 represents ? It is nothing but a parameter which tells the system to always keep the 3rd slot a minimum free available memory of 132 MB , so when you try to add more launchers or UI stuff see lags because the system is killing/struggling to keep 132 mb free but you are not allowing it to settle by overloading stuff , you may ask then why can't we simply reduce that value so that it can survive ,
That's right way to think but the problem are
1. To keep android stable the lmk values should be in order i.e 1<2<3<4 <5<6
2. When you reduce these values RAM is piled up with loads of apps which will have negative impact on battery and performance ..
So which way to go , what's the ideal solution , before we discuss that let mention a few more things ...
* The RAM management is completely different in Touchwiz (poor) and Aosp/cm (good) - Samsung has tons of bloat apps , services processes which are like a parasite on the RAM
*Note When i said System keeps a minimum of 132 mb for secondary server it doesn't mean 132 mb out of whole RAM
** Total Availble RAM is NOT the same as Total physical RAM
** There are things such as overcommitt ratio , memory , low watermark to consider which is too much tedious to discuss here right now
** Lastly locking app in memory or assgning oom (out of memory) score to apps are not possible since kitkat due to changes in Android Run Time (ART)
With these points in mind lets proceed to find out the working method to improve our Note 4's RAM management
If you have read all the points , I guess by now you might have an idea of what does what..
Generally,
The first three control multitasking
The last three, can be increased to free up RAM
** NAMELESS Users need NOT use any values , I have intergrated special formula and mechanism inside ROM for scheduler and RAM management
LMK values
Default 5.1.1 - 88 , 110 , 132 , 164 , 176 , 220
Multitasking - 48, 56 , 64 , 110 , 132 , 166
Balanced - 56 , 64 ,82 , 194 , 250 , 305
Gaming/ Aggressive - 32 , 64 , 128 , 250 , 470 , 512
Thank you , thats it for now
* Setting up tasker to apply profiles on boot : http://forum.xda-developers.com/showpost.php?p=64875576&postcount=261
* Cannot add or delete Profiles? Follow this : http://forum.xda-developers.com/showthread.php?p=64954992
* App Crashes or lag builds up , check this : http://forum.xda-developers.com/showpost.php?p=64991257&postcount=350
* Further reading (deeper stuff) : http://forum.xda-developers.com/showpost.php?p=64622626&postcount=35
I've failed at the first hurdle. I don't get the MSM mpdescision hotplug option.
Update. Doh. On nameless kernel. Sorry.
Sent from my SM-N920C using Tapatalk
ninjabadger said:
I've failed at the first hurdle. I don't get the MSM mpdescision hotplug option.
Update. Doh. On nameless kernel. Sorry.
Sent from my SM-N920C using Tapatalk
Click to expand...
Click to collapse
Oops , NL kernel with msm_mpdecision is coming soon ?? , right now this guide is applicable with Emotion and AEL kernel ?
Nice thread and well organised
Semma Post bro :good:
May I know which ROM , kernel , bootloader , modem combo is best for battery backup (N910G) ?
I wanna try ur kernel adiutor settings in it.. :victory:
I'm not able to find emotion and AEL kernel for our N910G 5.1.1 .. where can I get it bro?
https://www.mediafire.com/folder/rvxdm018fdm1o/EMOTION_KERNELS_NOTE4#dsxr7ruz9p0ub
kalaishere said:
Semma Post bro :good:
May I know which ROM , kernel , bootloader , modem combo is best for battery backup (N910G) ?
I wanna try ur kernel adiutor settings in it.. :victory:
I'm not able to find emotion and AEL kernel for our N910G 5.1.1 .. where can I get it bro?
https://www.mediafire.com/folder/rvxdm018fdm1o/EMOTION_KERNELS_NOTE4#dsxr7ruz9p0ub
Click to expand...
Click to collapse
Thanks bro.
Correct link than,
The 5.1.1 910F kernel will also work on 910G , ?? ,
The link you provided in the 3rd post for Kernel Adiutor for Note 4 doesn't work
http://"https://mega.nz/#!JgMjBLab!m...sNLH66yzo3bj0"
Wise.Guy said:
The link you provided in the 3rd post for Kernel Adiutor for Note 4 doesn't work
http://"https://mega.nz/#!JgMjBLab!m...sNLH66yzo3bj0"
Click to expand...
Click to collapse
Thanks for the tip bro ,updated . Check now
Senthil360 said:
Thanks for the tip bro ,updated . Check now
Click to expand...
Click to collapse
It's ok now. Thank you
@Senthil360 can you provide kernel backup settings and share it with us? it will be easier to restore your backup so we can test.
if you have time, please provide backup settings for the 2 kernels below (either from synapse or kernel auditor)
-emotion r23 rc1
-ael v8.1 multivariant
thank you! i love to try your kernel settings ?
Dealte.
Whenever I downloaded the emotion kernel it changes from a .zip to a .jar
Anyone else get that?
Sent from my SM-N920C using Tapatalk
ninjabadger said:
Whenever I downloaded the emotion kernel it changes from a .zip to a .jar
Anyone else get that?
Sent from my SM-N920C using Tapatalk
Click to expand...
Click to collapse
yeah. you have to use firefox or use pc to download.
b.eslabon said:
@Senthil360 can you provide kernel backup settings and share it with us? it will be easier to restore your backup so we can test.
if you have time, please provide backup settings for the 2 kernels below (either from synapse or kernel auditor)
-emotion r23 rc1
-ael v8.1 multivariant
thank you! i love to try your kernel settings ?
Click to expand...
Click to collapse
No no bro , see that's the whole point , I want the users to be individualistic and i want you to help do these things on your own , Its very simple to follow and its been tested and approved , I hope that every bit of time you take to do this will certainly be useful and I cannot provide ready-made things outside Nameless now bro.
Senthil360 said:
No no bro , see that's the whole point , I want the users to be individualistic and i want you to help do these things on your own , Its very simple to follow and its been tested and approved , I hope that every bit of time you take to do this will certainly be useful and I cannot provide ready-made things outside Nameless now bro.
Click to expand...
Click to collapse
no problem bro ? i got your point. im just suggesting for easier ways tho
when you say interactive governor, it includes all the governor which are based on interactive such as interactive pro, intelliactive, etc

Categories

Resources