[KERNEL] Mpokang Kernel v10 [3 variations] [773MB RAM] [+50% RAM performance] [14/10]

Status
Not open for further replies.
Search This thread

mpokwsths

Senior Member
Nov 28, 2009
638
1,665
Chania
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.


To sum up: For Android 4.3 all variations are applicable. For Android 4.2.2 ONLY the 1080p variation applies.


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:

Moderation - Deleted Links.

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.
 
Last edited by a moderator:

mpokwsths

Senior Member
Nov 28, 2009
638
1,665
Chania
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
 
Last edited:
R

ronnie_1712

Guest
I'm ready if you can enable module for PGM. Can't live without it :D
 

doomed151

Senior Member
Dec 5, 2009
1,521
2,184
I shall test this kernel.
Also, it would be nice if you could list down stuff that you changed/added compared to stock kernel.
 

Sik-1

Senior Member
Oct 28, 2009
1,429
553
Brooklyn
Def would love being a tester for this. Always on the edge

Sent from my Galaxy Nexus using xda app-developers app

---------- Post added at 07:25 AM ---------- Previous post was at 07:22 AM ----------

Question- does it break anything such as 1080p recording an such, I remember a time when I had my sensation that a couple of devs had kernels that gave more ram but took away some of the functionality, jus wondering if this is the case, bcuz in all honesty I can live without such high end things when they simply eat away at my battery lol

Sent from my Galaxy Nexus using xda app-developers app
 

mpokwsths

Senior Member
Nov 28, 2009
638
1,665
Chania
Well, it seems that there are many components than can provide some RAM slices. 1080p in camera seems to cost almost 40 MBs. With fully usable 720p and photos etc, we are at 72-73 MBytes more RAM than other kernels. Test build will be up tonight or tomorrow morning.
 

Sik-1

Senior Member
Oct 28, 2009
1,429
553
Brooklyn
Well, it seems that there are many components than can provide some RAM slices. 1080p in camera seems to cost almost 40 MBs. With fully usable 720p and photos etc, we are at 72-73 MBytes more RAM than other kernels. Test build will be up tonight or tomorrow morning.

Ahhh I see figures, this is gonna b friggin sweet

Sent from my Galaxy Nexus using xda app-developers app
 

Ashtrix

Senior Member
Dec 21, 2010
1,635
591
Started my own kernel development.
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. Started testing some builds and the results are very encouraging. Only a screenshot for now:

Stay tuned!

Ahhh I see figures, this is gonna b friggin sweet

Sent from my Galaxy Nexus using xda app-developers app

+1 !!

This will be awesome !!
Will this be based off on AK, just curious as you had the Ak kernel re-released many times ;) ?
 
Status
Not open for further replies.

Top Liked Posts

  • There are no posts matching your filters.
  • 227
    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.


    To sum up: For Android 4.3 all variations are applicable. For Android 4.2.2 ONLY the 1080p variation applies.


    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:

    Moderation - Deleted Links.

    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.
    94
    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
    42
    Version 7 uploaded:

    Changelog:
    - 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

    (Backported zcache, cleancache, frontswap and zswap from kernel 3.11 also. They are not used in this kernel though, as the first two must be tested and the later two need a real swap device in order to work. Future scenarios...)

    Have fun!
    34
    Uploaded Ver. 6

    Changelog:
    - 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)
    33
    v10 final uploaded in OP! 3 variations to chose from!

    Changelog tomorrow (I'm struggling at work)...