Re: [RFC v2 PATCH] mm: shmem: make stat.st_blksize return huge page size if THP is on

From: Yang Shi
Date: Mon Apr 23 2018 - 23:42:16 EST




On 4/23/18 9:04 AM, Michal Hocko wrote:
On Sun 22-04-18 21:28:59, Yang Shi wrote:

On 4/22/18 6:47 PM, Michal Hocko wrote:
[...]
will be used on the first aligned address even when the initial/last
portion of the mapping is not THP aligned.
No, my test shows it is not. And, transhuge_vma_suitable() does check the
virtual address alignment. If it is not huge page size aligned, it will not
set PMD for huge page.
It's been quite some time since I've looked at that code but I think you
are wrong. It just doesn't make sense to make the THP decision on the
VMA alignment much. Kirill, can you clarify please?

Thanks a lot Michal and Kirill to elaborate how tmpfs THP make pmd map.

I did a quick test, THP will be PMD mapped as long as :
* hint address is huge page aligned if MAP_FIXED
Or
* offset is huge page aligned
And
* The size is big enough (>= huge page size)

This test does verify what Kirill said. And, I dig into a little further qemu code and did strace, qemu does try to mmap the file to non huge page aligned address with MAP_FIXED.

I will correct the commit log then submit v4.

Yang


Please note that I have no objections to actually export the huge page
size as the max block size but your changelog just doesn't make any
sense to me.