JFFS2 issues

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

 



Hi,

This is a very long email with lots of questions.

Summary of my system
I am working on bringing up a system that's running PPC 8313 with 32MB
of NOR flash,  512MB of NAND flash and 128MB of RAM.  We have the NOR
flash to run u-boot and NAND flash has the kernel and file system.
For the NAND flash, we are using JFFS2 for file system type.  I
initially set up just two partitions, boot and rootfs.  Our root file
system is about 50MB.

Problem1 :  It takes about 5 minutes for me to boot up the system.
Question: Does anyone have any suggestions to reduce this time?

The common response I get is that I should use YAFFS2.  I can't find a
way to program a yaffs2 image for both kernel and rootfs from uboot.
Uboot seems to think the file system type is JFFS2 and all commands
are designed with that in mind.

Problem2: After a few days of running the system while updating the
system with new releases and writing logs, we end up with a real
sluggish system.  We run out of memory and when I do a slabtop,
jffs2_refblock shows something like this:

OBJS  ACTIVE USE  OBJ SIZE SLABS OBJ/SLAB CACHE SIZE NAME
183375 183308 99% 0.25K 12225 15 48900K jffs2_refblock

When I reboot the system, I see that gcd_mtdblock10 (which is the
garbage collector for rootfs) is taking up 70% of the CPU even after
we are in the linux shell.
If I do a df at this time, it shows the usage as 62%, but then it goes
back down to 20%.  If an application starts while the usage is at 62%,
it fails due to lack of memory. Once this problem happens, it keeps
happening every time I boot even if I reboot immediately after I come
up without running any application.

Here are my questions about this.

Is there a way to figure out how fragmented the NAND flash is?
What are some JFFS2 related statistics that I can use?
Is there a way to force a defragmentation of the NAND flash? For
example, before I put a new release on there, can force a defrag to
happen?

On a different topic,  I am also trying to see if I can create
multiple partitions.  I am experimenting with 5 partitions.  /boot,
/rootfs, /var, /opt and /tmp.

I get the following errors when I do this.

cannot create /var/lock/mtab~(pid)
/dev/mtdblock9 is already mounted or is busy
/dev/mtdblock10 is already mounted or is busy
/dev/mtdblock11 is already mounted or is busy
....etc about every entry in the fstab.

All partitions seem to be mounted in that all my files are there but
the mount command doesn't show any partitions.  I want to know how to
fix these error messages and have mount show all the partitions.

If anyone can answer even part of these questions, I would appreciate
it very much.

Thank you
Nancy

--
To unsubscribe from this list: send an email with
"unsubscribe kernelnewbies" to ecartis@xxxxxxxxxxxx
Please read the FAQ at http://kernelnewbies.org/FAQ


[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux