• Introducing XDA Computing: Discussion zones for Hardware, Software, and more!    Check it out!

[KERNEL] [4.4] Mpokang Kernel v10 [3 variations] [773MB RAM] [+50% RAM performance]

Status
Not open for further replies.
Search This thread

AbhishekS

Senior Member
Feb 18, 2011
3,090
833
abhishekmsharma.com
Okay, so we all know how good Mpokang kernel is. Unfortunately the dev hasn't been active and people have been modifying his kernels to make them work on 4.4 (KitKat).

This a thread which looks exactly like the original Mpokang thread, but the only difference being that it contains the download links to the Mpokang kernels which work on Android 4.4 KitKat. I have absolutely no contribution in the development of this kernel and if you like Mpokang, then please don't thank me, rather go to THIS THREAD and thank the OP. And the entire credit for this goes to @metalspring as he has been the one who modified the Mpokang kernels to make them work on KitKat.

Note
TouchControl/PGM works only on SuperRam. TouchControl/PGM will not work on CM version or 1080p version.

Mpokang kernel​

This kernel focuses on MAX USABLE RAM. As we know, the GNex has 1GB of RAM. A big part of it (300+ MB) is reserved for various things.
Is it really needed? No, it looks like that actual usable RAM can be much much more.

Feature List:

Many features, just as many as every other kernel. The differentiating points of this kernel are:
1) First kernel with the pioneering RAM reclaiming: from 693 --> 773 MB RAM.
2) Most available RAM: Still has the most RAM available.
3) Flexibility: Choose any of the 3 variations that suits you
4) Sophisticated ZRAM mechanism: zsmalloc from Linux kernel 3.11, enhanced zram mem operations
5) First and only kernel at the moment with huge 50%+ memory performance boost


As of v10, three (3) variations of Mpokang kernel for everyone to choose according to his needs.
Performance is the same, only the available RAM changes:

SuperRAM: 773 MB RAM -- Some rare video apps (or the gay CM video camera) may not work properly.
CM "gay" :silly: : 762 MB RAM -- All video apps work OK but still 720p, suitable for CM based roms.
1080p version: 751 MB RAM -- 1080p fully working, compatible with everything, even Android 4.2.2. Does not contain ramdisk. Clean rom installation required.



Valuable Notes

Note 1: Many redundant and practically useless stuff is removed. Badass sounding governors and schedulers, which don't actually offer anything were removed.

Note 2: Interactive gov from kernel 3.4, hyper gov and SIOPlus, deadline and row are the best out there. Maybe FIOPS on the future.

Note 3: In general .. more useless stuff removed equals more RAM. This does not apply to the SuperRAM variation, where many many features can be added as modules without reducing the available memory.


Kernel source: https://github.com/mpokwsths/mpokang_kernel

DOWNLOADS: (All of these work on KitKat ie Android 4.4.x) <MODERATOR EDITED - LINKS REMOVED>

FAQs:
Q: When using SuperRAM version I have trouble running apps like Video editor, video calling in some apps.
A: Some rare apps don't like this extreme RAM reclaiming. Use another variation.

Q: My screen colors seem a bit changed. Even if I change them like I used to in TricksterMod...
A: It's because of Purple Tint Fix. Many users experience that ugly tint, and this kernel cures it. Slightly change your color settings in Trickster. If, whatever you do, the colors look bad, report it here and I will see what I can do.

