* IDE and locking
@ 2004-02-16 11:42 P
2004-02-22 9:19 ` Paul Jackson
0 siblings, 1 reply; 2+ messages in thread
From: P @ 2004-02-16 11:42 UTC (permalink / raw)
To: Linux Kernel Mailing List
Hi,
I'm working on an embedded system here that
basically counts ethernet packets. I'm using
2.4.20 and I'm noticing that when files are
read from the compact flash (ext2), ethernet
packets are being dropped.
So to work around the problem, I'm precaching
all the files (12MB) at boot like:
find / -type f | while read file; do dd if=$file of=/dev/null; done
So questions.
1. Is this due to the BKL around the IDE subsystem?
2. Are writes as susceptible as reads to the problem?
I'm guessing if the compact flash had a write cache
buffer I would be OK as I only write max 2MB at a time?
3. There was talk about removing the BKL in 2.6 with
reference to:
http://sourceforge.net/project/showfiles.php?group_id=8875
Has this work been included?
4. Is there a max number of files that can be cached by linux?
5. Will the files be removed at any stage from the cache
if there is no memory pressure?
6. Can I reserve memory for the file cache?
cheers.
--
Pádraig Brady - http://www.pixelbeat.org
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: IDE and locking
2004-02-16 11:42 IDE and locking P
@ 2004-02-22 9:19 ` Paul Jackson
0 siblings, 0 replies; 2+ messages in thread
From: Paul Jackson @ 2004-02-22 9:19 UTC (permalink / raw)
To: P; +Cc: linux-kernel
This doesn't answer your real question, but I can't resist
noticing that the above would be more efficient as:
find / -type f | xargs wc >/dev/null
Several times fewer system calls, with just a few exec's of 'wc',
instead of exec'ing a 'dd' per file, and with just one read per 16 Kb,
instead of both a read and write per 512 bytes.
Granted - I'm being silly to mention this - your compact flash
device is obviously the bottleneck here. Doesn't really matter
if the cpu spends 1% or 2% of its time outside the idle loop.
> 4. Is there a max number of files that can be cached by linux?
As long as there is no memory pressure, I suspect it keeps caching
more.
> 5. Will the files be removed at any stage from the cache
> if there is no memory pressure?
I don't think so - stuff seems to stay in cache 'forever',
if no one else wants the memory.
> 6. Can I reserve memory for the file cache?
Not that I know of. If it were read-only data, I might try a ram disk,
but your application apparently is read-write.
It might be (long shot, here) that just caching the directories and
inodes was enough, without caching the file contents:
find / ! -true
--
I won't rest till it's the best ...
Programmer, Linux Scalability
Paul Jackson <pj@sgi.com> 1.650.933.1373
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2004-02-22 9:36 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-02-16 11:42 IDE and locking P
2004-02-22 9:19 ` Paul Jackson
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox