mm: add comments on pglist_data zones
authorBen Widawsky <ben.widawsky@intel.com>
Thu, 11 Jun 2020 01:41:50 +0000 (18:41 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 11 Jun 2020 02:14:18 +0000 (19:14 -0700)
While making other modifications it was easy to confuse the two struct
members node_zones and node_zonelists.  For those already familiar with
the code, this might seem to be a silly patch, but it's quite helpful to
disambiguate the similar-sounding fields

While here, add a small comment on why nr_zones isn't simply MAX_NR_ZONES

Signed-off-by: Ben Widawsky <ben.widawsky@intel.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Reviewed-by: Andrew Morton <akpm@linux-foundation.org>
Link: http://lkml.kernel.org/r/20200520205443.2757414-1-ben.widawsky@intel.com
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
include/linux/mmzone.h

index df1f08486d81b2569fd48fa5a4e8512963f869c4..c4c37fd1210444d89c310dfe022bf7898c2b26c1 100644 (file)
@@ -660,9 +660,21 @@ struct deferred_split {
  * per-zone basis.
  */
 typedef struct pglist_data {
+       /*
+        * node_zones contains just the zones for THIS node. Not all of the
+        * zones may be populated, but it is the full list. It is referenced by
+        * this node's node_zonelists as well as other node's node_zonelists.
+        */
        struct zone node_zones[MAX_NR_ZONES];
+
+       /*
+        * node_zonelists contains references to all zones in all nodes.
+        * Generally the first zones will be references to this node's
+        * node_zones.
+        */
        struct zonelist node_zonelists[MAX_ZONELISTS];
-       int nr_zones;
+
+       int nr_zones; /* number of populated zones in this node */
 #ifdef CONFIG_FLAT_NODE_MEM_MAP        /* means !SPARSEMEM */
        struct page *node_mem_map;
 #ifdef CONFIG_PAGE_EXTENSION