RE: 2.6.10-mm3 scaling problem with inotify

From: John McCutchan
Date: Thu Jan 13 2005 - 21:38:17 EST


On Fri, 2005-01-14 at 10:31 +0800, Zou, Nanhai wrote:
>
> There is still a little difference between your implement in
> inotify_dentry_parent_queue_event from dnotify_parent
>
> In dnotify_parent, if parent is not watching the event, the code will
> not fall
> through dget and dput path.
>
> While in inotify_dentry_parent_queue_event kernel will go dget and dput
> even
> if (inode->inotify_data == NULL).
>
> While dget and dput will introduce a lot of atomic operations..
> And the most important, dput will grab global dcache_lock...,
> I think that is the reason why John Hawkes saw great performance drop.
>
> Simply follow dnotify_parent, only call dget and dput when
> inode->inotify_data != NULL will solve this problem I think.
>

Yeah, the old code was written before inode->inotify_data existed.
Robert caught this before he sent his patch. His patch should fix this
regression.

--
John McCutchan <ttb@xxxxxxxxxxxxxxxx>
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/