yashsingh1/xdaforums huggingface dataset:
[Galaxy S I9000 Android Development] matticala:
btrfs feedback

I've inspected process activity with Terminal Emulator (ps -A) and noticed quite a lot of processes launched for btrfs filesystem. I guess it can impact battery drain with many files in Data.

JFS has just three monitors, reiser has 2 instead, while btrfs launches like 8 :confused:. I will probably go back to reiserFS for Data partition to check how much btrfs raises battery usage.

From 1.4 to 1.5 release potential uptime lowered quite a lot, it could be btrfs...

... test in progress :)
[Galaxy S I9000 Android Development] renaud:
1.6 is out, mainly with bugfixes, I would suggest to upgrade to this one as the bugfixes are important.
[Galaxy S I9000 Android Development] matticala:
Updated and tried different partition setup... changing from JFS (system and dbdata) to ReiserFS stopped the heavy battery drain :O
[Galaxy S I9000 Android Development] renaud:
I am also updating btrfs drivers
[Galaxy S I9000 Android Development] ragin:
What about the clock issue, has it been adressed? Thanks.
[Galaxy S I9000 Android Development] renaud:
Since this only happens with system in jfs, and there is a workaround, it is not really in my high priority list.
[Galaxy S I9000 Android Development] ragin:
I found it to be present when I tried your Bleeding edge.
[Galaxy S I9000 Android Development] chainer1:
I installed the new kernel version (not the bleeding edge one)and now i have this nasty bug when i start quickpic and begin to browse a little in it the phone has a total crash. I reproduced that behaviour for three times. The first two times quickpic was installed in system (jfs) the last time it was installed in data(btrfs) so its probably not filesystem related. Btw it worked fine on fugumod 1.5. Maybe its just me but please can anyone try to reproduce this. Thanks.
[Galaxy S I9000 Android Development] renaud:
Between 1.5 and 1.6, no major changes have been made which would explain this. Mainly, this has been a bugfix/cleaning release. This may be hard to reproduce.

EDIT: I would suggest to uninstalling quickpic, check all the FS for possible remains of it, if any, remove them and test again.
[Galaxy S I9000 Android Development] renaud:
1.7 is out with voodoo sound v5, some btrfs improvements, and some reliability fixes
[Galaxy S I9000 Android Development] chainer1:
hmm. I tried converting all to jfs, then converting all to reiserfs. Delete Data and DBData Entries for Quickpic. Nothing helped. I start the app open a folder with about 20 fotos, swipe up and down a few times. the screen just freezes and gets a bight brighter, the colours are a bit distorted...

I tried to revert fugutweaks but that isn't it either.

I don't know what causes this...its driving me nuts -.-.

After changing back to superoptimized kernel it didn't crash anymore...

I think I will flash again with 1.7 of your kernel and giving it another shot.

Your kernel is awesome btw. Its smooth and reactive like superoptimized and I love the new filesystems it offers. I really don't want to go back from your kernel ;)

-----

edit: tried with 1.7 now. Quickpic crashes again....:( ...I'm on insanity 0.6.7 (JS3-Base)
[Galaxy S I9000 Android Development] matticala:
How do I change mount options to enable btrfs compress? modifying /etc/fstab doesn't work :)

EDIT: looking at init.rc compress should be active already, although "# mount" doesn't list the flag
[Galaxy S I9000 Android Development] renaud:
You cannot at the moment, that's a feature I will add later.
[Galaxy S I9000 Android Development] renaud:
I just installed quickpic right now to test and it's working fine for me (opening a folder with 52 pictures ). Which amount of pictures do you have?

Edit: I am running bleeding edge.
[Galaxy S I9000 Android Development] chainer1:
Many thanks for looking into my problem

Well I have exactly 24 pictures in the folder. It doesn't crash at the second, i have to open the folder with the pictures in quickpic swipe to the top and to the bottom for about 5-10times sometimes less or more and then the phone suddenly freezes.

It is really weird....:confused:

Is there something like a crashlog where I could look ?
[Galaxy S I9000 Android Development] renaud:
I just tried this up and down swipe (quickpic looks nicer than stock gallery btw) and I didn't see any freeze or lag of some kind.

Maybe you could send me some logcat of when it crashes (and 50 lines before crash).

Perhaps you can test bleeding edge version too as it's the one I am running.
[Galaxy S I9000 Android Development] Bo$s:
Tried your kernel and I have noticed one problem. I'm using changed font (with Eurofurence flipfont, in system settings) and on every reboot my font revert to default. I don't have language/timezone problems. Tried it on different lagfix configurations and probably it isn't connected with used file system.
[Galaxy S I9000 Android Development] chainer1:
Yes Quickpic is really nice, thats why I want to get it working, the stock gallery is a real pain in the ass. I tried the bleeding edge now, quickpic crashed again. What is the best way to dump the locatfile. Booting into recoverymode after the crash and get the file somehow via adb??
[Galaxy S I9000 Android Development] renaud:
no, you need to run "adb logcat", then execute the problematic application and it will print the logs in live.
[Galaxy S I9000 Android Development] chainer1:
Ok, I'll try that tomorrow. Thanks
[Galaxy S I9000 Android Development] GalGavu:
For me no problems with quick pic :)
[Galaxy S I9000 Android Development] renaud:
Bleeding edge now supports nilfs2
[Galaxy S I9000 Android Development] renaud:
Version 1.8 is out, it adds nilfs2 support and modules synced with js8
[Galaxy S I9000 Android Development] Andro1d:
Hi nikademus,

looks nice :)

Q: What iptables modules you included into your zImage (i didnt found a config.gz) ?

Cause: I have some troubles using iptables (v 1.3.7) and modules.

Im getting several errors.

Not only in your kernel, but also on Hardcore ones... so, it could be possible that this problem is iptables/busybox based.
[Galaxy S I9000 Android Development] renaud:
iptables works fine, as long as you don't use droidwall, which ships with his own iptables version.
[Galaxy S I9000 Android Development] Andro1d:
Hmmm...

# which iptables
/system/bin/iptables
# iptables -h
modprobe: chdir(2.6.32.9): No such file or directory
iptables v1.3.7

...

For me it looks like iptables (stock) wants to load smthing which isnt there.

And no, it's not iptables_n1 which is in /data/data/com.googlecode.droidwall.free/cache/iptables_n1.

At least it doesnt look like oO
[Galaxy S I9000 Android Development] renaud:
Yes, it tries to load the iptables module, but it's already inside the kernel, that doesn't prevent iptables from working perfectly well.
[Galaxy S I9000 Android Development] Andro1d:
Ah, k, makes sense :D

Btw, do you plan to optimize ext4 mount params ?

Current mounts:

/system: nodiratime,relatime

/data: nodiratime,relatime,barrier=1,data=ordered

/cache: nodiratime,relatime,barrier=0,data=writeback

/dbdata: nodiratime,relatime,barrier=0,data=ordered

Q: Why not ?

noatime instead of relatime << atimes are not relevant for the security / and or the apps imho

for /cache (nobh,noauto_da_alloc)

Then we still have "secure" mount options, but slightly less I/O and better perf on cache :)
[Galaxy S I9000 Android Development] renaud:
relatime gives a more secure mount. I was using noatime before, but it gave some problems. Maybe on ext4 it is safe enough

In fact, if you look in /init.rc, you will that I set some mount options, but they are not all correctly taken by android
[Galaxy S I9000 Android Development] renaud:
I changed some mount options for ext* filesystems in bleeding edge
[Galaxy S I9000 Android Development] Andro1d:
We need a nikademusFS :D Would be lightning fast :)

Btw Quadrant seems to hunt for db/dbdata sqlite performance.

I had all FS on ext4, Quadrant @ 950

Now I switched /dbdata and /data to JFS and I'm getting 1580 now.

