lkml.org 
[lkml]   [2015]   [Jul]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    SubjectRE: [f2fs-dev] [PATCH 12/12] f2fs: use extent_cache by default
    Date
    Hi Jaegeuk,

    > -----Original Message-----
    > From: Jaegeuk Kim [mailto:jaegeuk@kernel.org]
    > Sent: Tuesday, June 30, 2015 2:40 AM
    > To: linux-kernel@vger.kernel.org; linux-fsdevel@vger.kernel.org;
    > linux-f2fs-devel@lists.sourceforge.net
    > Cc: Jaegeuk Kim
    > Subject: [f2fs-dev] [PATCH 12/12] f2fs: use extent_cache by default
    >
    > We don't need to handle the duplicate extent infot showrmation.

    information?

    >
    > The integrated rule is:
    > - update on-disk extent with largest one tracked by in-memory extent_cache
    > - destroy extent_tree for the truncation case
    > - drop per-inode extent_cache by shrinker
    >
    > Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>

    [snip]

    > @@ -538,7 +427,11 @@ static struct extent_node *__insert_extent_tree(struct f2fs_sb_info *sbi,
    > }
    > }
    >
    > - return __attach_extent_node(sbi, et, ei, parent, p);
    > + en = __attach_extent_node(sbi, et, ei, parent, p);
    > +update_out:
    > + if (en && en->ei.len > et->largest.len)
    > + et->largest = en->ei;

    IMO, it's better to update cached_en here if it is invalid in
    __detach_extent_node, then cached_en and largest may point different
    extent info, it can expand our region of first level extent cache.

    [snip]

    > +
    > + /* free all extent info belong to this extent tree */
    > + f2fs_destroy_extent_node(inode);

    How about returning number of freed extent node for tracing.

    node_cnt = f2fs_destroy_extent_node(inode);

    [snip]

    > @@ -237,10 +237,11 @@ void update_inode(struct inode *inode, struct page *node_page)
    > ri->i_size = cpu_to_le64(i_size_read(inode));
    > ri->i_blocks = cpu_to_le64(inode->i_blocks);
    >
    > - read_lock(&F2FS_I(inode)->ext_lock);
    > - set_raw_extent(&F2FS_I(inode)->ext, &ri->i_ext);
    > - read_unlock(&F2FS_I(inode)->ext_lock);
    > -
    > + if (F2FS_I(inode)->extent_tree)

    Could extent cache destroy after above check?

    Thanks,


    \
     
     \ /
      Last update: 2015-07-02 15:01    [W:4.798 / U:0.668 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site