From: Baoquan He <bhe@redhat.com>
To: Wei Yang <richardw.yang@linux.intel.com>
Cc: David Hildenbrand <david@redhat.com>,
linux-kernel@vger.kernel.org, linux-mm@kvack.org,
linux-arm-kernel@lists.infradead.org, linux-ia64@vger.kernel.org,
linuxppc-dev@lists.ozlabs.org, linux-s390@vger.kernel.org,
linux-sh@vger.kernel.org, x86@kernel.org,
Andrew Morton <akpm@linux-foundation.org>,
Oscar Salvador <osalvador@suse.de>,
Michal Hocko <mhocko@suse.com>,
Pavel Tatashin <pasha.tatashin@soleen.com>,
Dan Williams <dan.j.williams@intel.com>
Subject: Re: [PATCH v6 08/10] mm/memory_hotplug: Don't check for "all holes" in shrink_zone_span()
Date: Thu, 6 Feb 2020 07:08:26 +0800 [thread overview]
Message-ID: <20200205230826.GF8965@MiWiFi-R3L-srv> (raw)
In-Reply-To: <20200205225633.GA28446@richard>
On 02/06/20 at 06:56am, Wei Yang wrote:
> On Wed, Feb 05, 2020 at 10:48:11PM +0800, Baoquan He wrote:
> >Hi Wei Yang,
> >
> >On 02/05/20 at 05:59pm, Wei Yang wrote:
> >> >diff --git a/mm/memory_hotplug.c b/mm/memory_hotplug.c
> >> >index f294918f7211..8dafa1ba8d9f 100644
> >> >--- a/mm/memory_hotplug.c
> >> >+++ b/mm/memory_hotplug.c
> >> >@@ -393,6 +393,9 @@ static void shrink_zone_span(struct zone *zone, unsigned long start_pfn,
> >> > if (pfn) {
> >> > zone->zone_start_pfn = pfn;
> >> > zone->spanned_pages = zone_end_pfn - pfn;
> >> >+ } else {
> >> >+ zone->zone_start_pfn = 0;
> >> >+ zone->spanned_pages = 0;
> >> > }
> >> > } else if (zone_end_pfn == end_pfn) {
> >> > /*
> >> >@@ -405,34 +408,11 @@ static void shrink_zone_span(struct zone *zone, unsigned long start_pfn,
> >> > start_pfn);
> >> > if (pfn)
> >> > zone->spanned_pages = pfn - zone_start_pfn + 1;
> >> >+ else {
> >> >+ zone->zone_start_pfn = 0;
> >> >+ zone->spanned_pages = 0;
> >> >+ }
> >> > }
> >>
> >> If it is me, I would like to take out these two similar logic out.
> >
> >I also like this style.
> >>
> >> For example:
> >>
> >> if () {
> >> } else if () {
> >> } else {
> >> goto out;
> >Here the last else is unnecessary, right?
> >
>
> I am afraid not.
>
> If the range is not the first or last, we would leave pfn not initialized.
Ah, you are right. I forgot that one. Then pfn can be assigned the
zone_start_pfn as the old code. Then the following logic is the same
as the original code, find_smallest_section_pfn()/find_biggest_section_pfn()
have done the iteration the old for loop was doing.
unsigned long pfn = zone_start_pfn;
if () {
} else if () {
}
/* The zone has no valid section */
if (!pfn) {
zone->zone_start_pfn = 0;
zone->spanned_pages = 0;
}
next prev parent reply other threads:[~2020-02-05 23:08 UTC|newest]
Thread overview: 75+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-10-06 8:56 [PATCH v6 00/10] mm/memory_hotplug: Shrink zones before removing memory David Hildenbrand
2019-10-06 8:56 ` [PATCH v6 01/10] mm/memunmap: Don't access uninitialized memmap in memunmap_pages() David Hildenbrand
2019-10-06 19:58 ` Damian Tometzki
2019-10-06 20:13 ` David Hildenbrand
2019-10-14 9:05 ` David Hildenbrand
2019-10-06 8:56 ` [PATCH v6 02/10] mm/memmap_init: Update variable name in memmap_init_zone David Hildenbrand
2019-10-06 8:56 ` [PATCH v6 03/10] mm/memory_hotplug: Don't access uninitialized memmaps in shrink_pgdat_span() David Hildenbrand
2019-10-14 9:31 ` David Hildenbrand
2019-10-06 8:56 ` [PATCH v6 04/10] mm/memory_hotplug: Don't access uninitialized memmaps in shrink_zone_span() David Hildenbrand
2019-10-14 9:32 ` David Hildenbrand
2019-10-14 19:17 ` Andrew Morton
2019-11-19 14:16 ` David Hildenbrand
2019-11-19 20:44 ` Andrew Morton
2019-10-06 8:56 ` [PATCH v6 05/10] mm/memory_hotplug: Shrink zones when offlining memory David Hildenbrand
2019-10-14 9:39 ` David Hildenbrand
2019-10-14 19:16 ` Andrew Morton
2019-10-27 22:45 ` David Hildenbrand
2019-11-30 23:21 ` Andrew Morton
2019-11-30 23:43 ` David Hildenbrand
2019-12-18 17:08 ` David Hildenbrand
2019-12-18 20:16 ` Andrew Morton
2019-12-03 15:10 ` Oscar Salvador
2019-12-03 15:27 ` David Hildenbrand
2019-10-06 8:56 ` [PATCH v6 06/10] mm/memory_hotplug: Poison memmap in remove_pfn_range_from_zone() David Hildenbrand
2019-10-16 14:01 ` David Hildenbrand
2020-02-04 8:59 ` Oscar Salvador
2019-10-06 8:56 ` [PATCH v6 07/10] mm/memory_hotplug: We always have a zone in find_(smallest|biggest)_section_pfn David Hildenbrand
2020-02-04 9:06 ` Oscar Salvador
2020-02-05 8:57 ` Wei Yang
2020-02-05 8:59 ` David Hildenbrand
2020-02-05 9:26 ` Wei Yang
2019-10-06 8:56 ` [PATCH v6 08/10] mm/memory_hotplug: Don't check for "all holes" in shrink_zone_span() David Hildenbrand
2020-02-04 9:13 ` Oscar Salvador
2020-02-04 9:20 ` David Hildenbrand
2020-02-04 14:25 ` Baoquan He
2020-02-04 14:42 ` David Hildenbrand
2020-02-05 12:43 ` Baoquan He
2020-02-05 13:20 ` David Hildenbrand
2020-02-05 13:34 ` Baoquan He
2020-02-05 13:38 ` David Hildenbrand
2020-02-05 14:12 ` Baoquan He
2020-02-05 14:16 ` David Hildenbrand
2020-02-05 14:26 ` Baoquan He
2020-02-05 9:59 ` Wei Yang
2020-02-05 14:48 ` Baoquan He
2020-02-05 22:56 ` Wei Yang
2020-02-05 23:08 ` Baoquan He [this message]
2020-02-05 23:26 ` Wei Yang
2020-02-05 23:30 ` Baoquan He
2020-02-05 23:34 ` Wei Yang
2020-02-05 14:54 ` David Laight
2020-02-05 14:55 ` David Hildenbrand
2019-10-06 8:56 ` [PATCH v6 09/10] mm/memory_hotplug: Drop local variables " David Hildenbrand
2020-02-04 9:26 ` Oscar Salvador
2020-02-04 9:29 ` David Hildenbrand
2020-02-05 10:07 ` Wei Yang
2019-10-06 8:56 ` [PATCH v6 10/10] mm/memory_hotplug: Cleanup __remove_pages() David Hildenbrand
2020-02-04 9:46 ` Oscar Salvador
2020-02-04 12:41 ` David Hildenbrand
2020-02-04 13:13 ` Segher Boessenkool
2020-02-04 13:38 ` David Hildenbrand
2020-02-05 12:51 ` Segher Boessenkool
2020-02-05 13:17 ` David Hildenbrand
2020-02-05 13:18 ` David Hildenbrand
2020-02-05 13:23 ` David Hildenbrand
2020-02-05 11:48 ` Wei Yang
2019-12-02 9:09 ` [PATCH v6 00/10] mm/memory_hotplug: Shrink zones before removing memory David Hildenbrand
2019-12-03 13:36 ` Oscar Salvador
2020-01-31 4:40 ` Andrew Morton
2020-01-31 9:18 ` David Hildenbrand
2020-01-31 10:03 ` Michal Hocko
2020-01-31 10:36 ` David Hildenbrand
2020-02-04 1:46 ` Andrew Morton
2020-02-04 8:45 ` David Hildenbrand
2020-02-04 9:51 ` Oscar Salvador
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=20200205230826.GF8965@MiWiFi-R3L-srv \
--to=bhe@redhat.com \
--cc=akpm@linux-foundation.org \
--cc=dan.j.williams@intel.com \
--cc=david@redhat.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-ia64@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linux-s390@vger.kernel.org \
--cc=linux-sh@vger.kernel.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=mhocko@suse.com \
--cc=osalvador@suse.de \
--cc=pasha.tatashin@soleen.com \
--cc=richardw.yang@linux.intel.com \
--cc=x86@kernel.org \
/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: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).