Re: [PATCH 11/12] mm, thp, tmpfs: enable thp page cache in tmpfs

From: Ning Qu
Date: Fri Oct 18 2013 - 18:16:35 EST


Hi, Kirill,

I have reviewed the current migration code and seems huge page will
get splitted during migration. Since our current split_huge_page
handle file cache as well, it seems not a problem for us?

We just simply not removing the __GFP_MOVABLE flag? Anything else I am
missing here?

Thanks!
Best wishes,
--
Ning Qu (曲宁) | Software Engineer | quning@xxxxxxxxxx | +1-408-418-6066


On Fri, Oct 18, 2013 at 11:24 AM, Ning Qu <quning@xxxxxxxxxx> wrote:
> I guess this is the last review I have for this around, but not sure
> what's the best solution right now.
>
> Kirill, do you think it's OK to just split the huge page when it will
> be moved. Will look into how thp anon handle this situation.
>
> Then after this, I probably will post v2.
>
> Thanks!
> Best wishes,
> --
> Ning Qu (曲宁) | Software Engineer | quning@xxxxxxxxxx | +1-408-418-6066
>
>
> On Tue, Oct 15, 2013 at 11:42 AM, Ning Qu <quning@xxxxxxxxxx> wrote:
>> I agree with this. It has been like this just for a quick proof, but I
>> need to address this problem as soon as possible.
>>
>> Thanks!
>> Best wishes,
>> --
>> Ning Qu (曲宁) | Software Engineer | quning@xxxxxxxxxx | +1-408-418-6066
>>
>>
>> On Tue, Oct 15, 2013 at 4:09 AM, Kirill A. Shutemov
>> <kirill.shutemov@xxxxxxxxxxxxxxx> wrote:
>>> Ning Qu wrote:
>>>> Signed-off-by: Ning Qu <quning@xxxxxxxxx>
>>>> ---
>>>> mm/Kconfig | 4 ++--
>>>> mm/shmem.c | 5 +++++
>>>> 2 files changed, 7 insertions(+), 2 deletions(-)
>>>>
>>>> diff --git a/mm/Kconfig b/mm/Kconfig
>>>> index 562f12f..4d2f90f 100644
>>>> --- a/mm/Kconfig
>>>> +++ b/mm/Kconfig
>>>> @@ -428,8 +428,8 @@ config TRANSPARENT_HUGEPAGE_PAGECACHE
>>>> help
>>>> Enabling the option adds support hugepages for file-backed
>>>> mappings. It requires transparent hugepage support from
>>>> - filesystem side. For now, the only filesystem which supports
>>>> - hugepages is ramfs.
>>>> + filesystem side. For now, the filesystems which support
>>>> + hugepages are: ramfs and tmpfs.
>>>>
>>>> config CROSS_MEMORY_ATTACH
>>>> bool "Cross Memory Support"
>>>> diff --git a/mm/shmem.c b/mm/shmem.c
>>>> index 75c0ac6..50a3335 100644
>>>> --- a/mm/shmem.c
>>>> +++ b/mm/shmem.c
>>>> @@ -1672,6 +1672,11 @@ static struct inode *shmem_get_inode(struct super_block *sb, const struct inode
>>>> break;
>>>> case S_IFREG:
>>>> inode->i_mapping->a_ops = &shmem_aops;
>>>> + /*
>>>> + * TODO: make tmpfs pages movable
>>>> + */
>>>> + mapping_set_gfp_mask(inode->i_mapping,
>>>> + GFP_TRANSHUGE & ~__GFP_MOVABLE);
>>>
>>> Unlike ramfs, tmpfs pages are movable before transparent page cache
>>> patchset.
>>> Making tmpfs pages non-movable looks like a big regression to me. It need
>>> to be fixed before proposing it upstream.
>>>
>>> --
>>> Kirill A. Shutemov
--
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/