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

[no subject]

A jffs2 internals question for the masses:

Besides the 128Kb max kmalloc issue, is there any restriction on the size of 
an eraseblock that jffs2 can use?

I am using the slram driver with a 4Kb eraseblock size to create a 4Mb ram 
device.  I mount jffs2 on top of this and everything appears to work until 
the filesystem becomes full.  I try removing a file and the remove command 
returns "rm: cannot unlink `foo' : No space left on device".  df reports 
100% usage.

Also, looking at the output from having CONFIG_JFFS2_FS_DEBUG=1, it appears 
that garbage collection is constantly running and picking blocks from the 
clean list because there are none on the dirty list.  Eventually even this 
fails and the garbage collector loops and complains repeatedly:

"Argh. No free space left for GC.  nr_erasing_blocks is 0.  nr_free_blocks 
is 0. (erasingempty: yes, erasependingempty: yes)
jffs2_reserve_space_gc of 196 bytes for garbage_collect_dnode failed: -28"

The thread_should_wake is returning 1 because the dirty size is > an 
eraseblock, so it loops forever.

If I switch the eraseblock size in slram back to 64Kb, this problem does not 
appear.  So again, are there any restricitons on how small of an eraseblock 
size you can use, or is this something that hasn't ever really been an 


Get a FREE computer virus scan online from McAfee. 

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