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

From: Yang Shi
Date: Tue Apr 24 2018 - 09:08:59 EST




On 4/24/18 6:43 AM, Michal Hocko wrote:
On Mon 23-04-18 21:41:50, Yang Shi wrote:

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.
Does it make sense to contact Qemu developers and probably fix this?

Yes, I think so. We can submit a bug report to QEMU.