On Wed, Jul 27, 2011 at 05:21:05PM +0200, Eric Dumazet wrote: > If I am not mistaken, we can add unlocked checks on the three hot spots. > > After following patch, a close(socket(PF_INET, SOCK_DGRAM, 0)) pair on > my dev machine takes ~3us instead of ~9us. > > Maybe its better to split it in three patches, just let me know. I think three patches would be a lot cleaner. As for safety of the unlocked checks: - inode are either hashed when created or never, so that one looks fine. - same for the sb list. - the writeback list is a bit more dynamic as we move things around quite a bit. But in additon to the inode_wb_list_del call from evict() it only ever gets remove in writeback_single_inode, which for a freeing inode can only be called from the callers of evict(). Btw, I wonder if you should micro-optimize things a bit further by moving the unhashed checks from the deletion functions into the callers and thus save a function call for each of them. -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html