[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: What on Earth is JFFS2 GC doing?



Enjoy!

What does this " jffs2_free_all_node_refs" do anyway and why can't it do it
faster :)

Vipin


<SNIP>

 131.885000 ms   31.885000 ms
 133.428000 ms   33.428000 ms
CHIP_ERASE:Erasing_at_address: 0x580000
 9332.556000 ms   9232.556000 ms!<Profile saved in
file:JitterTest.profilesnap-0>
 649.158000 ms   549.158000 ms
 133.018000 ms   33.018000 ms

<SNIP>

 103.126000 ms   3.126000 ms
CHIP_ERASE:Erasing_at_address: 0x540000
 13338.577000 ms   13238.577000 ms!<Profile saved in
file:JitterTest.profilesnap-1>
 636.247000 ms   536.247000 ms
 135.188000 ms   35.188000 ms

<SNIP>

/dev/mtdblock1            8192      6248      1944  76% /mnt/jffs1
 189.974000 ms   89.974000 ms
 180.068000 ms   80.068000 ms
CHIP_ERASE:Erasing_at_address: 0x4c0000
 13770.071000 ms   13670.071000 ms!<Profile saved in
file:JitterTest.profilesnap-2>
 660.851000 ms   560.851000 ms
 394.060000 ms   294.060000 ms

<SNIP>

 150.000000 ms   50.000000 ms
 191.685000 ms   91.685000 ms
CHIP_ERASE:Erasing_at_address: 0x480000
 14713.454000 ms   14613.454000 ms!<Profile saved in
file:JitterTest.profilesnap-3>
 634.884000 ms   534.884000 ms
 129.977000 ms   29.977000 ms
...
...

[root@xxxxxxx.profilesnap-0 -m
/boot/linux-2.4.1-JFFS2.System.map
     4 startup_32                                 0.0127
     1 printk                                     0.0024
     1 get_hash_table                             0.0063
     1 create_buffers                             0.0022
     1 write_profile                              0.0208
   170 jffs2_free_all_node_refs                   0.7083
     2 __generic_copy_to_user                     0.0312
     2 __generic_copy_from_user                   0.0312
   182 total                                      0.0002
[root@elan jittertest]#
[root@elan jittertest]#
[root@xxxxxxx.profilesnap-1 -m
/boot/linux-2.4.1-JFFS2.System.map
     4 startup_32                                 0.0127
     1 printk                                     0.0024
     1 change_protection                          0.0026
     2 write_profile                              0.0417
   215 jffs2_free_all_node_refs                   0.8958
     2 __generic_copy_to_user                     0.0312
     3 __generic_copy_from_user                   0.0469
   228 total                                      0.0002
[root@xxxxxxx.profilesnap-2 -m
/boot/linux-2.4.1-JFFS2.System.map
     4 startup_32                                 0.0127
     7 printk                                     0.0168
     1 kfree                                      0.0048
     1 write_profile                              0.0208
     1 ext2_get_block                             0.0008
   200 jffs2_free_all_node_refs                   0.8333
     1 __generic_copy_to_user                     0.0156
   215 total                                      0.0002
[root@xxxxxxx.profilesnap-3 -m
/boot/linux-2.4.1-JFFS2.System.map
     4 startup_32                                 0.0127
     1 printk                                     0.0024
     1 write_profile                              0.0208
     1 ext2_block_to_path                         0.0037
     2 ext2_get_block                             0.0015
   223 jffs2_free_all_node_refs                   0.9292
     3 __generic_copy_from_user                   0.0469
   235 total                                      0.0002
[root@elan jittertest]#







David Woodhouse wrote:

> vipin.malik@xxxxxxx.com said:
> >  I'm running 2.4.1 Should I upgrade to 2.4.5?
>
> Nah, I don't expect the VM to be any less broken :)
>
> > Any place I can read up on doing this? Never "build in profiling"
> > before :)
>
> Boot with 'profile=2' on the command line. Each time you complete a write:
>         1. If it took more than 30 seconds, take a copy of /proc/profile
>            to somewhere else - preferably not on the JFFS2 :)
>         2. Reset the stats by writing something (anything) to /proc/profile.
>
> Once you've got one or two snapshots of the profile data during the
> offending writes, use readprofile (part of the util-linux package) to
> interpret it.
>
> > Thanks for your analysis. It sounded quite impressive :)
>
> Heh. Well, if it's not bollocks it might be. :) Let's look at the profile
> data.
>
> --
> dwmw2


To unsubscribe from this list: send the line "unsubscribe jffs-dev" in
the body of a message to majordomo@xxxxxxx.com