[Sony Ericsson Xperia Mini, Mini Pro, Xperia Pro, A] knzo:
My past devices always had ext3 native filesystem (eMMc devices), instead of XPERIA's yaffs2 (MTD devices). I usually upgraded these to ext4, removed journalism and with proper mount flags I have found its I/O performance much better than yaffs2 or anything else.

However, in MTD as far as I know there's no such way to format it to ext4 but there's a way around: move applications, data and dalvik-cache to a partition in microSD card called /sd-ext and have it formatted as ext4. Like for the patched libsqlite.so, a higher I/O performance equals to gains in overall smoothness.

Currently working for:

CyanogenMOD 7 (lastly tested with FXP045) *

* even though it's possible in theory for SEMC ROM I will not describe it here

Unfortunately there seems to be no official support for /sd-ext and CWM recovery on CM doesn't have the option to partition the sdcard so we have to find another way to create the /sd-ext partition and force the mount.

Requirements:

Mugetsu package already flashed through CWM (it has essential binaries)

MicroSD card of, at least, class 6 (higher the class, better the performance)

S2E application by Oleg Krikun which can be downloaded from the market

Terminal application (already included on CM but can be downloaded from the market) or ADB

Make sure to backup your microSD card contents as it will be fully wiped.

Instructions:

Navigate to settings > storage and unmount the microSD.

Open terminal/ADB shell and run these commands:

su (allow superuser access so the symbol turns # if it isn't already)

parted /dev/block/mmcblk0

print

Take note of the size of microSD card (in my case is 7937 MB), now remove the existing partitions:

rm 1

[Optional]rm 2 (remove n partitions until when you run the print command you won't have any)

Now we create the partitions. Let's go with a 512 MB /sd-ext and the rest for storage (FAT32). Now you'll need to write that (total space - 512 MB) - in my case 7425:

mkpartfs primary fat32 0 7425

mkpartfs primary ext2 7425 7937

Remember to change these values according to your own microSD card storage capacity; if you mess up, go to point 6 and repeat.

Now, we upgrade ext2 to ext3 and then to ext4, but first, exit parted with:

quit

Now back on to terminal/adb shell, run these commands to force ext3 and ext4 upgrade:

mount -o remount,rw /system

echo "" > /system/etc/mtab

tune2fs -j /dev/block/mmcblk0p2

tune2fs -O extents,uninit_bg,dir_index /dev/block/mmcblk0p2

e2fsck -fpDC0 /dev/block/mmcblk0p2

The crucial part now, we need to force the mount of /sd-ext so S2E can recognize it and take it from there:

mount -t ext4 /dev/block/mmcblk0p2 /sd-ext

After this open S2E and choose to move everything to the microSD card. You may need to enable advanced menu in S2E settings in order to be able to move data (reboot was required in my case); also

make sure

to enable "mount sd-ext as ext4 without journaling" and "set read buffer". If you run into problems with S2E recognizing the /sd-ext (everything is disabled) you need to mount it with the command above. You can check if it's mounted with the following command: "mount".

This way your applications as well as application data will be moved to /sd-ext, thus improving overall snappiness through a greater I/O performance. If on the opposite, you notice any sluggishness is because your microSD card isn't fast enough (slower than yaffs2). I recommend microSD cards who bench at least 8 MB on write test in the SDtools application.

Every time you plug and enable USB connection you'll also see that the new partition gets mounted and can be accessed.