Skip to contentSkip to conversation

Mounting large JFFS2 causes other process to stop running!

DISCUSSION Benny Chen 3 participants 5 messages Sep 5, 2005 – Sep 6, 2005 1 message not in the archive Memory technology devices (MTD)

lore
Share & tools
lore

Benny Chen

author
#0 lore raw

Hi there,
I have this problem, where when I mount a large JFFS2 partition (5M), nothing else seems to be running. The jffs2 routines seems to have the processor all for itself.

I did a test by running 'top' and changed it's priority to -18 and then mount the jffs2 partition. Even with -18 priority 'top' stops reporting for the duration of the mount.

I am aware that JFFS2 takes a long time to mount large partitions. But to have no process running during the mount duration is a little funny.

Hope someone can help.

Regards,
Benny Chen

#1 lore raw
Quoted 4 lines · Benny Chen

Hi there,
I have this problem, where when I mount a large JFFS2 partition (5M), nothing else seems to be running. The jffs2 routines seems to have the processor all for itself.

What version of mtd/kernel are you using and on what hardware?

Quoted 2 lines

I am aware that JFFS2 takes a long time to mount large partitions. But to have no process running during the mount duration is a little funny.

This sounds indeed funny.... almost tragic.
I have seen several minute-long stalls due to either mounting or GC, but all processes that are not dependant on that partition keep running nicely. The only processes that suffer from such a thing are those that want to access the partition immediately, so mounting the root partition in rw-mode for example, is something to avoid because any given day GC can kick in right after mount, and then booting up can take veeery looong.

Greetings,

Signature · 2 lines
David Jander
Protonic Holland.

A message that is not in the archive (sent off-list or not yet received): [email protected]

#3 lore raw
Quoted 4 lines · Leon Zhang

Hi. there.
I confirm this bug.
My kernel is linux-2.4.29-vrs1-pxa1-intc4-col1. and my board CPU is PXA27x, and the flash is on board flash.

I can't make up the MTD version out of your kernel version. Would it be the last CVS for 2.4.x from March 2005, or older?

Quoted 3 lines

I am burned a minimum jffs2 rooffs. about 2M, only a busybox in it. But, if a burned a 10M size rootfs. The console respone slowly first, and after a while, the console will respone nonthing.

Can you turn debug-level to 1 in the jffs2 (and mtd) driver and post (relevant parts of) console output here? I'm not sure if I can help, but MTD developers might want to see what the kernel is busy with for so long.
I personally want to know if it has any relation with the architecture you are running on. I have had problems in the past with 2.4.x on PowerPC and older versions of MTD. Since I changed to CVS-march2005 I have not had any trouble, but I want to know more, and I need to be as sure as possible that I will not have any more trouble. The problem is, this kernel version is not officially supported anymore by mtd developers, so we are a little bit left out in the cold if there is trouble.

Best regards,

Signature · 2 lines
David Jander
Protonic Holland.
author
#4 lore raw

Hi David,
Thanks for replying.

Quoted 2 lines

I can't make up the MTD version out of your kernel version. Would it be the last CVS for 2.4.x from March 2005, or older?

Yap, that is right. My mtd is quite old it is packaged with linux-2.4.21 kernel, so I checked the dates it is about 25/07/2002. I guess mtd-linux is not supporting 2.4.x anymore. We will probably have to cop this penalty until we upgrade our kernel.

Can you turn debug-level to 1 in the jffs2 (and mtd) driver and post (relevant

Quoted 2 lines

parts of) console output here? I'm not sure if I can help, but MTD developers might want to see what the kernel is busy with for so long.

Below are sniplets of the jffs2 debug level 1 message. It loops through the jffs2_scan_inode.node() for majority of the time. This is also when nothing else is running on the cpu.

Node is ino #2, version 43. Range 0x29000-0x2a000
jffs2_scan_inode_node(): Node at 0x0002ab80
Node is ino #2, version 44. Range 0x2a000-0x2b000
jffs2_scan_inode_node(): Node at 0x0002bbc4
Node is ino #2, version 45. Range 0x2b000-0x2c000
jffs2_scan_inode_node(): Node at 0x0002cc08
Node is ino #2, version 46. Range 0x2c000-0x2d000

Regards,
Benny

Quoted 25 lines · David Jander
Quoted 4 lines · Leon Zhang

Hi. there.
I confirm this bug.
My kernel is linux-2.4.29-vrs1-pxa1-intc4-col1. and my board CPU is PXA27x, and the flash is on board flash.

I can't make up the MTD version out of your kernel version. Would it be the last CVS for 2.4.x from March 2005, or older?

Quoted 3 lines

I am burned a minimum jffs2 rooffs. about 2M, only a busybox in it. But, if a burned a 10M size rootfs. The console respone slowly first, and after a while, the console will respone nonthing.

Can you turn debug-level to 1 in the jffs2 (and mtd) driver and post (relevant parts of) console output here? I'm not sure if I can help, but MTD developers might want to see what the kernel is busy with for so long.
I personally want to know if it has any relation with the architecture you are running on. I have had problems in the past with 2.4.x on PowerPC and older versions of MTD. Since I changed to CVS-march2005 I have not had any trouble, but I want to know more, and I need to be as sure as possible that I will not have any more trouble. The problem is, this kernel version is not officially supported anymore by mtd developers, so we are a little bit left out in the cold if there is trouble.

Best regards,

#5 lore raw
Quoted 4 lines · Benny Chen

Yap, that is right. My mtd is quite old it is packaged with linux-2.4.21 kernel, so I checked the dates it is about 25/07/2002. I guess mtd-linux is not supporting 2.4.x anymore. We will probably have to cop this penalty until we upgrade our kernel.

If this is still a real problem in 2.4.31, then we would be interested in fixing it. The background process _should_ be correctly yielding if there are other processes to run.

Signature · 1 line
dwmw2