On Thu, Oct 12, 2023 at 10:33:04AM +0200, David Hildenbrand wrote: > On 10.10.23 16:27, Naoya Horiguchi wrote: > > Hi everyone, > > > > This patchset addresses 2 issues in /proc/kpageflags. > > > > 1. We can't easily tell folio from thp, because currently both pages are > > judged as thp, and > > 2. we see some garbage data in records of compound tail pages because > > we use tail pages to store some internal data. > > > > These issues require userspace programs to do additional work to understand > > the page status, which makes situation more complicated. > > > > This patchset tries to solve these by defining KPF_FOLIO for issue 1., and > > by hiding part of page flag info on tail pages of compound pages for issue 2. > > > > I think that technically some compound pages like thp/hugetlb/slab could be > > considered as folio, but in this version KPF_FOLIO is set only on folios > > At least thp+hugetlb are most certainly folios. Regarding slab, I suspect we > no longer call them folios (cannot be mapped to user space). But Im not sure > about the type hierarchy. I'm not sure about the exact definition of "folio", and I think it's better to make KPF_FOLIO set based on the definition. "being mapped to userspace" can be one possible criteria for the definition. But reading source code, folio_slab() and slab_folio() convert between struct slab and struct folio, so I feel that someone might think a slab is a kind of folio. > > > in pagecache (so "folios in narrower meaning"). I'm not confident about > > this choice, so if you have any idea about this, please let me know. > > It does sound inconsistent. What exactly do you want to tell user space with > the new flag? The current most problematic behavior is to report folio as thp (order-2 pagecache page is definitely a folio but not a thp), and this is what the new flag is intended to tell. Thanks, Naoya Horiguchi