General question about caching
linas at austin.ibm.com
linas at austin.ibm.com
Sat Apr 3 08:17:06 EST 2004
On Fri, Apr 02, 2004 at 02:27:12PM -0500, Christopher R. Johnson wrote:
>
> Ok, I'll give it a shot.
>
> 1. Isn't it taking up memory? If not then what does "Cached: 11924kB"
> mean in meminfo? With my embedded application, I desperately need every
> byte I can get; 11924k is HUGE in my little 32MB environment.
Its only using space that no one else is using. If you malloc more
space for yourself, the cache will shrink; but for the most part the
kernel will try to use all of the memory it can. No harm in that, it
usually helps.
> 2. Not sure why its vague that avoiding needless caching in ram of stuff
> that's already in ram is silly. Perhaps the performance hit is minimal,
> but its still silly. At the very least won't there be some needless
> data copying?
Yes, there's probably some needless copying, although I haven't really
read through the linux kernel ramdisk implementation, so I don't really
know. They might have gotten smart. But things like buffer heads
contain all sorts of flags and locks and linked lists and
what-not in there, so you can't just poof-and-make it go away.
> Which cache is used for file contents? That would be the one I don't need.
Not sure what you mean. The buffer cache?
Maybe you're thinking about the /proc/slabinfo? It hold the various
allocated and free blocks of various sizes, it speeds up allocation.
Different filesystems organize thier data in different ways; e.g. reiserfs
packs file tails into one block. There's no trivial way to figure out
what data is where in a file system, which is why the the "users" usually
go through buffers. You can layer block devices onto files in
arbitrary file systems on block devices ad infinitum; there's no trivial
untangling of this stuff.
--linas
** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/
More information about the Linuxppc-dev
mailing list