Re: 2.0.32: get_empty_inode() performance..

Bill Hawes (whawes@star.net)
Wed, 03 Dec 1997 08:52:50 -0500


Michael O'Reilly wrote:
> 2.1.70 appears to have the same problem in a slightly different
> fashion. In free_inodes(), it still searches from the front of the
> list, and removes 'good' inodes leaving only bad ones at the
> start. Give the machine lots of inodes, and lots of disk cache, and
> the problem quickly turns pathological.

2.1.70 explicitly puts freeable inodes at the old end of the list. If
you check the logic in iput() and in syncing an inode, clean inodes with
i_count = 0 go to the old end of the list. Thus try_to_free_inodes only
needs a trivial search (and frees multiple inodes at a time.)

Regards,
Bill