lkml.org 
[lkml]   [1999]   [Sep]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH] Re: Solaris 100K TCP connections, good example? was:[Fwd: [Fwd:


On Wed, 29 Sep 1999, Chuck Lever wrote:

> free_inodes() walks the in_use list looking for inodes with a zero
> reference count. it's not clear to me how a zero reference count inode can
> get onto the in_use list, though. i would think that iput is careful
> enough to move inodes whose reference count goes to zero to the unused
> list. all other references to the i_count field in the kernel i can find

Wrong. unused is for freed inodes. Inodes in in_use with zero i_count can
be immediately taken (without read_inode()). It _is_ needed - take it away
and you will get a helluva lot of fs accesses. Think of soft pagefaults.

iput() moves the thing to unused if it is unhashed (and thus can not be
ever found via hash lookup). Real cleaning is left to free_inodes() when
and if necessary.

However, scanning the list is probably an overkill - I'll look if we can
make the things better. In principle, iput() might move the stuff out of
in_use (in separate list), provided that iget()/igrab() would care to put
them back. I'm not on a Linux box right now, so I can't tell whether it
will be enough. I'll check it this evening, OK?
Al
--
Two of my imaginary friends reproduced once ... with negative results.
Ben <float@interport.net> in ASR


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 13:54    [W:0.720 / U:0.304 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site