All of lore.kernel.org
 help / color / mirror / Atom feed
From: Michal Hocko <mhocko@kernel.org>
To: <linux-mm@kvack.org>
Cc: Andrew Morton <akpm@linux-foundation.org>,
	Mel Gorman <mgorman@suse.de>,
	Johannes Weiner <hannes@cmpxchg.org>,
	Vlastimil Babka <vbabka@suse.cz>,
	LKML <linux-kernel@vger.kernel.org>,
	joonsoo kim <js1304@gmail.com>,
	linux-api@vger.kernel.org, Michal Hocko <mhocko@suse.com>,
	Shaohua Li <shaohua.li@intel.com>, Toshi Kani <toshi.kani@hp.com>,
	Wen Congyang <wency@cn.fujitsu.com>
Subject: [PATCH 0/9] cleanup zonelists initialization
Date: Fri, 14 Jul 2017 09:59:57 +0200	[thread overview]
Message-ID: <20170714080006.7250-1-mhocko@kernel.org> (raw)

Hi,
this is aimed at cleaning up the zonelists initialization code we have
but the primary motivation was bug report [1] which got resolved but
the usage of stop_machine is just too ugly to live. Most patches are
straightforward but 3 of them need a special consideration.

Patch 1 removes zone ordered zonelists completely. I am CCing linux-api
because this is a user visible change. As I argue in the patch
description I do not think we have a strong usecase for it these days.
I have kept sysctl in place and warn into the log if somebody tries to
configure zone lists ordering. If somebody has a real usecase for it
we can revert this patch but I do not expect anybody will actually notice
runtime differences. This patch is not strictly needed for the rest but
it made patch 6 easier to implement.

Patch 7 removes stop_machine from build_all_zonelists without adding any
special synchronization between iterators and updater which I _believe_
is acceptable as explained in the changelog. I hope I am not missing
anything.

Patch 8 then removes zonelists_mutex which is kind of ugly as well and
not really needed AFAICS but a care should be taken when double checking
my thinking.

This has passed my light testing but I currently do not have a HW to
test hotadd_new_pgdat path (aka a completely new node added to the
system in runtime).

This is based on the current mmomt git tree (mmotm-2017-07-12-15-11).
Any feedback is highly appreciated.

The diffstat looks really promissing
 include/linux/mmzone.h |   3 +-
 init/main.c            |   2 +-
 kernel/sysctl.c        |   2 -
 mm/internal.h          |   1 +
 mm/memory_hotplug.c    |  27 +----
 mm/page_alloc.c        | 293 ++++++++++++-------------------------------------
 mm/page_ext.c          |   5 +-
 mm/sparse-vmemmap.c    |  11 +-
 mm/sparse.c            |  10 +-
 9 files changed, 89 insertions(+), 265 deletions(-)

Shortlog says
Michal Hocko (9):
      mm, page_alloc: rip out ZONELIST_ORDER_ZONE
      mm, page_alloc: remove boot pageset initialization from memory hotplug
      mm, page_alloc: do not set_cpu_numa_mem on empty nodes initialization
      mm, memory_hotplug: drop zone from build_all_zonelists
      mm, memory_hotplug: remove explicit build_all_zonelists from try_online_node
      mm, page_alloc: simplify zonelist initialization
      mm, page_alloc: remove stop_machine from build_all_zonelists
      mm, memory_hotplug: get rid of zonelists_mutex
      mm, sparse, page_ext: drop ugly N_HIGH_MEMORY branches for allocations

[1] http://lkml.kernel.org/r/alpine.DEB.2.20.1706291803380.1861@nanos

WARNING: multiple messages have this Message-ID (diff)
From: Michal Hocko <mhocko-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
To: linux-mm-Bw31MaZKKs3YtjvyW6yDsg@public.gmane.org
Cc: Andrew Morton
	<akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org>,
	Mel Gorman <mgorman-l3A5Bk7waGM@public.gmane.org>,
	Johannes Weiner <hannes-druUgvl0LCNAfugRpC6u6w@public.gmane.org>,
	Vlastimil Babka <vbabka-AlSwsSmVLrQ@public.gmane.org>,
	LKML <linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
	joonsoo kim <js1304-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
	linux-api-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	Michal Hocko <mhocko-IBi9RG/b67k@public.gmane.org>,
	Shaohua Li <shaohua.li-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>,
	Toshi Kani <toshi.kani-VXdhtT5mjnY@public.gmane.org>,
	Wen Congyang <wency-BthXqXjhjHXQFUHtdCDX3A@public.gmane.org>
