From: Michal Hocko <mhocko@kernel.org> To: linux-mm@kvack.org Cc: Andrew Morton <akpm@linux-foundation.org>, Mel Gorman <mgorman@suse.de>, Vlastimil Babka <vbabka@suse.cz>, Andrea Arcangeli <aarcange@redhat.com>, Reza Arbab <arbab@linux.vnet.ibm.com>, Yasuaki Ishimatsu <yasu.isimatu@gmail.com>, Tang Chen <tangchen@cn.fujitsu.com>, qiuxishi@huawei.com, Kani Toshimitsu <toshi.kani@hpe.com>, slaoub@gmail.com, Joonsoo Kim <js1304@gmail.com>, Andi Kleen <ak@linux.intel.com>, David Rientjes <rientjes@google.com>, Daniel Kiper <daniel.kiper@oracle.com>, Igor Mammedov <imammedo@redhat.com>, Vitaly Kuznetsov <vkuznets@redhat.com>, LKML <linux-kernel@vger.kernel.org> Subject: Re: [PATCH v1 1/6] mm: get rid of zone_is_initialized Date: Wed, 5 Apr 2017 10:14:00 +0200 [thread overview] Message-ID: <20170405081400.GE6035@dhcp22.suse.cz> (raw) In-Reply-To: <20170331073954.GF27098@dhcp22.suse.cz> On Fri 31-03-17 09:39:54, Michal Hocko wrote: > Fixed screw ups during the initial patch split up as per Hillf > --- > From 8be6c5e47de66210e47710c80e72e8abd899017b Mon Sep 17 00:00:00 2001 > From: Michal Hocko <mhocko@suse.com> > Date: Wed, 29 Mar 2017 15:11:30 +0200 > Subject: [PATCH] mm: get rid of zone_is_initialized > > There shouldn't be any reason to add initialized when we can tell the > same thing from checking whether there are any pages spanned to the > zone. Remove zone_is_initialized() and replace it by zone_is_empty > which can be used for the same set of tests. > > This shouldn't have any visible effect I've decided to drop this patch. My main motivation was to simplify the hotplug workflow/ The situation is more hairy than I expected, though. On one hand all zones should be initialized early during the hotplug in add_memory_resource but direct users of arch_add_memory will need this to be called I suspect. Let's just keep the current status quo and clean up it later. It is not really needed for this series. > Signed-off-by: Michal Hocko <mhocko@suse.com> > --- > include/linux/mmzone.h | 7 ------- > mm/memory_hotplug.c | 6 +++--- > mm/page_alloc.c | 3 +-- > 3 files changed, 4 insertions(+), 12 deletions(-) > > diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h > index 618499159a7c..3bac3ed71c7a 100644 > --- a/include/linux/mmzone.h > +++ b/include/linux/mmzone.h > @@ -442,8 +442,6 @@ struct zone { > seqlock_t span_seqlock; > #endif > > - int initialized; > - > /* Write-intensive fields used from the page allocator */ > ZONE_PADDING(_pad1_) > > @@ -520,11 +518,6 @@ static inline bool zone_spans_pfn(const struct zone *zone, unsigned long pfn) > return zone->zone_start_pfn <= pfn && pfn < zone_end_pfn(zone); > } > > -static inline bool zone_is_initialized(struct zone *zone) > -{ > - return zone->initialized; > -} > - > static inline bool zone_is_empty(struct zone *zone) > { > return zone->spanned_pages == 0; > diff --git a/mm/memory_hotplug.c b/mm/memory_hotplug.c > index 6fb6bd2df787..699f5a2a8efd 100644 > --- a/mm/memory_hotplug.c > +++ b/mm/memory_hotplug.c > @@ -348,7 +348,7 @@ static void fix_zone_id(struct zone *zone, unsigned long start_pfn, > static int __ref ensure_zone_is_initialized(struct zone *zone, > unsigned long start_pfn, unsigned long num_pages) > { > - if (!zone_is_initialized(zone)) > + if (zone_is_empty(zone)) > return init_currently_empty_zone(zone, start_pfn, num_pages); > > return 0; > @@ -1051,7 +1051,7 @@ bool zone_can_shift(unsigned long pfn, unsigned long nr_pages, > > /* no zones in use between current zone and target */ > for (i = idx + 1; i < target; i++) > - if (zone_is_initialized(zone - idx + i)) > + if (!zone_is_empty(zone - idx + i)) > return false; > } > > @@ -1062,7 +1062,7 @@ bool zone_can_shift(unsigned long pfn, unsigned long nr_pages, > > /* no zones in use between current zone and target */ > for (i = target + 1; i < idx; i++) > - if (zone_is_initialized(zone - idx + i)) > + if (!zone_is_empty(zone - idx + i)) > return false; > } > > diff --git a/mm/page_alloc.c b/mm/page_alloc.c > index 5ee8a26fa383..756353d1e293 100644 > --- a/mm/page_alloc.c > +++ b/mm/page_alloc.c > @@ -795,7 +795,7 @@ static inline void __free_one_page(struct page *page, > > max_order = min_t(unsigned int, MAX_ORDER, pageblock_order + 1); > > - VM_BUG_ON(!zone_is_initialized(zone)); > + VM_BUG_ON(zone_is_empty(zone)); > VM_BUG_ON_PAGE(page->flags & PAGE_FLAGS_CHECK_AT_PREP, page); > > VM_BUG_ON(migratetype == -1); > @@ -5535,7 +5535,6 @@ int __meminit init_currently_empty_zone(struct zone *zone, > zone_start_pfn, (zone_start_pfn + size)); > > zone_init_free_lists(zone); > - zone->initialized = 1; > > return 0; > } > -- > 2.11.0 > > -- > Michal Hocko > SUSE Labs -- Michal Hocko SUSE Labs
WARNING: multiple messages have this Message-ID (diff)
From: Michal Hocko <mhocko@kernel.org> To: linux-mm@kvack.org Cc: Andrew Morton <akpm@linux-foundation.org>, Mel Gorman <mgorman@suse.de>, Vlastimil Babka <vbabka@suse.cz>, Andrea Arcangeli <aarcange@redhat.com>, Reza Arbab <arbab@linux.vnet.ibm.com>, Yasuaki Ishimatsu <yasu.isimatu@gmail.com>, Tang Chen <tangchen@cn.fujitsu.com>, qiuxishi@huawei.com, Kani Toshimitsu <toshi.kani@hpe.com>, slaoub@gmail.com, Joonsoo Kim <js1304@gmail.com>, Andi Kleen <ak@linux.intel.com>, David Rientjes <rientjes@google.com>, Daniel Kiper <daniel.kiper@oracle.com>, Igor Mammedov <imammedo@redhat.com>, Vitaly Kuznetsov <vkuznets@redhat.com>, LKML <linux-kernel@vger.kernel.org> Subject: Re: [PATCH v1 1/6] mm: get rid of zone_is_initialized Date: Wed, 5 Apr 2017 10:14:00 +0200 [thread overview] Message-ID: <20170405081400.GE6035@dhcp22.suse.cz> (raw) In-Reply-To: <20170331073954.GF27098@dhcp22.suse.cz> On Fri 31-03-17 09:39:54, Michal Hocko wrote: > Fixed screw ups during the initial patch split up as per Hillf > --- > From 8be6c5e47de66210e47710c80e72e8abd899017b Mon Sep 17 00:00:00 2001 > From: Michal Hocko <mhocko@suse.com> > Date: Wed, 29 Mar 2017 15:11:30 +0200 > Subject: [PATCH] mm: get rid of zone_is_initialized > > There shouldn't be any reason to add initialized when we can tell the > same thing from checking whether there are any pages spanned to the > zone. Remove zone_is_initialized() and replace it by zone_is_empty > which can be used for the same set of tests. > > This shouldn't have any visible effect I've decided to drop this patch. My main motivation was to simplify the hotplug workflow/ The situation is more hairy than I expected, though. On one hand all zones should be initialized early during the hotplug in add_memory_resource but direct users of arch_add_memory will need this to be called I suspect. Let's just keep the current status quo and clean up it later. It is not really needed for this series. > Signed-off-by: Michal Hocko <mhocko@suse.com> > --- > include/linux/mmzone.h | 7 ------- > mm/memory_hotplug.c | 6 +++--- > mm/page_alloc.c | 3 +-- > 3 files changed, 4 insertions(+), 12 deletions(-) > > diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h > index 618499159a7c..3bac3ed71c7a 100644 > --- a/include/linux/mmzone.h > +++ b/include/linux/mmzone.h > @@ -442,8 +442,6 @@ struct zone { > seqlock_t span_seqlock; > #endif > > - int initialized; > - > /* Write-intensive fields used from the page allocator */ > ZONE_PADDING(_pad1_) > > @@ -520,11 +518,6 @@ static inline bool zone_spans_pfn(const struct zone *zone, unsigned long pfn) > return zone->zone_start_pfn <= pfn && pfn < zone_end_pfn(zone); > } > > -static inline bool zone_is_initialized(struct zone *zone) > -{ > - return zone->initialized; > -} > - > static inline bool zone_is_empty(struct zone *zone) > { > return zone->spanned_pages == 0; > diff --git a/mm/memory_hotplug.c b/mm/memory_hotplug.c > index 6fb6bd2df787..699f5a2a8efd 100644 > --- a/mm/memory_hotplug.c > +++ b/mm/memory_hotplug.c > @@ -348,7 +348,7 @@ static void fix_zone_id(struct zone *zone, unsigned long start_pfn, > static int __ref ensure_zone_is_initialized(struct zone *zone, > unsigned long start_pfn, unsigned long num_pages) > { > - if (!zone_is_initialized(zone)) > + if (zone_is_empty(zone)) > return init_currently_empty_zone(zone, start_pfn, num_pages); > > return 0; > @@ -1051,7 +1051,7 @@ bool zone_can_shift(unsigned long pfn, unsigned long nr_pages, > > /* no zones in use between current zone and target */ > for (i = idx + 1; i < target; i++) > - if (zone_is_initialized(zone - idx + i)) > + if (!zone_is_empty(zone - idx + i)) > return false; > } > > @@ -1062,7 +1062,7 @@ bool zone_can_shift(unsigned long pfn, unsigned long nr_pages, > > /* no zones in use between current zone and target */ > for (i = target + 1; i < idx; i++) > - if (zone_is_initialized(zone - idx + i)) > + if (!zone_is_empty(zone - idx + i)) > return false; > } > > diff --git a/mm/page_alloc.c b/mm/page_alloc.c > index 5ee8a26fa383..756353d1e293 100644 > --- a/mm/page_alloc.c > +++ b/mm/page_alloc.c > @@ -795,7 +795,7 @@ static inline void __free_one_page(struct page *page, > > max_order = min_t(unsigned int, MAX_ORDER, pageblock_order + 1); > > - VM_BUG_ON(!zone_is_initialized(zone)); > + VM_BUG_ON(zone_is_empty(zone)); > VM_BUG_ON_PAGE(page->flags & PAGE_FLAGS_CHECK_AT_PREP, page); > > VM_BUG_ON(migratetype == -1); > @@ -5535,7 +5535,6 @@ int __meminit init_currently_empty_zone(struct zone *zone, > zone_start_pfn, (zone_start_pfn + size)); > > zone_init_free_lists(zone); > - zone->initialized = 1; > > return 0; > } > -- > 2.11.0 > > -- > Michal Hocko > SUSE Labs -- Michal Hocko SUSE Labs -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
next prev parent reply other threads:[~2017-04-05 8:14 UTC|newest] Thread overview: 140+ messages / expand[flat|nested] mbox.gz Atom feed top 2017-03-30 11:54 [PATCH 0/6] mm: make movable onlining suck less Michal Hocko 2017-03-30 11:54 ` Michal Hocko 2017-03-30 11:54 ` [PATCH 1/6] mm: get rid of zone_is_initialized Michal Hocko 2017-03-30 11:54 ` Michal Hocko 2017-03-31 3:39 ` Hillf Danton 2017-03-31 3:39 ` Hillf Danton 2017-03-31 6:43 ` Michal Hocko 2017-03-31 6:43 ` Michal Hocko 2017-03-31 6:48 ` Michal Hocko 2017-03-31 6:48 ` Michal Hocko 2017-03-31 7:39 ` [PATCH v1 " Michal Hocko 2017-03-31 7:39 ` Michal Hocko 2017-04-05 8:14 ` Michal Hocko [this message] 2017-04-05 8:14 ` Michal Hocko 2017-04-05 9:06 ` Igor Mammedov 2017-04-05 9:06 ` Igor Mammedov 2017-04-05 9:23 ` Michal Hocko 2017-04-05 9:23 ` Michal Hocko 2017-03-30 11:54 ` [PATCH 2/6] mm, tile: drop arch_{add,remove}_memory Michal Hocko 2017-03-30 11:54 ` Michal Hocko 2017-03-30 15:41 ` Chris Metcalf 2017-03-30 15:41 ` Chris Metcalf 2017-03-30 11:54 ` [PATCH 3/6] mm: remove return value from init_currently_empty_zone Michal Hocko 2017-03-30 11:54 ` Michal Hocko 2017-03-31 3:49 ` Hillf Danton 2017-03-31 3:49 ` Hillf Danton 2017-03-31 6:49 ` Michal Hocko 2017-03-31 6:49 ` Michal Hocko 2017-03-31 7:06 ` Hillf Danton 2017-03-31 7:06 ` Hillf Danton 2017-03-31 7:18 ` Michal Hocko 2017-03-31 7:18 ` Michal Hocko 2017-03-31 7:43 ` Michal Hocko 2017-03-31 7:43 ` Michal Hocko 2017-04-03 21:22 ` Reza Arbab 2017-04-03 21:22 ` Reza Arbab 2017-04-04 7:30 ` Michal Hocko 2017-04-04 7:30 ` Michal Hocko 2017-03-30 11:54 ` [PATCH 4/6] mm, memory_hotplug: use node instead of zone in can_online_high_movable Michal Hocko 2017-03-30 11:54 ` Michal Hocko 2017-03-30 11:54 ` [PATCH 5/6] mm, memory_hotplug: do not associate hotadded memory to zones until online Michal Hocko 2017-03-30 11:54 ` Michal Hocko 2017-03-31 6:18 ` Hillf Danton 2017-03-31 6:18 ` Hillf Danton 2017-03-31 6:50 ` Michal Hocko 2017-03-31 6:50 ` Michal Hocko 2017-04-04 12:21 ` Tobias Regnery 2017-04-04 12:21 ` Tobias Regnery 2017-04-04 12:45 ` Michal Hocko 2017-04-04 12:45 ` Michal Hocko 2017-04-06 8:14 ` Michal Hocko 2017-04-06 8:14 ` Michal Hocko 2017-04-06 12:46 ` Michal Hocko 2017-04-06 12:46 ` Michal Hocko 2017-03-30 11:54 ` [PATCH 6/6] mm, memory_hotplug: remove unused cruft after memory hotplug rework Michal Hocko 2017-03-30 11:54 ` Michal Hocko 2017-03-31 7:46 ` Michal Hocko 2017-03-31 7:46 ` Michal Hocko 2017-03-31 19:19 ` [PATCH 0/6] mm: make movable onlining suck less Heiko Carstens 2017-03-31 19:19 ` Heiko Carstens 2017-04-03 7:34 ` Michal Hocko 2017-04-03 7:34 ` Michal Hocko 2017-04-03 11:55 ` Michal Hocko 2017-04-03 11:55 ` Michal Hocko 2017-04-03 12:20 ` Igor Mammedov 2017-04-03 12:20 ` Igor Mammedov 2017-04-03 19:58 ` Reza Arbab 2017-04-03 19:58 ` Reza Arbab 2017-04-03 20:23 ` Michal Hocko 2017-04-03 20:23 ` Michal Hocko 2017-04-03 20:42 ` Reza Arbab 2017-04-03 20:42 ` Reza Arbab 2017-04-04 7:23 ` Michal Hocko 2017-04-04 7:23 ` Michal Hocko 2017-04-04 7:34 ` Michal Hocko 2017-04-04 7:34 ` Michal Hocko 2017-04-04 8:23 ` Michal Hocko 2017-04-04 8:23 ` Michal Hocko 2017-04-04 15:59 ` Reza Arbab 2017-04-04 15:59 ` Reza Arbab 2017-04-04 16:02 ` Reza Arbab 2017-04-04 16:02 ` Reza Arbab 2017-04-04 16:44 ` Michal Hocko 2017-04-04 16:44 ` Michal Hocko 2017-04-04 18:30 ` Reza Arbab 2017-04-04 18:30 ` Reza Arbab 2017-04-04 19:41 ` Michal Hocko 2017-04-04 19:41 ` Michal Hocko 2017-04-04 21:43 ` Reza Arbab 2017-04-04 21:43 ` Reza Arbab 2017-04-05 6:42 ` Michal Hocko 2017-04-05 6:42 ` Michal Hocko 2017-04-05 9:24 ` Michal Hocko 2017-04-05 9:24 ` Michal Hocko 2017-04-05 14:53 ` Reza Arbab 2017-04-05 14:53 ` Reza Arbab 2017-04-05 15:42 ` Michal Hocko 2017-04-05 15:42 ` Michal Hocko 2017-04-05 17:32 ` Reza Arbab 2017-04-05 17:32 ` Reza Arbab 2017-04-05 18:15 ` Michal Hocko 2017-04-05 18:15 ` Michal Hocko 2017-04-05 19:39 ` Michal Hocko 2017-04-05 19:39 ` Michal Hocko 2017-04-05 21:02 ` Michal Hocko 2017-04-05 21:02 ` Michal Hocko 2017-04-06 11:07 ` Michal Hocko 2017-04-06 11:07 ` Michal Hocko 2017-04-05 15:48 ` Reza Arbab 2017-04-05 15:48 ` Reza Arbab 2017-04-05 16:34 ` Michal Hocko 2017-04-05 16:34 ` Michal Hocko 2017-04-05 20:55 ` Reza Arbab 2017-04-05 20:55 ` Reza Arbab 2017-04-06 9:25 ` Michal Hocko 2017-04-06 9:25 ` Michal Hocko 2017-04-05 13:52 ` Michal Hocko 2017-04-05 13:52 ` Michal Hocko 2017-04-05 15:23 ` Reza Arbab 2017-04-05 15:23 ` Reza Arbab 2017-04-05 6:36 ` Michal Hocko 2017-04-05 6:36 ` Michal Hocko 2017-04-06 13:08 ` Michal Hocko 2017-04-06 13:08 ` Michal Hocko 2017-04-06 15:24 ` Reza Arbab 2017-04-06 15:24 ` Reza Arbab 2017-04-06 15:41 ` Michal Hocko 2017-04-06 15:41 ` Michal Hocko 2017-04-06 15:46 ` Reza Arbab 2017-04-06 15:46 ` Reza Arbab 2017-04-06 16:21 ` Michal Hocko 2017-04-06 16:21 ` Michal Hocko 2017-04-06 16:24 ` Mel Gorman 2017-04-06 16:24 ` Mel Gorman 2017-04-06 16:55 ` Mel Gorman 2017-04-06 16:55 ` Mel Gorman 2017-04-06 17:12 ` Michal Hocko 2017-04-06 17:12 ` Michal Hocko 2017-04-06 17:46 ` Mel Gorman 2017-04-06 17:46 ` Mel Gorman
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20170405081400.GE6035@dhcp22.suse.cz \ --to=mhocko@kernel.org \ --cc=aarcange@redhat.com \ --cc=ak@linux.intel.com \ --cc=akpm@linux-foundation.org \ --cc=arbab@linux.vnet.ibm.com \ --cc=daniel.kiper@oracle.com \ --cc=imammedo@redhat.com \ --cc=js1304@gmail.com \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-mm@kvack.org \ --cc=mgorman@suse.de \ --cc=qiuxishi@huawei.com \ --cc=rientjes@google.com \ --cc=slaoub@gmail.com \ --cc=tangchen@cn.fujitsu.com \ --cc=toshi.kani@hpe.com \ --cc=vbabka@suse.cz \ --cc=vkuznets@redhat.com \ --cc=yasu.isimatu@gmail.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.