• David Chinner's avatar
    [XFS] Prevent AIL lock contention during transaction completion · b589334c
    David Chinner authored
    When hundreds of processors attempt to commit transactions at the same
    time, they can contend on the AIL lock when updating the tail LSN held in
    the in-core log structure.
    
    At the moment, the tail LSN is only needed when actually writing out an
    iclog, so it really does not need to be updated on every single
    transaction completion - only those that result in switching iclogs and
    flushing them to disk.
    
    The result is that we reduce the number of times we need to grab the AIL
    lock and the log grant lock by up to two orders of magnitude on large
    processor count machines. The problem has previously been hidden by AIL
    lock contention walking the AIL list which was recently solved and
    uncovered this issue.
    
    SGI-PV: 975671
    SGI-Modid: xfs-linux-melb:xfs-kern:30504a
    Signed-off-by: default avatarDavid Chinner <dgc@sgi.com>
    Signed-off-by: default avatarTim Shimmin <tes@sgi.com>
    Signed-off-by: default avatarLachlan McIlroy <lachlan@sgi.com>
    b589334c
xfs_log.c 107 KB