Subject: [PATCH 0/9] cleanup zonelists initialization
Date: Fri, 14 Jul 2017 09:59:57 +0200	[thread overview]
Message-ID: <20170714080006.7250-1-mhocko@kernel.org> (raw)

Hi,
this is aimed at cleaning up the zonelists initialization code we have
but the primary motivation was bug report [1] which got resolved but
the usage of stop_machine is just too ugly to live. Most patches are
straightforward but 3 of them need a special consideration.

Patch 1 removes zone ordered zonelists completely. I am CCing linux-api
because this is a user visible change. As I argue in the patch
description I do not think we have a strong usecase for it these days.
I have kept sysctl in place and warn into the log if somebody tries to
configure zone lists ordering. If somebody has a real usecase for it
we can revert this patch but I do not expect anybody will actually notice
runtime differences. This patch is not strictly needed for the rest but
it made patch 6 easier to implement.

Patch 7 removes stop_machine from build_all_zonelists without adding any
special synchronization between iterators and updater which I _believe_
is acceptable as explained in the changelog. I hope I am not missing
anything.

Patch 8 then removes zonelists_mutex which is kind of ugly as well and
not really needed AFAICS but a care should be taken when double checking
my thinking.

This has passed my light testing but I currently do not have a HW to
test hotadd_new_pgdat path (aka a completely new node added to the
system in runtime).

This is based on the current mmomt git tree (mmotm-2017-07-12-15-11).
Any feedback is highly appreciated.

The diffstat looks really promissing
 include/linux/mmzone.h |   3 +-
 init/main.c            |   2 +-
 kernel/sysctl.c        |   2 -
 mm/internal.h          |   1 +
 mm/memory_hotplug.c    |  27 +----
 mm/page_alloc.c        | 293 ++++++++++++-------------------------------------
 mm/page_ext.c          |   5 +-
 mm/sparse-vmemmap.c    |  11 +-
 mm/sparse.c            |  10 +-
 9 files changed, 89 insertions(+), 265 deletions(-)

Shortlog says
Michal Hocko (9):
      mm, page_alloc: rip out ZONELIST_ORDER_ZONE
      mm, page_alloc: remove boot pageset initialization from memory hotplug
      mm, page_alloc: do not set_cpu_numa_mem on empty nodes initialization
      mm, memory_hotplug: drop zone from build_all_zonelists
      mm, memory_hotplug: remove explicit build_all_zonelists from try_online_node
      mm, page_alloc: simplify zonelist initialization
      mm, page_alloc: remove stop_machine from build_all_zonelists
      mm, memory_hotplug: get rid of zonelists_mutex
      mm, sparse, page_ext: drop ugly N_HIGH_MEMORY branches for allocations

[1] http://lkml.kernel.org/r/alpine.DEB.2.20.1706291803380.1861@nanos

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>,
	Johannes Weiner <hannes@cmpxchg.org>,
	Vlastimil Babka <vbabka@suse.cz>,
	LKML <linux-kernel@vger.kernel.org>,
	joonsoo kim <js1304@gmail.com>,
	linux-api@vger.kernel.org, Michal Hocko <mhocko@suse.com>,
	Shaohua Li <shaohua.li@intel.com>, Toshi Kani <toshi.kani@hp.com>,
	Wen Congyang <wency@cn.fujitsu.com>
Subject: [PATCH 0/9] cleanup zonelists initialization
Date: Fri, 14 Jul 2017 09:59:57 +0200	[thread overview]
Message-ID: <20170714080006.7250-1-mhocko@kernel.org> (raw)

Hi,
this is aimed at cleaning up the zonelists initialization code we have
but the primary motivation was bug report [1] which got resolved but
the usage of stop_machine is just too ugly to live. Most patches are
straightforward but 3 of them need a special consideration.

Patch 1 removes zone ordered zonelists completely. I am CCing linux-api
because this is a user visible change. As I argue in the patch
description I do not think we have a strong usecase for it these days.
I have kept sysctl in place and warn into the log if somebody tries to
configure zone lists ordering. If somebody has a real usecase for it
we can revert this patch but I do not expect anybody will actually notice
runtime differences. This patch is not strictly needed for the rest but
it made patch 6 easier to implement.

Patch 7 removes stop_machine from build_all_zonelists without adding any
special synchronization between iterators and updater which I _believe_
is acceptable as explained in the changelog. I hope I am not missing
anything.

Patch 8 then removes zonelists_mutex which is kind of ugly as well and
not really needed AFAICS but a care should be taken when double checking
my thinking.

