Re: [PATCH 0/2] new APIs to allocate buffer-cache for superblock in non-movable area
From: Gioh Kim
Date: Thu Aug 14 2014 - 01:23:20 EST
2014-08-14 오후 2:12, Gioh Kim 쓴 글:
> Hello,
>
> This patch try to solve problem that a long-lasting page caches of
> ext4 superblock and journaling of superblock disturb page migration.
>
> I've been testing CMA feature on my ARM-based platform
> and found that two page caches cannot be migrated.
> They are page caches of superblock of ext4 filesystem and its journaling data.
>
> Current ext4 reads superblock with sb_bread() that allocates page
> from movable area. But the problem is that ext4 hold the page until
> it is unmounted. If root filesystem is ext4 the page cannot be migrated forever.
> And also the journaling data for the superblock cannot be migreated.
>
> I introduce a new API for allocating page cache from non-movable area.
> It is useful for ext4/ext3 and others that want to hold page cache for a long time.
>
> I have 3 patchs:
>
> 1. Patch 1/3: introduce a new API that create page cache from non-movable area
> 2. Patch 2/3: have ext4 use the new API to read superblock
> 3. Patch 3/3: have jbd/jbd2 use the new API to make journaling of superblock
>
> This patchset is based on linux-next-20140814.
>
> Thanks a lot.
>
> Gioh Kim (3):
> fs/buffer.c: allocate buffer cache from non-movable area
> ext4: allocate buffer-cache for superblock in non-movable area
> jbd-jbd2-allocate-buffer-cache-for-superblock-inode-.patch
>
> fs/buffer.c | 63 ++++++++++++++++++++++++++++++----
> fs/ext4/super.c | 6 +--
> fs/jbd/journal.c | 2 -
> fs/jbd2/journal.c | 2 -
> include/linux/buffer_head.h | 10 +++++
> 5 files changed, 71 insertions(+), 12 deletions(-)
>
I'm sorry to forget mentioning that this is 2nd version of https://lkml.org/lkml/2014/7/22/34.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/