Skip to content
  • Lee Schermerhorn's avatar
    mempolicy: rework shmem mpol parsing and display · 095f1fc4
    Lee Schermerhorn authored
    
    
    mm/shmem.c currently contains functions to parse and display memory policy
    strings for the tmpfs 'mpol' mount option.  Move this to mm/mempolicy.c with
    the rest of the mempolicy support.  With subsequent patches, we'll be able to
    remove knowledge of the details [mode, flags, policy, ...] completely from
    shmem.c
    
    1) replace shmem_parse_mpol() in mm/shmem.c with mpol_parse_str() in
       mm/mempolicy.c.  Rework to use the policy_types[] array [used by
       mpol_to_str()] to look up mode by name.
    
    2) use mpol_to_str() to format policy for shmem_show_mpol().  mpol_to_str()
       expects a pointer to a struct mempolicy, so temporarily construct one.
       This will be replaced with a reference to a struct mempolicy in the tmpfs
       superblock in a subsequent patch.
    
       NOTE 1: I changed mpol_to_str() to use a colon ':' rather than an equal
       sign '=' as the nodemask delimiter to match mpol_parse_str() and the
       tmpfs/shmem mpol mount option formatting that now uses mpol_to_str().  This
       is a user visible change to numa_maps, but then the addition of the mode
       flags already changed the display.  It makes sense to me to have the mounts
       and numa_maps display the policy in the same format.  However, if anyone
       objects strongly, I can pass the desired nodemask delimeter as an arg to
       mpol_to_str().
    
       Note 2: Like show_numa_map(), I don't check the return code from
       mpol_to_str().  I do use a longer buffer than the one provided by
       show_numa_map(), which seems to have sufficed so far.
    
    Signed-off-by: default avatarLee Schermerhorn <lee.schermerhorn@hp.com>
    Cc: Christoph Lameter <clameter@sgi.com>
    Cc: David Rientjes <rientjes@google.com>
    Cc: Mel Gorman <mel@csn.ul.ie>
    Cc: Andi Kleen <ak@suse.de>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    095f1fc4