Q: I want the full 1GB of RAM. Is this possible?
A: No, full 1GB is unachievable (with TI's ION code). But if someone is willing to drop all the media support (camera, video, media playback) close to 900MB is achievable.

Changelog:

Ver. 1:
- Now using ramdisk (Osmosis modified). Now you can flash the kernel unconditionally (no more screwing from other ramdisks) and my preferred settings are kept.
- Introduction of Cleancache from kernel 3.7
- Introduction of Zsmalloc, Zcache and Frontswap from kernel version 3.8

Ver. 2:
- Reclaimed 4 MB of RAM (now it should be at 771 MB) from the frame buffer. TI has been very generous spending GNex's RAM all over the place.
- Pushed some commits from ASPK, mainly memory hotplugging related
- Went back to Anykernel format. No ramdisk since there were some complains of problems with some roms.
- Fixed vfs_cache_pressure (script not needed)
- Some memory reservation and ram leaks fixing (900KB RAM more).
- Should have a bit better battery consumption since I altered the dirty ratios.

Ver. 3:
- Modified the installation script. Now it copies the hacked Power HAL to the system so that altered gov settings do not reset after screen off (No need to check "Frequency Lock" in Trickster now).
- Removed a bunch of useless stuff. The kernel itself shrunk significantly. Boot time should be faster than ever.
- Reclaimed another 600K :D
- Changed interactive governor default settings. Only above_highspeed_delay needs to change to 20000 now.

Ver 4:
- Disabled all kernel debugging (should be a bit faster)
- Reclaimed another 512KB (compared to 4.1)
- Added some battery preservation routines (should consume a little less battery when watching videos)
- Some scheduler tinking

Ver. 5:
- Updated Linux kernel 3.0.88 --> 3.0.94
- Enabled ZRAM from kernel 3.7 (thanks Boype & Faux)
- Disabled Cleancache & Zcache
- Some more battery preservation additions
- Enabled full Hard Float kernel building.

Ver. 6
- ARM patches for slightly improved performance
- pushed a commit for ZRAM that will provide somewhat better memory management
- some other changes for the next version (ZRAM working together with Zcache & Frontswap)

Ver. 7
- Using Linaro Toolchain 2013.09
- Updated Linux 3.0.94 --> 3.0.96
- Improved mem operations of zram
- Backported zsmalloc from latest kernel 3.11 (zsmalloc = zram memory allocator)
- Some kernel scheduler and timer fixes
- Changes in VFS cache pressure and swappiness values to find the sweet spot

Ver. 8
- Several mutex code commits (multithreading optimization)
------ ARM: 7467/1: mutex: use generic xchg-based implementation for ARMv6+
------ mutex: place lock in contended state after fastpath_lock failure
------ ARM: mutex: use generic atomic_dec-based implementation for ARMv6+
------ mutex: dynamically disable mutex spinning at high load
- Added VUSIM voltage regulation. This is a screen regulator, so undervolting it should save some power (I have it at 1500mV without problems)
- ARM: mm: lazy cache flushing on non-mapped pages
- A couple of cache related optimizations for Cortex-A9
- Set default temperature limit @ 75C. Should be absolutely safe.
- voltage.h: Set VDDMIN to 810 - Smartreflex calibrated MPU min voltage now is 810mV
- i2c: use usleep_range to wait instead of msleep (imoseyon reported potential performance benefits)
- ARM: 7178/1: fault.c: Port OOM changes into do_page_fault
- readahead: fault retry breaks mmap file read random detection
- Some scheduler improvements?

Ver. 9
- Updated Linux 3.0.96 --> 3.0.98
- New ramdisk for the kernel. Now it can be flashed unconditionally anytime.
- Enabled loadable module support.
- Compiled many modules as external modules. Reclaimed 400KB of RAM.
- Reverted the 300Hz kernel timer. The load calculation was all over the place
- Reverted some UV commits (especially IVA) that seemed to produce freezes and SODs. Hopefully they are fixed.
- Some CPU cache code and kernel scheduler improvements.
- Added the io_is_busy interface to Interactive governor
- Now, apps that seeked 1080p won't crash anynore. 1080p support is removed in the media_profiles.xml
- Altered some default settings: color scheme slightly colder, interactive above_highspeed_delay=20000, io_is_busy=1

Ver. 10 - Changelog not available
 
Last edited by a moderator:

AuroEdge

Senior Member
Dec 17, 2010
492
39
I know I'm a little dense. That being said, I think a warning is needed for the battery fixing 4.4.2 version. That is to say please note that it is only for CM builds after a certain date. Tried using it on ShinyROM with hilarious results
 

akash3656

Senior Member
May 3, 2010
1,728
851
I don't think so, because it has a ramdisk too unlike the 1080p version. You can give it a shot. If it doesn't, use SuperRam.

I know you clearly stated in OP you didn't create this. You're just sharing it. I know you just wanted to bring the 4.4 discussion out of the original page to here. But xda admins may not be too happy :(

Then again I may not be right, but just giving you a heads up :)

Sent from my Galaxy Nexus using Tapatalk
 
  • Like
Reactions: ottoemezzo

AbhishekS

Senior Member
Feb 18, 2011
3,090
833
abhishekmsharma.com
Well I don't think that will be an issue because a 4.4 exclusive thread will certainly help reduce the confusion going on in the original Mpokang thread. And I'm sure anything which helps reduce the confusion and complexities will be appreciated by the admins/mods. :)

