From: Ferenc Havasi <havasi@inf.u-szeged.hu>
To: linux-mtd@lists.infradead.org
Subject: A JFFS2 optimization related to syslog
Date: Tue, 18 Apr 2006 13:09:49 +0200 [thread overview]
Message-ID: <4444C8FD.1070406@inf.u-szeged.hu> (raw)
Dear All,
If JFFS2 is used as root filesystem, syslogd/klogd can cause problems,
because every log line are written out individually, so the log file
will contain a lot of small nodes. Because a log file can be very large
(over 30M in our case) it can cause large memory consuption and can make
the system very slow, especially at opening it after next reboot
(becauseof the large frag-tree). Unforunatelly garbage collecting also
does not help, because none of the nodes is obsocalated.
The small patch below can help a lot. The idea behind it is very simple:
if there is a write request to write out the end of a page (4K) it will
write out the full page, not only the last part of it. The result of it
will be:
- small nodes will be obscolated
- garbage collector will be able to delete them
- after next reboot, when the file is under opening only this "large"
node will be read, the small node will not be parts of the frag tree
(thanks to Artem's improvement)
We think it can be usefull not only for us, and now we don't know about
any drawback.
May we commit it into CVS?
Regards,
Ferenc
diff -Narup Mtd-orig/fs/jffs2/file.c mtd/fs/jffs2/file.c
--- Mtd-orig/fs/jffs2/file.c 2005-11-07 12:14:39.000000000 +0100
+++ mtd/fs/jffs2/file.c 2006-04-11 16:35:15.000000000 +0200
@@ -221,6 +221,9 @@ static int jffs2_commit_write (struct fi
page up to date, to prevent page_cache_read() from
trying to re-lock it. */
SetPageUptodate(pg);
+ } else if (end == PAGE_CACHE_SIZE) {
+ start = 0;
+ aligned_start = 0;
}
ri = jffs2_alloc_raw_inode();
next reply other threads:[~2006-04-18 11:09 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-04-18 11:09 Ferenc Havasi [this message]
2006-04-18 11:32 ` A JFFS2 optimization related to syslog Jörn Engel
2006-04-19 11:00 ` David Woodhouse
2006-04-19 12:45 ` David Woodhouse
2006-04-19 12:55 ` Jörn Engel
2006-05-14 3:22 ` David Woodhouse
2006-04-18 11:46 ` Artem B. Bityutskiy
2006-04-18 11:51 ` Artem B. Bityutskiy
2006-04-18 12:05 ` Jörn Engel
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4444C8FD.1070406@inf.u-szeged.hu \
--to=havasi@inf.u-szeged.hu \
--cc=linux-mtd@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox