• Dave Hansen's avatar
    mm/vmscan: restore zone_reclaim_mode ABI · 51998364
    Dave Hansen authored
    I went to go add a new RECLAIM_* mode for the zone_reclaim_mode sysctl.
    Like a good kernel developer, I also went to go update the
    documentation.  I noticed that the bits in the documentation didn't
    match the bits in the #defines.
    
    The VM never explicitly checks the RECLAIM_ZONE bit.  The bit is,
    however implicitly checked when checking 'node_reclaim_mode==0'.  The
    RECLAIM_ZONE #define was removed in a cleanup.  That, by itself is fine.
    
    But, when the bit was removed (bit 0) the _other_ bit locations also got
    changed.  That's not OK because the bit values are documented to mean
    one specific thing.  Users surely do not expect the meaning to change
    from kernel to kernel.
    
    The end result is that if someone had a script that did:
    
    	sysctl vm.zone_reclaim_mode=1
    
    it would have gone from enabling node reclaim for clean unmapped pages
    to writing out pages during node reclaim after the commit in question.
    That's not great.
    
    Put the bits back the way they were and add a comment so something like
    this is a bit harder to do again.  Update the documentation to make it
    clear that the first bit is ignored.
    
    Link: https://lkml.kernel.org/r/20210219172555.FF0CDF23@viggo.jf.intel.comSigned-off-by: default avatarDave Hansen <dave.hansen@linux.intel.com>
    Fixes: 648b5cf3 ("mm/vmscan: remove unused RECLAIM_OFF/RECLAIM_ZONE")
    Reviewed-by: default avatarBen Widawsky <ben.widawsky@intel.com>
    Reviewed-by: default avatarOscar Salvador <osalvador@suse.de>
    Acked-by: default avatarDavid Rientjes <rientjes@google.com>
    Acked-by: default avatarChristoph Lameter <cl@linux.com>
    Cc: Alex Shi <alex.shi@linux.alibaba.com>
    Cc: Daniel Wagner <dwagner@suse.de>
    Cc: "Tobin C. Harding" <tobin@kernel.org>
    Cc: Christoph Lameter <cl@linux.com>
    Cc: Andrew Morton <akpm@linux-foundation.org>
    Cc: Huang Ying <ying.huang@intel.com>
    Cc: Dan Williams <dan.j.williams@intel.com>
    Cc: Qian Cai <cai@lca.pw>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    51998364
vm.rst 34.4 KB