Messages in this thread | | | Date | Thu, 16 Jul 2015 00:18:53 +0300 | From | "Kirill A. Shutemov" <> | Subject | Re: [PATCH 00/16] Sanitize usage of ->flags and ->mapping for tail pages |
| |
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
| |