This has passed my light testing but I currently do not have a HW to
test hotadd_new_pgdat path (aka a completely new node added to the
system in runtime).

This is based on the current mmomt git tree (mmotm-2017-07-12-15-11).
Any feedback is highly appreciated.

The diffstat looks really promissing
 include/linux/mmzone.h |   3 +-
 init/main.c            |   2 +-
 kernel/sysctl.c        |   2 -
 mm/internal.h          |   1 +
 mm/memory_hotplug.c    |  27 +----
 mm/page_alloc.c        | 293 ++++++++++++-------------------------------------
 mm/page_ext.c          |   5 +-
 mm/sparse-vmemmap.c    |  11 +-
 mm/sparse.c            |  10 +-
 9 files changed, 89 insertions(+), 265 deletions(-)

Shortlog says
Michal Hocko (9):
      mm, page_alloc: rip out ZONELIST_ORDER_ZONE
      mm, page_alloc: remove boot pageset initialization from memory hotplug
      mm, page_alloc: do not set_cpu_numa_mem on empty nodes initialization
      mm, memory_hotplug: drop zone from build_all_zonelists
      mm, memory_hotplug: remove explicit build_all_zonelists from try_online_node
      mm, page_alloc: simplify zonelist initialization
      mm, page_alloc: remove stop_machine from build_all_zonelists
      mm, memory_hotplug: get rid of zonelists_mutex
      mm, sparse, page_ext: drop ugly N_HIGH_MEMORY branches for allocations

[1] http://lkml.kernel.org/r/alpine.DEB.2.20.1706291803380.1861@nanos

--
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>

             reply	other threads:[~2017-07-14  8:00 UTC|newest]