JFS is nice for SQLite IO (and on dbdata and data are a lot of sqlite db's)

JFS: for DB's (SQLite) --> /data & /dbdata

BTRFS: File Creation (R/W) --> /cache

EXT4: Stability of core OS --> /system

sadly i cant convert /cache to btrfs using fs.convert oO *humm*...

Overall, rlly nice work nikademus
[Galaxy S I9000 Android Development] renaud:
Quadrant score doesn't mean much for snapiness.

For btrfs, you need at least 256Mb.
[Galaxy S I9000 Android Development] matticala:
Testing this configuration:

System and dbdata > jfs

cache and data > nilfs2

until now is the fastest sgs ever tried. It's sooo blazing fast! Just battery drain remains to be seen :)

Donation incoming, you really deserve it!

EDIT: I chose the fs configuration following this benchmark
[Galaxy S I9000 Android Development] Andro1d:
Haha i took the same ref :)

Same ref, other conclusions :)

btw: /data/data has a lot of sqlite db's in it. And in sqlite its a matter of seekperf. Dont get the point why you spilt /dbdata from /data in terms of fs :)
[Galaxy S I9000 Android Development] matticala:
Because data also stores .apk which can be summarized as random read/write 1mb files. JFS and nilfs2 have a small difference with sqlite transactions, but the

random write

(which involves xml data files and .apk from market) clearly advantages the second; for this, I considered nil a better compromise for data partition ;)
[Galaxy S I9000 Android Development] dupel:
Now look at your free space. Thee was already kernel with nilfs2 support and it was a disaster.
[Galaxy S I9000 Android Development] chainer1:
Ok I debugged my quickpic crash with logcat but there is nothing fishy in the log. phone freezes and nothing errorlike is written....

Well I'll give up :D
[Galaxy S I9000 Android Development] matticala:
Filesystem 1K-blocks Used Available Use % Mounted on
/dev/block/mmcblk0p2 1965564 382460 1543680 20 /data

There are like 120mb of B-Tree inodes. I know nilfs has the issue of writing around the 50% more for inode datas, but I don't really care about free space for apps until performances are so good ;)

One more thing by the way, Nikademus doesn't release disasters to the public ;)
[Galaxy S I9000 Android Development] matticala:
nilfs2 bug

<deleted...>
[Galaxy S I9000 Android Development] renaud:
1.9 is out with ext2/3 support and some changes in mount options to get more performance.
[Galaxy S I9000 Android Development] renaud:
the nilfs2 space "bug" is under research
[Galaxy S I9000 Android Development] ock:
I had to switch kernels last week as my phone failed to boot after I left it charging when powered off.

After testing out CM7 and MIUI, went back to Froyo and had the chance to try your kernel again. Boot times are noticeably faster compared to the last version I tried last week, many thanks for these unique features :)
[Galaxy S I9000 Android Development] dupel:
Last kernel had the "bug" that it was writing continuouly snapshots. Because of that once it ran out of space to write it started deleting old snapshots and speed drastically reduced.
[Galaxy S I9000 Android Development] matticala:
Indeed, I heard about it. Nikademus is using the updated driver though, since battery is more than fine :)

By the way, where I wrote "deleted" I was reporting a very strange behaviour... Doc's Kitchen states that with Fugu Kernel we need to use "No wipe" version and, indeed, it's impossible to wipe data from either cwm or settings -> privacy menu. Why so?

Another weird thing it happened is that I couldn't install anything from market after updating to 1.8. Like if it coulnd't write on Data partition. I had to make an Odin repartition but now is fine. The problem was recurring with nilfs2, but persisted even after jfs conversion

It is happening again, after 1.9 update. Market does not download/install application. Download starts and it is immediately interrupted with a silent error (Samsung Apps works well instead) and dmseg reports many of the following error:

xrun: occurred buffer xrun[0]

There is an error in SQL commands execution buffer after updating the kernel. Could it be related to nilfs?
[Galaxy S I9000 Android Development] renaud:
I had this after installing doc 9.9.5, I reverted to old market and everything was fine again.
[Galaxy S I9000 Android Development] matticala:
Oh. Did you report this issue? It works like a charm now but I had to reboot, otherwise it had the same issue. Strange. I'm happy to know it's not filesystem related anyway ;)
[Galaxy S I9000 Android Development] AlexForTomorrow:
I don't know why, but I tried to flash your kernel and after booting it gives me no signal.

