• Ryusuke Konishi's avatar
    nilfs2: add cache framework for persistent object allocator · db38d5ad
    Ryusuke Konishi authored
    This adds setup and cleanup routines of the persistent object
    allocator cache.
    
    According to ftrace analyses, accessing buffers of the DAT file
    suffers indispensable overhead many times.  To mitigate the overhead,
    This introduce cache framework for the persistent object allocator
    (palloc) which the DAT file and ifile are using.
    
    struct nilfs_palloc_cache represents the cache object per metadata
    file using palloc.
    
    The cache is initialized through nilfs_palloc_setup_cache() and
    destroyed by nilfs_palloc_destroy_cache(); callers of the former
    function will be added to individual allocators of DAT and ifile on
    successive patches.
    
    nilfs_palloc_destroy_cache() will be called from nilfs_mdt_destroy()
    if the cache is attached to a metadata file.  A companion function
    nilfs_palloc_clear_cache() is provided to allow releasing buffer head
    references independently with the cleanup task.  This adjunctive
    function will be used before invalidating pages of metadata file with
    the cache.
    Signed-off-by: default avatarRyusuke Konishi <konishi.ryusuke@lab.ntt.co.jp>
    db38d5ad
mdt.c 14.4 KB