From: Yisheng Xie <ysxie@foxmail.com>
To: Michal Hocko <mhocko@kernel.org>, Yisheng Xie <xieyisheng1@huawei.com>
Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org,
akpm@linux-foundation.org, vbabka@suse.cz,
mgorman@techsingularity.net, hannes@cmpxchg.org,
iamjoonsoo.kim@lge.com, izumi.taku@jp.fujitsu.com,
arbab@linux.vnet.ibm.com, vkuznets@redhat.com,
ak@linux.intel.com, n-horiguchi@ah.jp.nec.com,
minchan@kernel.org, qiuxishi@huawei.com, guohanjun@huawei.com
Subject: Re: [RFC v2 PATCH] mm/hotplug: enable memory hotplug for non-lru movable pages
Date: Mon, 30 Jan 2017 23:14:23 +0800 [thread overview]
Message-ID: <588F584F.5080904@foxmail.com> (raw)
In-Reply-To: <20170126094303.GE6590@dhcp22.suse.cz>
hi Michal,
Thank you for reviewing and sorry for late reply.
On 01/26/2017 05:43 PM, Michal Hocko wrote:
> On Wed 25-01-17 14:59:45, Yisheng Xie wrote:
>
> static unsigned long scan_movable_pages(unsigned long start, unsigned long end)
> {
> @@ -1531,6 +1531,16 @@ static unsigned long scan_movable_pages(unsigned long start, unsigned long end)
> pfn = round_up(pfn + 1,
> 1 << compound_order(page)) - 1;
> }
> + /*
> + * check __PageMovable in lock_page to avoid miss some
> + * non-lru movable pages at race condition.
> + */
> + lock_page(page);
> + if (__PageMovable(page)) {
> + unlock_page(page);
> + return pfn;
> + }
> + unlock_page(page);
> This doesn't make any sense to me. __PageMovable can change right after
> you drop the lock so why the race matters? If we cannot tolerate races
> then the above doesn't work and if we can then taking the lock is
> pointless.
hmm, for PageLRU check may also race without lru-locki 1/4 ?
I think it is ok to check __PageMovable without lock_page, here.
>> }
>> }
>> return 0;
>> @@ -1600,21 +1610,25 @@ static struct page *new_node_page(struct page *page, unsigned long private,
>> if (!get_page_unless_zero(page))
>> continue;
>> /*
>> - * We can skip free pages. And we can only deal with pages on
>> - * LRU.
>> + * We can skip free pages. And we can deal with pages on
>> + * LRU and non-lru movable pages.
>> */
>> - ret = isolate_lru_page(page);
>> + if (PageLRU(page))
>> + ret = isolate_lru_page(page);
>> + else
>> + ret = !isolate_movable_page(page, ISOLATE_UNEVICTABLE);
> we really want to propagate the proper error code to the caller.
Yes , I make the same mistake again. Really sorry about that.
Maybe I can rewrite the isolate_movable_page to let it return int as isolate_lru_page
do in this patchset :)
Thanks
Yisheng Xie
--
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>
WARNING: multiple messages have this Message-ID (diff)
From: Yisheng Xie <ysxie@foxmail.com>
To: Michal Hocko <mhocko@kernel.org>, Yisheng Xie <xieyisheng1@huawei.com>
Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org,
akpm@linux-foundation.org, vbabka@suse.cz,
mgorman@techsingularity.net, hannes@cmpxchg.org,
iamjoonsoo.kim@lge.com, izumi.taku@jp.fujitsu.com,
arbab@linux.vnet.ibm.com, vkuznets@redhat.com,
ak@linux.intel.com, n-horiguchi@ah.jp.nec.com,
minchan@kernel.org, qiuxishi@huawei.com, guohanjun@huawei.com
Subject: Re: [RFC v2 PATCH] mm/hotplug: enable memory hotplug for non-lru movable pages
Date: Mon, 30 Jan 2017 23:14:23 +0800 [thread overview]
Message-ID: <588F584F.5080904@foxmail.com> (raw)
In-Reply-To: <20170126094303.GE6590@dhcp22.suse.cz>
hi Michal,
Thank you for reviewing and sorry for late reply.
On 01/26/2017 05:43 PM, Michal Hocko wrote:
> On Wed 25-01-17 14:59:45, Yisheng Xie wrote:
>
> static unsigned long scan_movable_pages(unsigned long start, unsigned long end)
> {
> @@ -1531,6 +1531,16 @@ static unsigned long scan_movable_pages(unsigned long start, unsigned long end)
> pfn = round_up(pfn + 1,
> 1 << compound_order(page)) - 1;
> }
> + /*
> + * check __PageMovable in lock_page to avoid miss some
> + * non-lru movable pages at race condition.
> + */
> + lock_page(page);
> + if (__PageMovable(page)) {
> + unlock_page(page);
> + return pfn;
> + }
> + unlock_page(page);
> This doesn't make any sense to me. __PageMovable can change right after
> you drop the lock so why the race matters? If we cannot tolerate races
> then the above doesn't work and if we can then taking the lock is
> pointless.
hmm, for PageLRU check may also race without lru-lock,
I think it is ok to check __PageMovable without lock_page, here.
>> }
>> }
>> return 0;
>> @@ -1600,21 +1610,25 @@ static struct page *new_node_page(struct page *page, unsigned long private,
>> if (!get_page_unless_zero(page))
>> continue;
>> /*
>> - * We can skip free pages. And we can only deal with pages on
>> - * LRU.
>> + * We can skip free pages. And we can deal with pages on
>> + * LRU and non-lru movable pages.
>> */
>> - ret = isolate_lru_page(page);
>> + if (PageLRU(page))
>> + ret = isolate_lru_page(page);
>> + else
>> + ret = !isolate_movable_page(page, ISOLATE_UNEVICTABLE);
> we really want to propagate the proper error code to the caller.
Yes , I make the same mistake again. Really sorry about that.
Maybe I can rewrite the isolate_movable_page to let it return int as isolate_lru_page
do in this patchset :)
Thanks
Yisheng Xie
next prev parent reply other threads:[~2017-01-30 15:16 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-01-25 6:59 [RFC v2 PATCH] mm/hotplug: enable memory hotplug for non-lru movable pages Yisheng Xie
2017-01-25 6:59 ` Yisheng Xie
2017-01-26 9:43 ` Michal Hocko
2017-01-26 9:43 ` Michal Hocko
2017-01-30 15:14 ` Yisheng Xie [this message]
2017-01-30 15:14 ` Yisheng Xie
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=588F584F.5080904@foxmail.com \
--to=ysxie@foxmail.com \
--cc=ak@linux.intel.com \
--cc=akpm@linux-foundation.org \
--cc=arbab@linux.vnet.ibm.com \
--cc=guohanjun@huawei.com \
--cc=hannes@cmpxchg.org \
--cc=iamjoonsoo.kim@lge.com \
--cc=izumi.taku@jp.fujitsu.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=mgorman@techsingularity.net \
--cc=mhocko@kernel.org \
--cc=minchan@kernel.org \
--cc=n-horiguchi@ah.jp.nec.com \
--cc=qiuxishi@huawei.com \
--cc=vbabka@suse.cz \
--cc=vkuznets@redhat.com \
--cc=xieyisheng1@huawei.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.