first time I used sgs kernel flasher, then I tried to fix the problem by reflashing with odin but nothing. it was like in airplane mode: no damn signal.

anyway, I'm using a serendipity 6.2 rom, so this might be the problem...

any suggestions?
[Galaxy S I9000 Android Development] matticala:
@Nikademus: it happened again and persisted even after reverting market. It's not about data but about cache partition and nilfs2. Formatting cache to jfs made Market to work again, without any sort of clear.

Perhaps, nilfs2 exhausted cache space with inodes and snapshots.

UPDATE: it is definitely a matter of space. nilfs can't be used with cache partition since it requires way too much space for snapshots and inode tree
[Galaxy S I9000 Android Development] renaud:
In bleeding edge, nilfs_cleanerd is in /sbin. It should be run on every partition running nilfs using "/sbin/nilfs_cleanerd $DEVICE". Currently it must run as root from a script, but it should be added in fuguapp.
[Galaxy S I9000 Android Development] renaud:
Could you get a root shell on the device (ie by using adb or connectbot) and issue a 'ls -la /efs/' ?
[Galaxy S I9000 Android Development] AlexForTomorrow:
ah well that means i have to reflash the kernel again, right? :D

ok, I'll give it a try this evening and then I'll post the results.

anyway, what does that command mean?
[Galaxy S I9000 Android Development] renaud:
Thanks. It will check if you have /efs on your phone. As it is copied in /dbdata on fugumod. Isn't serendipity for captivate only?
[Galaxy S I9000 Android Development] AlexForTomorrow:
nope now it's for the I9000 international too. "porting" succesfull! :D

anyway, I'll be switching to a darky 9.4 so I don't know if it will still be possible to flash your kernel. I'll ask darky, then I'll report if it works :D
[Galaxy S I9000 Android Development] renaud:
My kernel works fine on Darky rom, however it's not supported by Darky himself.
[Galaxy S I9000 Android Development] AlexForTomorrow:
ooh that's awesome. that's ok, I'll tell you how it is doing with darky as soon as i flash it :)
[Galaxy S I9000 Android Development] renaud:
1.10 is out with voodoo sound v6
[Galaxy S I9000 Android Development] Andro1d:
Have the same issue. But i can use Maps on btrfs (/data). I think the problem relies in the handling of fsync on both fs's. Seems that btrfs wants that the app is doing clean sync's while ext4 does syncs itself.

I've managed to start Maps like this:

Preferences->Manage Apps->Maps->Stop

Preferences->Manage Apps->Maps->Delete Data

Restart Maps

No need to reboot or wipe ;)

As long as u dont kill Maps manually, or you reboot, Maps seems to work quite ok :)

I'll investigate this "issue", cause i wanna stay on btrfs @ data :)
[Galaxy S I9000 Android Development] zurchpet:
I solved it by uninstalling Maps with Titanium Backup and reinstalled it from Market. No more FCs.
[Galaxy S I9000 Android Development] Andro1d:
Did the same. Worked nice some for time... began crashing after some hours... straaaange :(
[Galaxy S I9000 Android Development] drowne:
any feedback with nilfs2?
[Galaxy S I9000 Android Development] renaud:
At the moment it is not really safe, except on /system and /data
[Galaxy S I9000 Android Development] Andro1d:
So... Benchmark time.

I did a benchmark (TAP Benchmark) on /data for JFS, NILFS2, EXT3/4, BTRFS, REISERFS

-- Conclusions --

DB I/O (read/write/delete):

1. REISERFS(nolog) OR JFS(nointegrity)

3. EXT4(barrier=0)[/B]

from the point of data security barrier=0 @ EXT4 provides the best result. But, JFS/REISER are 200% faster in terms of DB Inserts ! So if you dont care bout dataloss, use reiserfs(nolog) or jfs(nointegrity) on dbdata =)

