Or Continue to Thread: [MOD][ANY][Mitsuyoshi EXT4 Mod…
Find Your Device:
5th March 2014, 11:54 AM   |  #1  
OP Member
Thanks Meter: 69
 
50 posts
Join Date:Joined: Mar 2013
This is the flo version of my mod for the old nexus 7 here http://forum.xda-developers.com/show....php?t=2280496

Repeating the intro to save you guys going there

Background..

With any linux system i build first thing i do is remove the journal from all my EXT4 partitions, to make a long story short ( i wont bore you with details of just how journal writes totally slow disk i/o , google it ) this gave me on average a 25% increase in system speed ( obviously due to the increased i/o rate )

I usually did it with

Code:
mke2fs.ext4 -O ^has_journal ...device...
before installing the distro, now i thought hey maybe this would work on android?

Now mke2fs is not well supported on arm but tune2fs is! in fact its included in TWRP 2.5 so


Code:
run_program("/sbin/tune2fs", "-O", "^has_journal", "/dev/block/platform/msm_sdcc.1/by-name/system");
( for the system partition) should work right , and in fact yes it does !!!, tried it from TWRP command line and hey presto %^$%^$^%$ FAST system

This is the code for a recovery script version

Code:
ui_print("jubei.....remove journals from all ext4 partitions");
ui_print("/dev/block/platform/msm_sdcc.1/by-name/boot       /boot       emmc");
ui_print("/dev/block/platform/msm_sdcc.1/by-name/recovery   /recovery   emmc");
ui_print("/dev/block/platform/msm_sdcc.1/by-name/misc       /misc       emmc");
ui_print("/dev/block/platform/msm_sdcc.1/by-name/system     /system     ext4");
ui_print("/dev/block/platform/msm_sdcc.1/by-name/userdata   /data       ext4");
ui_print("/dev/block/platform/msm_sdcc.1/by-name/cache      /cache      ext4");
ui_print("/dev/block/platform/msm_sdcc.1/by-name/sbl1       /sbl1       emmc");
ui_print("/dev/block/platform/msm_sdcc.1/by-name/sbl2       /sbl2       emmc");
ui_print("/dev/block/platform/msm_sdcc.1/by-name/sbl3       /sbl3       emmc");
ui_print("/dev/block/platform/msm_sdcc.1/by-name/tz         /tz         emmc");
ui_print("/dev/block/platform/msm_sdcc.1/by-name/rpm        /rpm        emmc");
ui_print("/dev/block/platform/msm_sdcc.1/by-name/aboot      /aboot      emmc");
ui_print("/dev/block/platform/msm_sdcc.1/by-name/sbl2b      /sbl2b      emmc");
ui_print("/dev/block/platform/msm_sdcc.1/by-name/sbl3b      /sbl3b      emmc");
ui_print("/dev/block/platform/msm_sdcc.1/by-name/tzb        /tzb        emmc");
ui_print("/dev/block/platform/msm_sdcc.1/by-name/rpmb       /rpmb       emmc");
ui_print("/dev/block/platform/msm_sdcc.1/by-name/abootb     /abootb     emmc");
ui_print("");
ui_print("");
ifelse(is_mounted("/system") == "/system", unmount("/system"));
ifelse(is_mounted("/cache") == "/cache", unmount("/cache"));
ifelse(is_mounted("/data") == "/data", unmount("/data"));
ui_print("converting partitions to ext4 minus journal");
ui_print(" ");
ui_print("e2fsck system partition");
ui_print(" ");
run_program("/sbin/e2fsck", "-p", "/dev/block/platform/msm_sdcc.1/by-name/system");
ui_print("e2fsck data partition");
ui_print(" ");
run_program("/sbin/e2fsck", "-p", "/dev/block/platform/msm_sdcc.1/by-name/userdata");
ui_print("e2fsck cache partition");
ui_print(" ");
run_program("/sbin/e2fsck", "-p", "/dev/block/platform/msm_sdcc.1/by-name/cache");
ui_print("now lets rub out those nasty journals");
ui_print(" ");
run_program("/sbin/tune2fs", "-O", "^has_journal", "/dev/block/platform/msm_sdcc.1/by-name/userdata");
run_program("/sbin/tune2fs", "-O", "^has_journal", "/dev/block/platform/msm_sdcc.1/by-name/system");
run_program("/sbin/tune2fs", "-O", "^has_journal", "/dev/block/platform/msm_sdcc.1/by-name/cache");
ui_print("and re-fsck to clean any set bits");
ui_print(" ");
ui_print("e2fsck system partition");
ui_print(" ");
run_program("/sbin/e2fsck", "-p", "/dev/block/platform/msm_sdcc.1/by-name/system");
ui_print("e2fsck cache partition");
ui_print(" ");
run_program("/sbin/e2fsck", "-p", "/dev/block/platform/msm_sdcc.1/by-name/userdata");
ui_print("e2fsck cache partition");
ui_print(" ");
run_program("/sbin/e2fsck", "-p", "/dev/block/platform/msm_sdcc.1/by-name/cache");
ui_print("end of jubei mod ");
And i include a zip for those who like to test

there are 2 scripts, one to remove the journal from your ext4 partitions, and one to re-instate the journal, this should allow people to test their setup with each without any wiping or reformatting

Instructions.......
( tested with TWRP 2.5+ only )
Flash the bugger
DO NOT WIPE ANYTHING, after flashing, doing so will only reformat the wiped partition with a journal

There will be one update that includes a test routine to ensure journals have been erased
I am now able to extend the mod to any device that uses twrp 2.5+ and ext4, plese ask for a particular device on this thread
Thank you
Edit Please note non flo versions are not tested by me.
Edit mako version added after request
Edit hammerhead version added after request
Last edited by jubei_mitsuyoshi; 8th March 2014 at 04:28 PM.
The Following 9 Users Say Thank You to jubei_mitsuyoshi For This Useful Post: [ View ]