mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Michal Hocko <mhocko@kernel.org>
To: Igor Mammedov <imammedo@redhat.com>
Cc: linux-mm@kvack.org, Andrew Morton <akpm@linux-foundation.org>,
	Mel Gorman <mgorman@suse.de>, Vlastimil Babka <vbabka@suse.cz>,
	Andrea Arcangeli <aarcange@redhat.com>,
	Jerome Glisse <jglisse@redhat.com>,
	Reza Arbab <arbab@linux.vnet.ibm.com>,
	Yasuaki Ishimatsu <yasu.isimatu@gmail.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>,
	Vitaly Kuznetsov <vkuznets@redhat.com>,
	LKML <linux-kernel@vger.kernel.org>,
	Dan Williams <dan.j.williams@gmail.com>,
	Heiko Carstens <heiko.carstens@de.ibm.com>,
	Lai Jiangshan <laijs@cn.fujitsu.com>,
	Martin Schwidefsky <schwidefsky@de.ibm.com>,
	Tobias Regnery <tobias.regnery@gmail.com>
Subject: Re: [PATCH -v2 0/9] mm: make movable onlining suck less
Date: Mon, 10 Apr 2017 18:02:28 +0200	[thread overview]
Message-ID: <20170410160228.GI4618@dhcp22.suse.cz> (raw)
In-Reply-To: <20170410162749.7d7f31c1@nial.brq.redhat.com>

On Mon 10-04-17 16:27:49, Igor Mammedov wrote:
[...]
> #issue3:
> removable flag flipped to non-removable state
> 
> // before series at commit ef0b577b6:
> memory32:offline removable: 0  zones: Normal Movable
> memory33:offline removable: 0  zones: Normal Movable
> memory34:offline removable: 0  zones: Normal Movable
> memory35:offline removable: 0  zones: Normal Movable

did you mean _after_ the series because the bellow looks like
the original behavior (at least valid_zones).
 
> // after series at commit 6a010434
> memory32:offline removable: 1  zones: Normal
> memory33:offline removable: 1  zones: Normal
> memory34:offline removable: 1  zones: Normal
> memory35:offline removable: 1  zones: Normal Movable
> 
> also looking at #issue1 removable flag state doesn't
> seem to be consistent between state changes but maybe that's
> been broken before

Well, the file has a very questionable semantic. It doesn't provide
a stable information. Anyway put that aside.
is_pageblock_removable_nolock relies on having zone association
which we do not have yet if the memblock is offline. So we need
the following. I will queue this as a preparatory patch.
---
>From 4f3ebc02f4d552d3fe114787ca8a38cc68702208 Mon Sep 17 00:00:00 2001
From: Michal Hocko <mhocko@suse.com>
Date: Mon, 10 Apr 2017 17:59:03 +0200
Subject: [PATCH] mm, memory_hotplug: consider offline memblocks removable

is_pageblock_removable_nolock relies on having zone association to
examine all the page blocks to check whether they are movable or free.
This is just wasting of cycles when the memblock is offline. Later patch
in the series will also change the time when the page is associated with
a zone so we let's bail out early if the memblock is offline.

Reported-by: Igor Mammedov <imammedo@redhat.com>
Signed-off-by: Michal Hocko <mhocko@suse.com>
---
 drivers/base/memory.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/drivers/base/memory.c b/drivers/base/memory.c
