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? -- Michal Hocko SUSE Labs