[lkml]   [2011]   [Jul]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: [PATCH] vfs: avoid taking locks if inode not in lists
    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
    - 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.

     \ /
      Last update: 2011-07-27 22:47    [W:0.019 / U:24.536 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site