File reads/writes:

1. BTRFS(nodatasum,nodatacow)

2. EXT3(data=writeback)

3. EXT4(barrier=0)

4. EXT4(barrier=1)

5. REISERFS(nolog)

Best result with btrfs w/o checksumming & copyonwrite

Sidenote: NILFS2 showed a strange benchmark. The fastest while writing small files (10k) but the slowest while writing bigger files (1M)

File Stresstest (Read/Write):

1. BTRFS(nodatasum,nodatacow)

2. EXT4

More or less same result as above. BTRFS nodatasum,nodatacow roxxx =)

Overall Conclusion:

Interestingly, there is not a single FS that shows a good performance around all tasks. EXT4 is the "general" way to go imho. Not the best, but in most of the tests, near the best.

PS @ nikademus:

You have an error in your zImage (initramfs). You specified notaime instead of noatime. Maybe this is the reason why ext4 loads default values and not the ones you specified ?
[Galaxy S I9000 Android Development] renaud:
Many thanks, I didn't spot that one, it's corrected in bleeding edge
[Galaxy S I9000 Android Development] Andro1d:
Nice :D

Btw, im running ReiserFS (nolog) on /data and JFS (nointegrity) at /dbdata.

ReiserFS is slower in File I/O than EXT4/BTRFS, but sadly there are a lot of sqlite.db's on /data. And therefore Reiser is a compromise. Brings good SQLite Perf and a medium FileI/O Perf. Now i need a nandroid backup (hrrhrr :) :p )
[Galaxy S I9000 Android Development] renaud:
I should maybe add a fs.options to be able to put custom mount options for advanced users.
[Galaxy S I9000 Android Development] Andro1d:
This would be fantastic :D :)
[Galaxy S I9000 Android Development] renaud:
V2.0 is officially out, it now supports rfs and reverting to rfs as well.

This means it will not convert your filesystem by default anymore.
[Galaxy S I9000 Android Development] matticala:
I've run tests with TPA today following your post, getting different results though.

With default Fugu options, I got:

nilfs2 btrfs jfs reiserfs*
Overall 3084 3058 2575 3623 (3178)
Database 340 391 390 -- (411)
R/W 1629 1829 1604 -- (1360)
Stress 1115 838 581 -- (137)

* I forgot to write down all the particles for reiserfs, but the TOP performance setup (ext2) had 3652 Overall. Between brackets the last test ran with FuguMod 2.0, the others were ran with previous bleeding edge

The test has been run with 10 iteration for 1000ms, reiserfs has been tested even with 500ms single run time.

Running tests multiple times I got every time different results. One thing important I noticed was about reiserfs slowing a lot while receiving a SMS; perhaps, reduced CPU availability can impact significantly reiser performance. What I find quite amusing is the high score of nilfs2 under stress, however it has the drawback of halfing data partition space :|

UPDATED test (Btrfs, 10 iterations, 500ms - 1000ms execution time, FuguMod 2.0):

Overall 3891 - 3229

Database: 351 - 385

Read/Write: 2453 - 1918

Stress test: 1087 - 926

P.S. ext2 doesn't work, at least on cache. it is not mounted if partitioned that way
[Galaxy S I9000 Android Development] renaud:
bleeding edge now contains a fs.options, see first post
[Galaxy S I9000 Android Development] Andro1d:
Humm for me it looks the same. I just did another conclusion out of the values :)

Also in ur values, reiserfs performs best in DB I/O and BTRFS best in File I/O.

The only strange this is the btrfs DB value. I had 23 and 24 DB Writes with btrfs. This is more than bad, and can't give such a high score like u wrote oO

I'm just not 100% sure if reiserfs has impact on several other things. Experiencing strange lags since i have reiser on oO

Hmmm but now, nikademus implemented fs.options :D Wahoo. Your a genious :o