index 9677b6b711b0..0c29ec5598ea 100644
--- a/drivers/base/memory.c
+++ b/drivers/base/memory.c
@@ -128,6 +128,9 @@ static ssize_t show_mem_removable(struct device *dev,
 	int ret = 1;
 	struct memory_block *mem = to_memory_block(dev);
 
+	if (mem->stat != MEM_ONLINE)
+		goto out;
+
 	for (i = 0; i < sections_per_block; i++) {
 		if (!present_section_nr(mem->start_section_nr + i))
 			continue;
@@ -135,6 +138,7 @@ static ssize_t show_mem_removable(struct device *dev,
 		ret &= is_mem_section_removable(pfn, PAGES_PER_SECTION);
 	}
 
+out:
 	return sprintf(buf, "%d\n", ret);
 }
 
-- 
2.11.0


-- 
Michal Hocko
SUSE Labs

  parent reply	other threads:[~2017-04-10 16:02 UTC|newest]

Thread overview: 84+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-04-10 11:03 Michal Hocko
2017-04-10 11:03 ` [PATCH 1/9] mm: remove return value from init_currently_empty_zone Michal Hocko
2017-04-11  8:10   ` Balbir Singh
2017-04-13 12:03   ` Vlastimil Babka
2017-04-13 19:43   ` YASUAKI ISHIMATSU
2017-04-10 11:03 ` [PATCH 2/9] mm, memory_hotplug: use node instead of zone in can_online_high_movable Michal Hocko
2017-04-13 12:46   ` Vlastimil Babka
2017-04-13 19:45   ` YASUAKI ISHIMATSU
2017-04-10 11:03 ` [PATCH 3/9] mm: drop page_initialized check from get_nid_for_pfn Michal Hocko
2017-04-13 12:59   ` Vlastimil Babka
2017-04-10 11:03 ` [PATCH 4/9] mm, memory_hotplug: get rid of is_zone_device_section Michal Hocko
2017-04-10 16:20   ` Jerome Glisse
2017-04-10 16:31     ` Michal Hocko
2017-04-13 13:05   ` Vlastimil Babka
2017-04-17 20:12   ` Jerome Glisse
2017-04-18  7:19     ` Michal Hocko
2017-04-10 11:03 ` [PATCH 5/9] mm, memory_hotplug: split up register_one_node Michal Hocko
2017-04-13 14:05   ` Vlastimil Babka
2017-04-13 14:13     ` Michal Hocko
2017-04-10 11:03 ` [PATCH 6/9] mm, memory_hotplug: do not associate hotadded memory to zones until online Michal Hocko
2017-04-10 16:25   ` [PATCH v3 " Michal Hocko
2017-04-20  8:25     ` Vlastimil Babka
2017-04-20  9:06       ` Michal Hocko
2017-04-20 10:51         ` Vlastimil Babka
2017-04-10 11:03 ` [PATCH 7/9] mm, memory_hotplug: replace for_device by want_memblock in arch_add_memory Michal Hocko
2017-04-20  8:29   ` Vlastimil Babka
2017-04-10 11:03 ` [PATCH 8/9] mm, memory_hotplug: fix the section mismatch warning Michal Hocko
2017-04-10 11:03 ` [PATCH 9/9] mm, memory_hotplug: remove unused cruft after memory hotplug rework Michal Hocko
2017-04-20  8:38   ` Vlastimil Babka
2017-04-10 14:27 ` [PATCH -v2 0/9] mm: make movable onlining suck less Igor Mammedov
2017-04-10 14:56   ` Michal Hocko
2017-04-10 15:22     ` Michal Hocko
2017-04-10 15:31       ` Michal Hocko
2017-04-11  8:01     ` Igor Mammedov
2017-04-11  8:41       ` Michal Hocko
2017-04-11  9:53         ` Igor Mammedov
2017-04-11 10:47           ` Michal Hocko
2017-04-10 16:02   ` Michal Hocko [this message]
2017-04-18  8:23     ` Vlastimil Babka
2017-04-10 16:09   ` Michal Hocko
2017-04-11  6:38     ` Igor Mammedov
2017-04-11  9:23       ` Michal Hocko
2017-04-11  9:59         ` Igor Mammedov
2017-04-11 11:01           ` Michal Hocko
2017-04-11 11:38             ` Michal Hocko
2017-04-11 12:38               ` Michal Hocko
2017-04-10 15:43 ` Reza Arbab
2017-04-11  8:59   ` Michal Hocko
2017-04-10 16:35 ` Jerome Glisse
2017-04-10 17:53   ` Michal Hocko
2017-04-11  2:51   ` Balbir Singh
2017-04-11 17:03 ` Michal Hocko
2017-04-17 21:51   ` Dan Williams
2017-04-18  7:14     ` Michal Hocko
2017-04-18 16:42       ` Dan Williams
2017-04-18 19:54         ` Michal Hocko
2017-04-20  3:37           ` Dan Williams
2017-04-15 12:17 ` Michal Hocko
2017-04-15 12:17   ` [PATCH 1/3] mm: consider zone which is not fully populated to have holes Michal Hocko
2017-04-18  8:45     ` Vlastimil Babka
2017-04-18  9:27       ` Michal Hocko
2017-04-19 11:59         ` Vlastimil Babka
2017-04-19 12:16           ` Michal Hocko
2017-04-19 12:34             ` Vlastimil Babka
2017-04-19 12:50               ` Michal Hocko
2017-04-15 12:17   ` [PATCH 2/3] mm, compaction: skip over holes in __reset_isolation_suitable Michal Hocko
2017-04-15 12:17   ` [PATCH 3/3] mm: __first_valid_page skip over offline pages Michal Hocko
2017-04-17  5:47   ` your mail Joonsoo Kim
2017-04-17  8:15     ` Michal Hocko
2017-04-20  1:27       ` Joonsoo Kim
2017-04-20  7:28         ` Michal Hocko
2017-04-20  8:49           ` Michal Hocko
2017-04-20 11:56             ` Vlastimil Babka
2017-04-20 12:13               ` Michal Hocko
2017-04-21  2:46             ` [lkp-robot] 73821bb516: WARNING:at_mm/memblock.c:#memblock_virt_alloc_internal kernel test robot
2017-04-21  8:05               ` Michal Hocko
2017-04-21  4:38           ` your mail Joonsoo Kim
2017-04-21  7:16             ` Michal Hocko
2017-04-24  1:44               ` Joonsoo Kim
2017-04-24  7:53                 ` Michal Hocko
2017-04-25  2:50                   ` Joonsoo Kim
2017-04-26  9:19                     ` Michal Hocko
2017-04-27  2:08                       ` Joonsoo Kim
2017-04-27 15:10                         ` Michal Hocko

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=20170410160228.GI4618@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=dan.j.williams@gmail.com \
    --cc=daniel.kiper@oracle.com \
    --cc=heiko.carstens@de.ibm.com \
    --cc=imammedo@redhat.com \
    --cc=jglisse@redhat.com \
    --cc=js1304@gmail.com \
    --cc=laijs@cn.fujitsu.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=schwidefsky@de.ibm.com \
    --cc=slaoub@gmail.com \
    --cc=tobias.regnery@gmail.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: 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

Powered by JetHome