Re: [PATCH v2 2/2] mm/page_alloc: integrate classzone_idx and high_zoneidx

From: Joonsoo Kim
Date: Tue Mar 17 2020 - 23:42:27 EST


2020ë 3ì 18ì (ì) ìí 12:33, <js1304@xxxxxxxxx>ëì ìì:
>
> From: Joonsoo Kim <iamjoonsoo.kim@xxxxxxx>
>
> classzone_idx is just different name for high_zoneidx now.
> So, integrate them and add some comment to struct alloc_context
> in order to reduce future confusion about the meaning of this variable.
>
> In addition to integration, this patch also renames high_zoneidx
> to highest_zoneidx since it represents more precise meaning.
>
> Signed-off-by: Joonsoo Kim <iamjoonsoo.kim@xxxxxxx>
> ---
> include/linux/compaction.h | 9 ++--
> include/linux/mmzone.h | 12 ++---
> include/trace/events/compaction.h | 22 ++++----
> include/trace/events/vmscan.h | 14 +++--
> mm/compaction.c | 64 +++++++++++------------
> mm/internal.h | 10 ++--
> mm/memory_hotplug.c | 6 +--
> mm/oom_kill.c | 4 +-
> mm/page_alloc.c | 60 +++++++++++-----------
> mm/slab.c | 4 +-
> mm/slub.c | 4 +-
> mm/vmscan.c | 105 ++++++++++++++++++++------------------
> 12 files changed, 165 insertions(+), 149 deletions(-)

Oops... I miss the important part that documents highest_zoneidx.
Please see below.

Thanks.
------------------>8------------------
diff --git a/mm/internal.h b/mm/internal.h
index 7921150..4bbd10fc 100644
--- a/mm/internal.h
+++ b/mm/internal.h
@@ -115,6 +115,17 @@ struct alloc_context {
nodemask_t *nodemask;
struct zoneref *preferred_zoneref;
int migratetype;
+
+ /*
+ * highest_zoneidx represents highest usable zone index of
+ * the allocation request. Due to the nature of the zone,
+ * memory on lower zone than the highest_zoneidx will be
+ * protected by lowmem_reserve[highest_zoneidx].
+ *
+ * highest_zoneidx is also used by reclaim/compaction to limit
+ * the target zone since higher zone than this index cannot be
+ * usable for this allocation request.
+ */
enum zone_type highest_zoneidx;
bool spread_dirty_pages;
};