Messages in this thread | | | From | Andreas Dilger <> | Subject | Re: [CFT][PATCH] Re: Fwd: Re: memory usage - dentry_cache | Date | Thu, 12 Apr 2001 11:27:03 -0600 (MDT) |
| |
David writes: > Alexander Viro writes: > > OK, how about wider testing? Theory: prune_dcache() goes through the > > list of immediately killable dentries and tries to free given amount. > > It has a "one warning" policy - it kills dentry if it sees it twice without > > lookup finding that dentry in the interval. Unfortunately, as implemented > > it stops when it had freed _or_ warned given amount. As the result, memory > > pressure on dcache is less than expected. > > The reason the code is how it is right now is there used to be a bug > where that goto spot would --count but not check against zero, making > count possibly go negative and then you'd be there for a _long_ time > :-)
Actually, this is the case if we call shrink_dcache_memory() with priority zero. It calls prune_dcache(count = 0), which gets into the situation you describe (i.e. negative count). I first thought this was a bug, but then realized for priority 0 (i.e. highest priority) we want to check the whole dentry_unused list for unreferenced dentries.
Cheers, Andreas -- Andreas Dilger \ "If a man ate a pound of pasta and a pound of antipasto, \ would they cancel out, leaving him still hungry?" http://www-mddsp.enel.ucalgary.ca/People/adilger/ -- Dogbert - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |