Originally Posted by Rehaan
From what little i know, samsung has piggy-backed some sort of journaling on top of the RFS system. This causes a lot of the slow-down as well.
About your closing point on "lag problem having roots elsewhere" -- im not sure i agree. A major part of the slow is caused by the I/Os in my opinion, and has been proven by OCLF and voodoo. Have you tried either? I suggest you give voodoo a whirl. You can get rid of it in a month when 2.2 comes out!
Well it is not the case let me assure you
Some Q&A from my side hope this clarifies
Q1. Why journaling is required ?
A: Because an embedded device can power off anytime ( battery pulled out) a non journal FS need to be unmounted first else there is a chance of corruption. EXT2 is not a jornaling file system and thus if used directly can cause a corrupted flash in once a blue moon scenario when phone battery conks off . EXT3 supports jornaling but that is full jornaling so
quite heavy for a mobile phone so something in between is required.
A non-journaling FS if not unmounted can resulted in corrupted File System , So though it may be faster no manufacturer worth it's salt will provide such a solution.
Q2 : If Voodoo is able to mount EXT2 on it's patch on SD card why not Samsung ?
Ans : Do not confuse the packaged Flash memory with Raw Flash.
Linux file systems such as EXT2 ,EXT3 and EXT4 and Microsoft NTFS are for block devices not for Flash memory.
All the packaged flash memory such as USB stick , SD, SDHC, SDXC, MMC
CF have an embedded software running in the controller , If you dismantle an SD/MMC controller you will see a micro-controller and it runs code for FTL which converts the Raw flash in SD/MMC to a block device.
A non-jornaled EXT2 on SD card for installing application can serve as a quick fix by some enthusiast because there is no implied warrenty that things wont go wrong neither the people who install expect any such thing but a manufacturer can not offer such a solution.
To read more on differences between Flash memory and block device read here. Memory Technology Device (MTD) Subsystem for Linux.
In case someone enable jornaling ( EXT3) to prevent corruption and increase robustness I am not sure how much improvement thy will observe over RFS.
Q3 : What are the other possible solutions for internal flash memory if not RFS ?
Ans : There are many including open source solutions such as UBIFS , YFFS2 etc , but if bench marked they are not necessarily faster and better then RFS.
There is no comparison between FS designed for block device such as EXT2 , EXT3, EXT4 and NTFS with these they are different beasts.
Q4: So how exactly these File systems meant for internal Raw flash memory different from FTL ( Flash translation layer) which micro-controller of SD/MMC/CF and USB mass storage implement in firmware.
Ans : Whatever is done by FTL using a powerful ARM processor in micro-controller for SD /MMC / CF / USB mass storage is to be provided in the MTD layer of internal raw flash memory drivers so it is implemented in FS software.
The UBIFS is open source and this page can give a lot of information to enthusiasts. Memory Technology Device (MTD) Subsystem for Linux.
Q5 : I read RFS is just VFAT + some jornaling is that all.
Ans : Not exactly if you see open Source UBIFS and YFFS2 there is lot more in MTD device. You need the algorithms so that life of flash memory is prolonged for instance.
Q6: So if SD/MMC interface allows everything why these folks design hardware with something called raw flash and not use SD/MMC internally.
Ans : Many reasons , First code in a mobile phone runs from flash.
Here the code means the full platform code including boot loader and not just the application code which is loaded once the operating system is booted.
Loading application is relatively easy because OS and File System is up.
If you remember that before FroYo Android put this semi-artifical restriction by design that applciations can not be loaded from externally mounted file system and that is the reason that in Eclairs 2.1 the apps are running from internal filesystem.
I cited this as a big negative of Android as compared to rival platforms on another thread but Android fanboys were pooh-poohing that,
Secondly an extra controller in between means lesser battery ( most critical on mobile)
Q6: OK with all this theory but Voodoo fix is giving me nice performance ?
Ans : So install and be happy , It has removed certain features and some amount of flash from your system as well but if you are happy who is anyone to preach.
But in case your file system is going to store a data or app which is worth few K $ don't do it for reason mentioned above.
On a PC EXT2 is perfectly fine as you are supposed to unmount the partition before you pull out the USB mass storage to prevent the corruption and also generally you have a UPS for PC but on mobile , battery going off is a general scenario and application or even worse the phone binary being corrupted is something which no one can afford.
Voodoo solution in no way affects the phone binary as it is not altering the FS which platform code uses but EXT2 for application make it ( application code + data) prone to corruption. It may look small to use but a big issue to introduce this as a permanent fix.
Q7: If RFS is not really an issue what is the issue ?
Ans : Sorry I can not spell out here on this open forum nor can provide a fix or solution.
Q8: Few more questions.
Ans : Understanding FTL , MTD and file-systems in general can help answer them.
This is the best from my side I could do as it is like swimming against the tide.