On Wed, Jul 15, 2015 at 03:20:01PM -0500, Christoph Lameter wrote: > On Thu, 19 Mar 2015, Kirill A. Shutemov wrote: > > > Currently we take naive approach to page flags on compound -- we set the > > flag on the page without consideration if the flag makes sense for tail > > page or for compound page in general. This patchset try to sort this out > > by defining per-flag policy on what need to be done if page-flag helper > > operate on compound page. > > Well we hand pointers to head pages around if handling compound pages. > References to tail pages are dicey and should only be used in a limited > way. At least that is true in the slab allocators and that was my > understanding in earlier years. Therefore it does not make sense > then check for tail pages. This is preparation patchset for THP refcounting rework. With new refcounting sub-pages for THP can be mapped with PTEs, therefore we will see tail pages returned from pte_page(). I've tried ad-hoc approach to page flags wrt tail pages on earlier (pre LFS/MM) revisions of THP refcounting patchset. And IIRC, *you* pointed that it would be nice to have more systematic approach. And here's my attempt. > > For now I catched one case of illigal usage of page flags or ->mapping: > > sound subsystem allocates pages with __GFP_COMP and maps them with PTEs. > > It leads to setting dirty bit on tail pages and access to tail_page's > > ->mapping. I don't see any bad behaviour caused by this, but worth fixing > > anyway. > > Does this catch any errors? It helped to catch BUG fixed by c761471b58e6 (mm: avoid tail page refcounting on non-THP compound pages) and helped with work on refcounting patchset. > > This patchset makes more sense if you take my THP refcounting into > > account: we will see more compound pages mapped with PTEs and we need to > > define behaviour of flags on compound pages to avoid bugs. > > Ok that introduces the risk of pointers to tail pages becoming more of an > issue. But that does not affect non pagecache pages. We don't have huge pages in pagecache yet. Refcounting patchset only affects anon-THP. And makes compound pages suitable for pagecache. We also have PTE-mapped compound pages -- in sound subsystem and some drivers (framebuffer, etc.) -- 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>