On Fri, May 15, 2015 at 09:44:17AM +0200, Vlastimil Babka wrote: > On 04/23/2015 11:03 PM, Kirill A. Shutemov wrote: > >As with rmap, with new refcounting we cannot rely on PageTransHuge() to > >check if we need to charge size of huge page form the cgroup. We need to > >get information from caller to know whether it was mapped with PMD or > >PTE. > > > >We do uncharge when last reference on the page gone. At that point if we > >see PageTransHuge() it means we need to unchange whole huge page. > > > >The tricky part is partial unmap -- when we try to unmap part of huge > >page. We don't do a special handing of this situation, meaning we don't > >uncharge the part of huge page unless last user is gone or > >split_huge_page() is triggered. In case of cgroup memory pressure > >happens the partial unmapped page will be split through shrinker. This > >should be good enough. > > > >Signed-off-by: Kirill A. Shutemov <kirill.shutemov@xxxxxxxxxxxxxxx> > >Tested-by: Sasha Levin <sasha.levin@xxxxxxxxxx> > > Acked-by: Vlastimil Babka <vbabka@xxxxxxx> > > But same question about whether it should be using hpage_nr_pages() instead > of a constant. No. Compiler woundn't be able to optimize HPAGE_PMD_NR away for THP=n, since compound value cross compilation unit barrier. -- Kirill A. Shutemov -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>