Thread overview: 113+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-07-14  7:59 Michal Hocko [this message]
2017-07-14  7:59 ` [PATCH 0/9] cleanup zonelists initialization Michal Hocko
2017-07-14  7:59 ` Michal Hocko
2017-07-14  7:59 ` [PATCH 1/9] mm, page_alloc: rip out ZONELIST_ORDER_ZONE Michal Hocko
2017-07-14  7:59   ` Michal Hocko
2017-07-14  9:36   ` Mel Gorman
2017-07-14  9:36     ` Mel Gorman
2017-07-14  9:36     ` Mel Gorman
2017-07-14 10:47     ` Michal Hocko
2017-07-14 10:47       ` Michal Hocko
2017-07-14 11:16       ` Mel Gorman
2017-07-14 11:16         ` Mel Gorman
2017-07-14 11:16         ` Mel Gorman
2017-07-14 11:38         ` Michal Hocko
2017-07-14 11:38           ` Michal Hocko
2017-07-14 11:38           ` Michal Hocko
2017-07-14 12:56           ` Mel Gorman
2017-07-14 12:56             ` Mel Gorman
2017-07-14 13:01             ` Mel Gorman
2017-07-14 13:01               ` Mel Gorman
2017-07-14 13:01               ` Mel Gorman
2017-07-14 13:08             ` Michal Hocko
2017-07-14 13:08               ` Michal Hocko
2017-07-19  9:33   ` Vlastimil Babka
2017-07-19  9:33     ` Vlastimil Babka
2017-07-19  9:33     ` Vlastimil Babka
2017-07-19 13:44     ` Michal Hocko
2017-07-19 13:44       ` Michal Hocko
2017-07-19 13:44       ` Michal Hocko
2017-07-14  7:59 ` [PATCH 2/9] mm, page_alloc: remove boot pageset initialization from memory hotplug Michal Hocko
2017-07-14  7:59   ` Michal Hocko
2017-07-14  9:39   ` Mel Gorman
2017-07-14  9:39     ` Mel Gorman
2017-07-19 13:15   ` Vlastimil Babka
2017-07-19 13:15     ` Vlastimil Babka
2017-07-14  8:00 ` [PATCH 3/9] mm, page_alloc: do not set_cpu_numa_mem on empty nodes initialization Michal Hocko
2017-07-14  8:00   ` Michal Hocko
2017-07-14  9:48   ` Mel Gorman
2017-07-14  9:48     ` Mel Gorman
2017-07-14 10:50     ` Michal Hocko
2017-07-14 10:50       ` Michal Hocko
2017-07-14 12:32       ` Mel Gorman
2017-07-14 12:32         ` Mel Gorman
2017-07-14 12:39         ` Michal Hocko
2017-07-14 12:39           ` Michal Hocko
2017-07-14 12:56           ` Mel Gorman
2017-07-14 12:56             ` Mel Gorman
2017-07-19 13:19   ` Vlastimil Babka
2017-07-19 13:19     ` Vlastimil Babka
2017-07-14  8:00 ` [PATCH 4/9] mm, memory_hotplug: drop zone from build_all_zonelists Michal Hocko
2017-07-14  8:00   ` Michal Hocko
2017-07-19 13:33   ` Vlastimil Babka
2017-07-19 13:33     ` Vlastimil Babka
2017-07-20  8:15     ` Michal Hocko
2017-07-20  8:15       ` Michal Hocko
2017-07-14  8:00 ` [PATCH 5/9] mm, memory_hotplug: remove explicit build_all_zonelists from try_online_node Michal Hocko
2017-07-14  8:00   ` Michal Hocko
2017-07-14 12:14   ` Michal Hocko
2017-07-14 12:14     ` Michal Hocko
2017-07-20  6:13   ` Vlastimil Babka
2017-07-20  6:13     ` Vlastimil Babka
2017-07-14  8:00 ` [PATCH 6/9] mm, page_alloc: simplify zonelist initialization Michal Hocko
2017-07-14  8:00   ` Michal Hocko
2017-07-14  9:55   ` Mel Gorman
2017-07-14  9:55     ` Mel Gorman
2017-07-14 10:51     ` Michal Hocko
2017-07-14 10:51       ` Michal Hocko
2017-07-14 12:46   ` Mel Gorman
2017-07-14 12:46     ` Mel Gorman
2017-07-14 13:02     ` Michal Hocko
2017-07-14 13:02       ` Michal Hocko
2017-07-14 14:18       ` Mel Gorman
2017-07-14 14:18         ` Mel Gorman
2017-07-17  6:06         ` Michal Hocko
2017-07-17  6:06           ` Michal Hocko
2017-07-17  8:07           ` Mel Gorman
2017-07-17  8:07             ` Mel Gorman
2017-07-17  8:19             ` Michal Hocko
2017-07-17  8:19               ` Michal Hocko
2017-07-17  8:58               ` Mel Gorman
2017-07-17  8:58                 ` Mel Gorman
2017-07-17  9:15                 ` Michal Hocko
2017-07-17  9:15                   ` Michal Hocko
2017-07-20  6:55   ` Vlastimil Babka
2017-07-20  6:55     ` Vlastimil Babka
2017-07-20  7:19     ` Michal Hocko
2017-07-20  7:19       ` Michal Hocko
2017-07-14  8:00 ` [PATCH 7/9] mm, page_alloc: remove stop_machine from build_all_zonelists Michal Hocko
2017-07-14  8:00   ` Michal Hocko
2017-07-14  9:59   ` Mel Gorman
2017-07-14  9:59     ` Mel Gorman
2017-07-14 11:00     ` Michal Hocko
2017-07-14 11:00       ` Michal Hocko
2017-07-14 12:47       ` Mel Gorman
2017-07-14 12:47         ` Mel Gorman
2017-07-14 11:29   ` Vlastimil Babka
2017-07-14 11:29     ` Vlastimil Babka
2017-07-14 11:43     ` Michal Hocko
2017-07-14 11:43       ` Michal Hocko
2017-07-14 11:45       ` Michal Hocko
2017-07-14 11:45         ` Michal Hocko
2017-07-20  6:16         ` Vlastimil Babka
2017-07-20  6:16           ` Vlastimil Babka
2017-07-20  7:24   ` Vlastimil Babka
2017-07-20  7:24     ` Vlastimil Babka
2017-07-20  9:21     ` Michal Hocko
2017-07-20  9:21       ` Michal Hocko
2017-07-14  8:00 ` [PATCH 8/9] mm, memory_hotplug: get rid of zonelists_mutex Michal Hocko
2017-07-14  8:00   ` Michal Hocko
2017-07-14  8:00 ` [PATCH 9/9] mm, sparse, page_ext: drop ugly N_HIGH_MEMORY branches for allocations Michal Hocko
2017-07-14  8:00   ` Michal Hocko
2017-07-20  8:04   ` Vlastimil Babka
2017-07-20  8:04     ` Vlastimil Babka

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=20170714080006.7250-1-mhocko@kernel.org \
    --to=mhocko@kernel.org \
    --cc=akpm@linux-foundation.org \
    --cc=hannes@cmpxchg.org \
    --cc=js1304@gmail.com \
    --cc=linux-api@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=mgorman@suse.de \
    --cc=mhocko@suse.com \
    --cc=shaohua.li@intel.com \
    --cc=toshi.kani@hp.com \
    --cc=vbabka@suse.cz \
    --cc=wency@cn.fujitsu.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.