Messages in this thread | | | Date | Mon, 10 Jan 2005 17:23:11 -0800 | From | William Lee Irwin III <> | Subject | Re: [patch] Per-sb s_all_inodes list |
| |
On Mon, Jan 10, 2005 at 04:19:24PM -0500, Mike Waychison wrote: > Releasing a super_block requires walking all inodes for the given > superblock and releasing them. Currently, inodes are found on one of > four lists: [...] > The second list, inode_unused can potentially be quite large. > Unfortunately, it cannot be made per-sb as it is the global LRU list > used for inode cache reduction under memory pressure. > When unmounting a single filesystem, profiling shows dramatic time spent > walking inode_unused. This because very noticeble when one is > unmounting a decently sized tree of filesystems. > The proposed solution is to create a new list per-sb, that contains all > inodes allocated. It is maintained under the inode_lock for the sake of > simplicity, but this may prove unneccesary, and may be better done with > another global or per-sb lock.
I thought this was a good idea a number of months ago myself when I saw a patch for 2.4.x implementing this from Kirill Korotaev, so I ported that code to 2.6.x and it got merged in -mm then. That patch was merged into Linus' bk shortly after 2.6.10. Could you check Linus' bk to see if what made it there resolves the issue as well as your own?
-- wli - 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/
| |