From: Michal Hocko <mhocko@kernel.org>
To: David Hildenbrand <david@redhat.com>
Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org,
Andrew Morton <akpm@linux-foundation.org>,
Oscar Salvador <osalvador@suse.de>,
Pavel Tatashin <pasha.tatashin@soleen.com>,
Dan Williams <dan.j.williams@intel.com>
Subject: Re: [PATCH v2 3/5] mm/memory_hotplug: Simplify online_pages_range()
Date: Wed, 14 Aug 2019 18:07:51 +0200 [thread overview]
Message-ID: <20190814160751.GI17933@dhcp22.suse.cz> (raw)
In-Reply-To: <20190814154109.3448-4-david@redhat.com>
On Wed 14-08-19 17:41:07, David Hildenbrand wrote:
> online_pages always corresponds to nr_pages. Simplify the code, getting
> rid of online_pages_blocks(). Add some comments.
>
> Cc: Andrew Morton <akpm@linux-foundation.org>
> Cc: Oscar Salvador <osalvador@suse.de>
> Cc: Michal Hocko <mhocko@suse.com>
> Cc: Pavel Tatashin <pasha.tatashin@soleen.com>
> Cc: Dan Williams <dan.j.williams@intel.com>
> Signed-off-by: David Hildenbrand <david@redhat.com>
Acked-by: Michal Hocko <mhocko@suse.com>
Thanks!
> ---
> mm/memory_hotplug.c | 36 ++++++++++++++++--------------------
> 1 file changed, 16 insertions(+), 20 deletions(-)
>
> diff --git a/mm/memory_hotplug.c b/mm/memory_hotplug.c
> index 10ad970f3f14..63b1775f7cf8 100644
> --- a/mm/memory_hotplug.c
> +++ b/mm/memory_hotplug.c
> @@ -632,31 +632,27 @@ static void generic_online_page(struct page *page, unsigned int order)
> #endif
> }
>
> -static int online_pages_blocks(unsigned long start, unsigned long nr_pages)
> -{
> - unsigned long end = start + nr_pages;
> - int order, onlined_pages = 0;
> -
> - while (start < end) {
> - order = min(MAX_ORDER - 1,
> - get_order(PFN_PHYS(end) - PFN_PHYS(start)));
> - (*online_page_callback)(pfn_to_page(start), order);
> -
> - onlined_pages += (1UL << order);
> - start += (1UL << order);
> - }
> - return onlined_pages;
> -}
> -
> static int online_pages_range(unsigned long start_pfn, unsigned long nr_pages,
> void *arg)
> {
> - unsigned long onlined_pages = *(unsigned long *)arg;
> + const unsigned long end_pfn = start_pfn + nr_pages;
> + unsigned long pfn;
> + int order;
> +
> + /*
> + * Online the pages. The callback might decide to keep some pages
> + * PG_reserved (to add them to the buddy later), but we still account
> + * them as being online/belonging to this zone ("present").
> + */
> + for (pfn = start_pfn; pfn < end_pfn; pfn += 1ul << order) {
> + order = min(MAX_ORDER - 1, get_order(PFN_PHYS(end_pfn - pfn)));
> + (*online_page_callback)(pfn_to_page(pfn), order);
> + }
>
> - onlined_pages += online_pages_blocks(start_pfn, nr_pages);
> - online_mem_sections(start_pfn, start_pfn + nr_pages);
> + /* mark all involved sections as online */
> + online_mem_sections(start_pfn, end_pfn);
>
> - *(unsigned long *)arg = onlined_pages;
> + *(unsigned long *)arg += nr_pages;
> return 0;
> }
>
> --
> 2.21.0
>
--
Michal Hocko
SUSE Labs
next prev parent reply other threads:[~2019-08-14 16:07 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-08-14 15:41 [PATCH v2 0/5] mm/memory_hotplug: online_pages() cleanups David Hildenbrand
2019-08-14 15:41 ` [PATCH v2 1/5] resource: Use PFN_UP / PFN_DOWN in walk_system_ram_range() David Hildenbrand
2019-08-14 16:15 ` Wei Yang
2019-08-14 15:41 ` [PATCH v2 2/5] mm/memory_hotplug: Drop PageReserved() check in online_pages_range() David Hildenbrand
2019-08-14 16:04 ` Michal Hocko
2019-08-14 15:41 ` [PATCH v2 3/5] mm/memory_hotplug: Simplify online_pages_range() David Hildenbrand
2019-08-14 16:07 ` Michal Hocko [this message]
2019-08-14 15:41 ` [PATCH v2 4/5] mm/memory_hotplug: Make sure the pfn is aligned to the order when onlining David Hildenbrand
2019-08-14 16:09 ` David Hildenbrand
2019-08-14 18:32 ` Michal Hocko
2019-08-14 19:04 ` David Hildenbrand
2019-08-14 20:56 ` Andrew Morton
2019-08-14 21:47 ` David Hildenbrand
2019-08-14 22:10 ` Andrew Morton
2019-08-14 15:41 ` [PATCH v2 5/5] mm/memory_hotplug: online_pages cannot be 0 in online_pages() David Hildenbrand
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=20190814160751.GI17933@dhcp22.suse.cz \
--to=mhocko@kernel.org \
--cc=akpm@linux-foundation.org \
--cc=dan.j.williams@intel.com \
--cc=david@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=osalvador@suse.de \
--cc=pasha.tatashin@soleen.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: link
Be 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.