On Wed, May 20, 2020 at 01:54:43PM -0700, Ben Widawsky wrote: > 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 It seems like a real shame to write all this excellent documentation and not format it as kernel-doc. > Signed-off-by: Ben Widawsky <ben.widawsky@xxxxxxxxx> > --- > include/linux/mmzone.h | 14 +++++++++++++- > 1 file changed, 13 insertions(+), 1 deletion(-) > > diff --git include/linux/mmzone.h include/linux/mmzone.h > index 1b9de7d220fb..4f7c95e9bad8 100644 > --- include/linux/mmzone.h > +++ include/linux/mmzone.h > @@ -665,9 +665,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 > -- > 2.26.2 > >