data=writeback im comiiiiing :D:D
[Galaxy S I9000 Android Development] Rixsta:
thought Id drop in an say hi.....great work, going to try your kernel :)
[Galaxy S I9000 Android Development] renaud:
Good catch, corrected in current bleeding.
[Galaxy S I9000 Android Development] matticala:
Andro1d I'm doubting about TAP reliability... Yesterday ext4 gave me 4096 score overall, with a beastlike 2600 on R/W. Today was down to 3096 overall. Results are so random... I'm stuck to jfs on all but data with btrfs.
[Galaxy S I9000 Android Development] matticala:
Forgot: reiserfs has some spikes because it uses up to 20% cpu time on certain operations (random read/write)
[Galaxy S I9000 Android Development] Andro1d:
WellDone. Worx now, beside of the Doublespaces...

What you're doing (afaik)

Building FS-Options like this ",Option1,Option2,Option3"

Replacing "," with " "

Resulting in " Option1 Option2 Option3" in STL9_MNT and other _MNT's.

But you're injecting them with a space before !

sed -i "s|fugu_mount_stl9|mount ${STL9_FS} /dev/block/stl9 /system nodev nodiratime ro ${STL9_MNT}|" /init.rc
--------------------------------------------------------------------------------------^

Resulting in a doublespace. Inside init.rc.

Maybe u have to use:

sed -i "s|fugu_mount_stl9|mount ${STL9_FS} /dev/block/stl9 /system nodev nodiratime ro${STL9_MNT}|" /init.rc

for all injects ;) Not only STL9

Like u did here the right way...

# Kill that stupid autoformatter
mount -t ${STL9_FS} -o rw${STL9_MNT} /dev/block/stl9 /system
^^^^^^^^^^^

Update:

Seems to be just "code-cosmetics" :) jfs nointegrity gets mounted correctly, and this has also a doublespace in front oO

Dont get the point why init.rc doesnt want to load ext4 opts..

UPDATE !! GOTIT =)

Had to manually set the default ext4 mount option to journal_data_writeback

Ref: http://xdaforums.com/showthread.php?t=819580

Now it mounts correctly =)

WAHOOOO =)

Hummm... but... ya... the only param which is correct now is data=writeback oO

Seems that ext4 doesnt look on opts in init.rc, for whatever reason... nvm, i found a solution in the link above.
[Galaxy S I9000 Android Development] renaud:
I removed the double spaces to please you, but I doubt it will make any difference.
[Galaxy S I9000 Android Development] Andro1d:
it wont make any difference... as I wrote in the last post (my edits/updates).

Ext4 gets automounted (no idea why, though...)

Anyway... nice work :)

PS: @All, fs.options is for peops who now what they're doing and who are able to recover using adb and manual mounts.
[Galaxy S I9000 Android Development] renaud:
version 2.1 is out, it adds update@reboot feature (see first post) and fs.options
[Galaxy S I9000 Android Development] sebarkh:
When using on JPK why there is a problem with Titanium Backup? Other apps "see" the root, but Titanium says there is no root access, even if you granted it with superuser app?
[Galaxy S I9000 Android Development] renaud:
I started a thread about it:

http://xdaforums.com/showthread.php?p=12423596

Please send me a logcat beginning at when you start titanium.
[Galaxy S I9000 Android Development] renaud:
This issue has been solved, see dedicated post
[Galaxy S I9000 Android Development] renaud:
2.2 is out with voodoo sound v7
[Galaxy S I9000 Android Development] kalpik:
Hi nikademus!

This kernel is looking so awesome! I'm gonne try it out soon! What FS would you recommend? :)
[Galaxy S I9000 Android Development] renaud:
Well, I run JFS everywhere, but if you look at posts from andro1d and matticala, they made some intersting tests.
[Galaxy S I9000 Android Development] renaud:
From current bleeding edge, you must have a file named /sdcard/fugumod/debug to get adbd start. It will always start as root.
[Galaxy S I9000 Android Development] renaud:
I am wondering if there are many users of this kernel who also use Tegrak overclock app?
[Galaxy S I9000 Android Development] renaud:
2.3 is out with some added security and some features to control BLN, debug mode and compcache