• Alex Elder's avatar
    xfs: remove old vmap cache · cd9640a7
    Alex Elder authored
    Re-apply a commit that had been reverted due to regressions
    that have since been fixed.
    
        Original commit: d2859751
        Author: Nick Piggin <npiggin@suse.de>
        Date: Tue, 6 Jan 2009 14:40:44 +1100
    
        XFS's vmap batching simply defers a number (up to 64) of vunmaps,
        and keeps track of them in a list. To purge the batch, it just goes
        through the list and calls vunamp on each one. This is pretty poor:
        a global TLB flush is generally still performed on each vunmap, with
        the most expensive parts of the operation being the broadcast IPIs
        and locking involved in the SMP callouts, and the locking involved
        in the vmap management -- none of these are avoided by just batching
        up the calls. I'm actually surprised it ever made much difference.
        (Now that the lazy vmap allocator is upstream, this description is
        not quite right, but the vunmap batching still doesn't seem to do
        much).
    
        Rip all this logic out of XFS completely. I will improve vmap
        performance and scalability directly in subsequent patch.
    Signed-off-by: default avatarNick Piggin <npiggin@suse.de>
    Reviewed-by: default avatarChristoph Hellwig <hch@infradead.org>
    Signed-off-by: default avatarLachlan McIlroy <lachlan@sgi.com>
    
    The only change I made was to use the "new" xfs_buf_is_vmapped()
    function in a place it had been open-coded in the original.
    Modified-by: default avatarAlex Elder <aelder@sgi.com>
    Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
    Signed-off-by: default avatarAlex Elder <aelder@sgi.com>
    cd9640a7
xfs_buf.c 44.7 KB