Skip to content
  • Kirill A. Shutemov's avatar
    page-flags: introduce page flags policies wrt compound pages · 95ad9755
    Kirill A. Shutemov authored
    
    
    This patch adds a third argument to macros which create function
    definitions for page flags.  This argument defines how page-flags
    helpers behave on compound functions.
    
    For now we define four policies:
    
     - PF_ANY: the helper function operates on the page it gets, regardless
       if it's non-compound, head or tail.
    
     - PF_HEAD: the helper function operates on the head page of the
       compound page if it gets tail page.
    
     - PF_NO_TAIL: only head and non-compond pages are acceptable for this
       helper function.
    
     - PF_NO_COMPOUND: only non-compound pages are acceptable for this
       helper function.
    
    For now we use policy PF_ANY for all helpers, which matches current
    behaviour.
    
    We do not enforce the policy for TESTPAGEFLAG, because we have flags
    checked for random pages all over the kernel.  Noticeable exception to
    this is PageTransHuge() which triggers VM_BUG_ON() for tail page.
    
    Signed-off-by: default avatarKirill A. Shutemov <kirill.shutemov@linux.intel.com>
    Cc: Andrea Arcangeli <aarcange@redhat.com>
    Cc: Hugh Dickins <hughd@google.com>
    Cc: Dave Hansen <dave.hansen@intel.com>
    Cc: Mel Gorman <mgorman@suse.de>
    Cc: Rik van Riel <riel@redhat.com>
    Cc: Vlastimil Babka <vbabka@suse.cz>
    Cc: Christoph Lameter <cl@linux.com>
    Cc: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
    Cc: Steve Capper <steve.capper@linaro.org>
    Cc: "Aneesh Kumar K.V" <aneesh.kumar@linux.vnet.ibm.com>
    Cc: Johannes Weiner <hannes@cmpxchg.org>
    Cc: Michal Hocko <mhocko@suse.cz>
    Cc: Jerome Marchand <jmarchan@redhat.com>
    Cc: Jérôme Glisse <jglisse@redhat.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    95ad9755