Sent from my Galaxy Nexus using Tapatalk
 
  • Like
Reactions: ottoemezzo

Grarak

Recognized Developer
Jan 16, 2012
2,799
10,496
Vienna
I know you clearly stated in OP you didn't create this. You're just sharing it. I know you just wanted to bring the 4.4 discussion out of the original page to here. But xda admins may not be too happy :(

Then again I may not be right, but just giving you a heads up :)

Sent from my Galaxy Nexus using Tapatalk

Xda mods will be unhappy because he posted the wrong kernel source

Sent from my Galaxy Nexus using xda app-developers app
 

noviz69

Senior Member
Oct 18, 2010
443
107
I installed this version "v10 SuperRAM (for newer builds - fixes broken battery)" with omniMetal but the battery always reports 0%
 

irland2bite

Senior Member
Sep 23, 2013
57
33
Wow, this modified kernel by metal + cm11 playfulgod + banks gapps standard, makes my Gnex Super-fast-smooth-savebattery (ART on)..GPS locked less then a sec :)

Sent from my Galaxy Nexus using xda app-developers app
 

Attachments

  • uploadfromtaptalk1387336437125.jpg
    uploadfromtaptalk1387336437125.jpg
    68.7 KB · Views: 924
Status
Not open for further replies.

Top Liked Posts

  • There are no posts matching your filters.
  • 46
    Okay, so we all know how good Mpokang kernel is. Unfortunately the dev hasn't been active and people have been modifying his kernels to make them work on 4.4 (KitKat).

    This a thread which looks exactly like the original Mpokang thread, but the only difference being that it contains the download links to the Mpokang kernels which work on Android 4.4 KitKat. I have absolutely no contribution in the development of this kernel and if you like Mpokang, then please don't thank me, rather go to THIS THREAD and thank the OP. And the entire credit for this goes to @metalspring as he has been the one who modified the Mpokang kernels to make them work on KitKat.

    Note
    TouchControl/PGM works only on SuperRam. TouchControl/PGM will not work on CM version or 1080p version.

    Mpokang kernel​

    This kernel focuses on MAX USABLE RAM. As we know, the GNex has 1GB of RAM. A big part of it (300+ MB) is reserved for various things.
    Is it really needed? No, it looks like that actual usable RAM can be much much more.

    Feature List:

    Many features, just as many as every other kernel. The differentiating points of this kernel are:
    1) First kernel with the pioneering RAM reclaiming: from 693 --> 773 MB RAM.
    2) Most available RAM: Still has the most RAM available.
    3) Flexibility: Choose any of the 3 variations that suits you
    4) Sophisticated ZRAM mechanism: zsmalloc from Linux kernel 3.11, enhanced zram mem operations
    5) First and only kernel at the moment with huge 50%+ memory performance boost


    As of v10, three (3) variations of Mpokang kernel for everyone to choose according to his needs.
    Performance is the same, only the available RAM changes:

    SuperRAM: 773 MB RAM -- Some rare video apps (or the gay CM video camera) may not work properly.
    CM "gay" :silly: : 762 MB RAM -- All video apps work OK but still 720p, suitable for CM based roms.
    1080p version: 751 MB RAM -- 1080p fully working, compatible with everything, even Android 4.2.2. Does not contain ramdisk. Clean rom installation required.



    Valuable Notes

    Note 1: Many redundant and practically useless stuff is removed. Badass sounding governors and schedulers, which don't actually offer anything were removed.

    Note 2: Interactive gov from kernel 3.4, hyper gov and SIOPlus, deadline and row are the best out there. Maybe FIOPS on the future.

    Note 3: In general .. more useless stuff removed equals more RAM. This does not apply to the SuperRAM variation, where many many features can be added as modules without reducing the available memory.


    Kernel source: https://github.com/mpokwsths/mpokang_kernel

    DOWNLOADS: (All of these work on KitKat ie Android 4.4.x) <MODERATOR EDITED - LINKS REMOVED>

    FAQs:
    Q: When using SuperRAM version I have trouble running apps like Video editor, video calling in some apps.
    A: Some rare apps don't like this extreme RAM reclaiming. Use another variation.

    Q: My screen colors seem a bit changed. Even if I change them like I used to in TricksterMod...
    A: It's because of Purple Tint Fix. Many users experience that ugly tint, and this kernel cures it. Slightly change your color settings in Trickster. If, whatever you do, the colors look bad, report it here and I will see what I can do.

    Q: I want the full 1GB of RAM. Is this possible?
    A: No, full 1GB is unachievable (with TI's ION code). But if someone is willing to drop all the media support (camera, video, media playback) close to 900MB is achievable.

    Changelog:

    Ver. 1:
    - Now using ramdisk (Osmosis modified). Now you can flash the kernel unconditionally (no more screwing from other ramdisks) and my preferred settings are kept.
    - Introduction of Cleancache from kernel 3.7
    - Introduction of Zsmalloc, Zcache and Frontswap from kernel version 3.8

    Ver. 2:
    - Reclaimed 4 MB of RAM (now it should be at 771 MB) from the frame buffer. TI has been very generous spending GNex's RAM all over the place.
    - Pushed some commits from ASPK, mainly memory hotplugging related
    - Went back to Anykernel format. No ramdisk since there were some complains of problems with some roms.
    - Fixed vfs_cache_pressure (script not needed)
    - Some memory reservation and ram leaks fixing (900KB RAM more).
    - Should have a bit better battery consumption since I altered the dirty ratios.

    Ver. 3:
    - Modified the installation script. Now it copies the hacked Power HAL to the system so that altered gov settings do not reset after screen off (No need to check "Frequency Lock" in Trickster now).
    - Removed a bunch of useless stuff. The kernel itself shrunk significantly. Boot time should be faster than ever.
    - Reclaimed another 600K :D
    - Changed interactive governor default settings. Only above_highspeed_delay needs to change to 20000 now.

    Ver 4:
    - Disabled all kernel debugging (should be a bit faster)
    - Reclaimed another 512KB (compared to 4.1)
    - Added some battery preservation routines (should consume a little less battery when watching videos)
    - Some scheduler tinking

    Ver. 5:
    - Updated Linux kernel 3.0.88 --> 3.0.94
    - Enabled ZRAM from kernel 3.7 (thanks Boype & Faux)
    - Disabled Cleancache & Zcache
    - Some more battery preservation additions
    - Enabled full Hard Float kernel building.

    Ver. 6
    - ARM patches for slightly improved performance
    - pushed a commit for ZRAM that will provide somewhat better memory management
    - some other changes for the next version (ZRAM working together with Zcache & Frontswap)

    Ver. 7
    - Using Linaro Toolchain 2013.09
    - Updated Linux 3.0.94 --> 3.0.96
    - Improved mem operations of zram
    - Backported zsmalloc from latest kernel 3.11 (zsmalloc = zram memory allocator)
    - Some kernel scheduler and timer fixes
    - Changes in VFS cache pressure and swappiness values to find the sweet spot

    Ver. 8
    - Several mutex code commits (multithreading optimization)
    ------ ARM: 7467/1: mutex: use generic xchg-based implementation for ARMv6+
    ------ mutex: place lock in contended state after fastpath_lock failure
    ------ ARM: mutex: use generic atomic_dec-based implementation for ARMv6+
    ------ mutex: dynamically disable mutex spinning at high load
    - Added VUSIM voltage regulation. This is a screen regulator, so undervolting it should save some power (I have it at 1500mV without problems)
    - ARM: mm: lazy cache flushing on non-mapped pages
    - A couple of cache related optimizations for Cortex-A9
    - Set default temperature limit @ 75C. Should be absolutely safe.
    - voltage.h: Set VDDMIN to 810 - Smartreflex calibrated MPU min voltage now is 810mV
    - i2c: use usleep_range to wait instead of msleep (imoseyon reported potential performance benefits)
    - ARM: 7178/1: fault.c: Port OOM changes into do_page_fault
    - readahead: fault retry breaks mmap file read random detection
    - Some scheduler improvements?

    Ver. 9
    - Updated Linux 3.0.96 --> 3.0.98
    - New ramdisk for the kernel. Now it can be flashed unconditionally anytime.
    - Enabled loadable module support.
    - Compiled many modules as external modules. Reclaimed 400KB of RAM.
    - Reverted the 300Hz kernel timer. The load calculation was all over the place
    - Reverted some UV commits (especially IVA) that seemed to produce freezes and SODs. Hopefully they are fixed.
    - Some CPU cache code and kernel scheduler improvements.
    - Added the io_is_busy interface to Interactive governor
    - Now, apps that seeked 1080p won't crash anynore. 1080p support is removed in the media_profiles.xml
    - Altered some default settings: color scheme slightly colder, interactive above_highspeed_delay=20000, io_is_busy=1

    Ver. 10 - Changelog not available
    14
    Hey guys, just an important Heads-Up, Looks like CM reverted back to their old "healthd" binary. When I flashed today's official Nightly for Toro (which just came out a half hour ago) I flashed it with the fixed 4.4.2 SuperRam, that borked the battery bigtime.

    So just as a quick test before restoring my nandroid I rebooted into recovery and flashed the original 4.4 SuperRam kernel that was previously working before the 12/15 build and it fixed the battery no problem.

    So, long story short. As of today, the original 4.4 SuperRam is the one to flash on all CM based roms again.

    This means that CM Gay Kernel and 1080p Kernel should work fine again as well.​

    So DO NOT use the 4.4.2 SuperRam kernel on any CM Based roms updated as of Today, it will have a reverse effect and mess up all your battery stats and functionality!!!
    7
    I can't prove you that mpokang is better through any benchmark. But I use my phone and for my personal usage, this is the best. It's notable the difference between mpokang and other kernels.

    You should be respectful with other people that simply disagree with your thoughts. I'm not a funboy, I'm just telling what I think and I'm sure that mpokang is the best one for my case.

    Sent from my Galaxy Nexus using xda app-developers app

    You should be respectful of other peoples kernels. If you had said you feel that Mpokang works best for you it would be one thing but you outright claimed that Mpokang is the best as if it were fact, which it is not. That is an example of how a fanboy speaks.

    Also, if you feel that Mpokang is better than all other kernels out there then you really have not tested any other kernels. I have just mentioned DirtyV as an example because it is my current daily driver but I can assure you, it is by far much smoother and faster than Mpokang as well as it's battery life is way better. I am not going to ever say that DirtyV is the best and no other kernel is better, but for me and many other users it works much better than Mpokang. This is the proper way to express your appreciation for a kernel or rom. Accept that no one kernel or rom will be 100% better than another because all users have their own preferences.

    You have to understand, there is constant development being done on quite a few kernels and when this one is no longer active it will without a doubt be surpassed eventually.

    I respect those that prefer it over others, that is fine, but when it becomes a group of people claiming there is nothing better and it's simply the best kernel ever, that is when it is no longer friendly discussion about it being a good kernel and is now a gathering of fanboys refusing to accept it is not the best.

    I used to swear by this kernel, I tried many kernels and I actually put days and weeks into testing and perfecting kernel settings for many different kernels but still this was the best at the time. That time has passed, there are new things available to kernel developers now and many amazing new developers with new ideas, at this point Mpokang is no longer the best, it is simply another good kernel among alot of good kernels.

    I appreciate that Mpokwths helped refine things like memory reclaiming and I appreciate his work but that does not change the fact he is blatantly violating GPL policies and he is well aware that he is doing so. That is complete disrespect for all the other developers that work hard to build for all of us and actually share their code willingly.

    How would you like it if you spent months and months perfecting a kernel that people loved and then someone came along, used your code as a base, then added some things that could help revolutionize kernel development for everyone and then proceeded to just disappear before sharing the code he created because of your work that he used as a base? That is basically what Mpokwths has done to all the developers that have contributed code so that he could create Mpokang. I'm sorry but I cannot respect a person that basically says F-YOU to everyone that helped him build this kernel by not sharing his work when everyone else does. This goes beyond GPL violations, this is outright wrong.

    The worst part is that we all know he is reading these posts, he is still active on XDA and does not have the decency to respond to the polite requests to share what he rightfully should share. His main thread is closed because he won't even respond to Senior Mods when they ask him about it.

    Sorry for the long post but this just had to be said.

    People, enjoy Mpokang, keep refining great settings for it like wavedashdoc, but please, stop putting the kernel up on a pedestal, it does not deserve it, nor does it's developer.
    7
    Hi Hey guys I've been doing some major testing and tweaking with this Kernel and the new DirtyV Kernel.

    This post is primarily for the VZW variant but may also yield good results on the GSM variant as well. These, I believe are the best tunables and settings for the kernel. Also this is for the SuperRam version. And I have tested this on the 1/25/14 build of CM 11

    TCP: Westwood
    RABS: 512 or 768
    Scheduler: noop (was with cfq, recently switched to noop because of its benefit on flash based storage devices.)
    Min: 384
    Max: 14208 (1536 for better benchmarks if your device can handle it, varies)
    Max Screen Off: 5376
    Min Screen On: 384
    Governor: Interactive with Franco kernel settings
    Above high speed delay: 15000
    Boost: 0
    Boostpulse duration: 500000
    Go high speed load: 95
    High speed freq: 10368 (minimal battery loss)
    Io is busy: 1
    Min sample time: 4500
    Target Loads: 85
    Timer rate: 15000
    Timer slack: 80000

    WiFi HP: off
    CAB: off
    FFC: off
    Multicore power saving 0
    High performance sound: off (not needed on CM)
    Headphone volume boost: 0 (not needed on CM)
    Battery life extender: 98
    Dynamic Fsync: off (not worth the risk of messing up your data partition with errors from crashing)
    Temperature Limit: 75
    GPU OC: 512
    Zram: off

    Smart Reflex: off (Franco and team did extensive testing and found SR not to be worth while since its not optimized well)

    Core Voltages: Franco r394 set voltages
    V1: 1120
    V2: 1150
    V3: 1050
    V4: 950

    IVA Voltages: Franco 394
    V1: 1275
    V2: 1150
    V3: 1050
    V4: 990

    MPU Voltages: my custom current voltages (new timings)
    1536: 1320 -> 1290
    1420: 1300 -> 1270
    1344: 1270 -> 1215
    1228: 1200 -> 1140
    1036: 1070
    729: 970
    537: 900
    384: 840
    192: 800 ( just to look right but not used)

    Regulator Voltages: Neph and tweaked
    Vaux3_6030: 2500 (for the VZW Nexus) 2700 or 2900 (GSM)
    VUSIM: 2100
    VMMC: 1700

    Color settings: calibrated for auto brightness
    Contrast: 0
    Gamma: 0

    Gamma Offset:
    Red: 0
    Green: -3 ( those on CM 11)
    Blue: 0

    Color Multiplayer:
    Red: 184
    Green: 197
    Blue: 200

    Colors are not over saturated and may not look as vivid. More natural looking colors and whites look white. No purpling affect either.

    Thanks to Neph of course for giving me a base to start with and to everyone who continues to work on this great phone!

    Edit: further testing setting the voltage regulators to low seemed to overwork the device. Back to stock besides Vaux_6030.

    Small edits to Mpu voltage too.

    ajy8avu9.jpg


    Managed to get highest antu rating at 1420mhz

    **undervolted higher values for even better performance**





    Sent from my Nexus 7 using Tapatalk
    7
    Haha yeah. It's not some made up "rule book".

    The GNU Public License under which kernel source is published clearly states that if you use the source you must also publish everything you base on it.

    Those are the rules of GPL. Period. Violating it is actually technically breaking the law.

    It's not hard to type "git push origin", mpok just never released the source because he wanted to keep it secret for whatever reason, and then promptly disappeared.

    This is not kernel favoritism. You can come find me in the DirtyV thread just as easily as the franco.Kernel thread I'm more directly involved in. I support devs who support the community.