Re: JFFS2 issues

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

 



Thanks so much for both of your responses.  My responses are below
with more questions if you can help.

Thanks
Nancy

On 8/6/08, Nancy Isaac <nancy.isaac@xxxxxxxxx> wrote:
> On 8/6/08, David Woodhouse <dwmw2@xxxxxxxxxxxxx> wrote:
> > On Wed, 2008-08-06 at 10:58 +0200, Hinko Kocevar wrote:


> > > > 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.
> > >
> > > So NOR is practically empty? All bits, kernel and rootfs plus any
> > > additional partitions, are on NAND then?

Our nor flash has some other stuff like the board id data, some boot
info and we also keep 2 copies of uboot.  But, you are correct, a lot
of it is unused.   We can look at keeing the kernel in NOR.  I've just
never thought of doing that since NAND flash is a bit easier in terms
of updating files during system upgrade.  It doesn't look like the
kernel boot takes much time, most of the time is spent scanning the
flash and mounting partitions.

> > >
> > > > 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.
> > >
> > > Big!
> >
> > OLPC mounts 1GiB of NAND flash in about 5 seconds.

Is this using JFFS2?  I must be definetely doing something wrong then.

> > What kernel version are you using, and are do you have summary support
> > enabled?
>

 We are using 2.6.21.  I have the JFFS2 summary option enabled and I
run the sumtool command on the image.

> > Do you have any log files which you're writing tiny amounts to, over and
> > over again -- it's best to avoid that, although there are changes in
> > recent kernels which make it a lot better than it used to be.

We keep syslog in memory for a while without writing to flash, but we
do have some application logs that we have to write frequently.  Does
this cause more fragmentation?  Does JFFS2 rewrite the entire file
every time you update it?
If the changes to fix this problem is pretty isolated, can I backport
this to 2.6.21?

We also replace a bunch of the same files every day to test a new
release of our application software. After a week or so of doing this,
most of the developers end up with a real slugging NAND flash and we
have to end up erasing the entire NAND and start over.  I would like
to avoid this in the field.  We will be releasing software updates and
will have to upgrade the system. How does everyone deal with
situations like this? Is it standard practice to put the files that
change to a separate smaller partition and do the nand erase on it
before updating it?

I am confused by the behavior of the 'df' command. My test caused a
certain application to misbehave and wrote a bunch of info to the log.
 After this point, everytime I rebooted, df showed 62% is in use.
After a few minutes, this would go back down to 20%.  I had to remove
the logs to recover from the problem.  I didn't expect the flash to be
fragmented by the logs because we didn't remove and add a bunch of
files, we just updated the same file.

I also want to understand why the slabtop shows all the jffs2 slab
entries to be so high when we are booting up.
Here is an example:

  OBJS ACTIVE  USE OBJ SIZE  SLABS OBJ/SLAB CACHE SIZE NAME
201390 201390 100%    0.25K  13426       15     53704K jffs2_refblock
 11774   6863  58%    0.02K     58      203       232K jffs2_full_dnode
  6525   6509  99%    0.02K     45      145       180K jffs2_inode_cache
  5945   5280  88%    0.02K     41      145       164K jffs2_node_frag

What does each of these mean?  What causes the USE% to be 100%?

Thanks again for your help and comments.  I'll take any info I can get.

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