All of lore.kernel.org
 help / color / mirror / Atom feed
From: Vlastimil Babka <vbabka@suse.cz>
To: Michal Hocko <mhocko@kernel.org>
Cc: linux-mm@kvack.org, Michael Ellerman <mpe@ellerman.id.au>,
	Andrew Morton <akpm@linux-foundation.org>,
	KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>,
	Reza Arbab <arbab@linux.vnet.ibm.com>,
	Yasuaki Ishimatsu <yasu.isimatu@gmail.com>,
	qiuxishi@huawei.com, Igor Mammedov <imammedo@redhat.com>,
	Vitaly Kuznetsov <vkuznets@redhat.com>,
	LKML <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH 2/2] mm, page_alloc: fail has_unmovable_pages when seeing reserved pages
Date: Tue, 17 Oct 2017 15:03:30 +0200	[thread overview]
Message-ID: <7d389744-13c9-4f01-106a-902af61643e1@suse.cz> (raw)
In-Reply-To: <20171013120756.jeopthigbmm3c7bl@dhcp22.suse.cz>

On 10/13/2017 02:07 PM, Michal Hocko wrote:
> On Fri 13-10-17 14:04:08, Vlastimil Babka wrote:
>> On 10/13/2017 02:00 PM, Michal Hocko wrote:
>>> From: Michal Hocko <mhocko@suse.com>
>>>
>>> Reserved pages should be completely ignored by the core mm because they
>>> have a special meaning for their owners. has_unmovable_pages doesn't
>>> check those so we rely on other tests (reference count, or PageLRU) to
>>> fail on such pages. Althought this happens to work it is safer to simply
>>> check for those explicitly and do not rely on the owner of the page
>>> to abuse those fields for special purposes.
>>>
>>> Please note that this is more of a further fortification of the code
>>> rahter than a fix of an existing issue.
>>>
>>> Signed-off-by: Michal Hocko <mhocko@suse.com>
>>> ---
>>>  mm/page_alloc.c | 3 +++
>>>  1 file changed, 3 insertions(+)
>>>
>>> diff --git a/mm/page_alloc.c b/mm/page_alloc.c
>>> index ad0294ab3e4f..a8800b0a5619 100644
>>> --- a/mm/page_alloc.c
>>> +++ b/mm/page_alloc.c
>>> @@ -7365,6 +7365,9 @@ bool has_unmovable_pages(struct zone *zone, struct page *page, int count,
>>>  
>>>  		page = pfn_to_page(check);
>>>  
>>> +		if (PageReferenced(page))
>>
>> "Referenced" != "Reserved"
> 
> Dohh, you are right of course. I blame auto-completion ;) but I am lame
> in fact...
> ---
> From 44b20bdb03846bc5fd79c883d16b8f3aa436878f Mon Sep 17 00:00:00 2001
> From: Michal Hocko <mhocko@suse.com>
> Date: Fri, 13 Oct 2017 13:55:21 +0200
> Subject: [PATCH] mm, page_alloc: fail has_unmovable_pages when seeing reserved
>  pages
> 
> Reserved pages should be completely ignored by the core mm because they
> have a special meaning for their owners. has_unmovable_pages doesn't
> check those so we rely on other tests (reference count, or PageLRU) to
> fail on such pages. Althought this happens to work it is safer to simply
> check for those explicitly and do not rely on the owner of the page
> to abuse those fields for special purposes.
> 
> Please note that this is more of a further fortification of the code
> rahter than a fix of an existing issue.
> 
> Signed-off-by: Michal Hocko <mhocko@suse.com>

Acked-by: Vlastimil Babka <vbabka@suse.cz>

> ---
>  mm/page_alloc.c | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/mm/page_alloc.c b/mm/page_alloc.c
> index ad0294ab3e4f..5b4d85ae445c 100644
> --- a/mm/page_alloc.c
> +++ b/mm/page_alloc.c
> @@ -7365,6 +7365,9 @@ bool has_unmovable_pages(struct zone *zone, struct page *page, int count,
>  
>  		page = pfn_to_page(check);
>  
> +		if (PageReserved(page))
> +			return true;
> +
>  		/*
>  		 * Hugepages are not in LRU lists, but they're movable.
>  		 * We need not scan over tail pages bacause we don't
> 

WARNING: multiple messages have this Message-ID (diff)
From: Vlastimil Babka <vbabka@suse.cz>
To: Michal Hocko <mhocko@kernel.org>
Cc: linux-mm@kvack.org, Michael Ellerman <mpe@ellerman.id.au>,
	Andrew Morton <akpm@linux-foundation.org>,
	KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>,
	Reza Arbab <arbab@linux.vnet.ibm.com>,
	Yasuaki Ishimatsu <yasu.isimatu@gmail.com>,
	qiuxishi@huawei.com, Igor Mammedov <imammedo@redhat.com>,
	Vitaly Kuznetsov <vkuznets@redhat.com>,
	LKML <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH 2/2] mm, page_alloc: fail has_unmovable_pages when seeing reserved pages
Date: Tue, 17 Oct 2017 15:03:30 +0200	[thread overview]
Message-ID: <7d389744-13c9-4f01-106a-902af61643e1@suse.cz> (raw)
In-Reply-To: <20171013120756.jeopthigbmm3c7bl@dhcp22.suse.cz>

On 10/13/2017 02:07 PM, Michal Hocko wrote:
> On Fri 13-10-17 14:04:08, Vlastimil Babka wrote:
>> On 10/13/2017 02:00 PM, Michal Hocko wrote:
>>> From: Michal Hocko <mhocko@suse.com>
>>>
>>> Reserved pages should be completely ignored by the core mm because they
>>> have a special meaning for their owners. has_unmovable_pages doesn't
>>> check those so we rely on other tests (reference count, or PageLRU) to
>>> fail on such pages. Althought this happens to work it is safer to simply
>>> check for those explicitly and do not rely on the owner of the page
>>> to abuse those fields for special purposes.
>>>
>>> Please note that this is more of a further fortification of the code
>>> rahter than a fix of an existing issue.
>>>
>>> Signed-off-by: Michal Hocko <mhocko@suse.com>
>>> ---
>>>  mm/page_alloc.c | 3 +++
>>>  1 file changed, 3 insertions(+)
>>>
>>> diff --git a/mm/page_alloc.c b/mm/page_alloc.c
>>> index ad0294ab3e4f..a8800b0a5619 100644
>>> --- a/mm/page_alloc.c
>>> +++ b/mm/page_alloc.c
>>> @@ -7365,6 +7365,9 @@ bool has_unmovable_pages(struct zone *zone, struct page *page, int count,
>>>  
>>>  		page = pfn_to_page(check);
>>>  
>>> +		if (PageReferenced(page))
>>
>> "Referenced" != "Reserved"
> 
> Dohh, you are right of course. I blame auto-completion ;) but I am lame
> in fact...
> ---
> From 44b20bdb03846bc5fd79c883d16b8f3aa436878f Mon Sep 17 00:00:00 2001
> From: Michal Hocko <mhocko@suse.com>
> Date: Fri, 13 Oct 2017 13:55:21 +0200
> Subject: [PATCH] mm, page_alloc: fail has_unmovable_pages when seeing reserved
>  pages
> 
> Reserved pages should be completely ignored by the core mm because they
> have a special meaning for their owners. has_unmovable_pages doesn't
> check those so we rely on other tests (reference count, or PageLRU) to
> fail on such pages. Althought this happens to work it is safer to simply
> check for those explicitly and do not rely on the owner of the page
> to abuse those fields for special purposes.
> 
> Please note that this is more of a further fortification of the code
> rahter than a fix of an existing issue.
> 
> Signed-off-by: Michal Hocko <mhocko@suse.com>

Acked-by: Vlastimil Babka <vbabka@suse.cz>

> ---
>  mm/page_alloc.c | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/mm/page_alloc.c b/mm/page_alloc.c
> index ad0294ab3e4f..5b4d85ae445c 100644
> --- a/mm/page_alloc.c
> +++ b/mm/page_alloc.c
> @@ -7365,6 +7365,9 @@ bool has_unmovable_pages(struct zone *zone, struct page *page, int count,
>  
>  		page = pfn_to_page(check);
>  
> +		if (PageReserved(page))
> +			return true;
> +
>  		/*
>  		 * Hugepages are not in LRU lists, but they're movable.
>  		 * We need not scan over tail pages bacause we don't
> 

--
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-10-17 13:03 UTC|newest]

Thread overview: 92+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-09-18  7:08 [PATCH v2 0/2] mm, memory_hotplug: redefine memory offline retry logic Michal Hocko
2017-09-18  7:08 ` Michal Hocko
2017-09-18  7:08 ` [PATCH 1/2] mm, memory_hotplug: do not fail offlining too early Michal Hocko
2017-09-18  7:08   ` Michal Hocko
2017-10-10 12:05   ` Michael Ellerman
2017-10-10 12:05     ` Michael Ellerman
2017-10-10 12:27     ` Michal Hocko
2017-10-10 12:27       ` Michal Hocko
2017-10-11  2:37       ` Michael Ellerman
2017-10-11  2:37         ` Michael Ellerman
2017-10-11  5:19         ` Michael Ellerman
2017-10-11  5:19           ` Michael Ellerman
2017-10-11 14:05           ` Anshuman Khandual
2017-10-11 14:05             ` Anshuman Khandual
2017-10-11 14:16             ` Michal Hocko
2017-10-11 14:16               ` Michal Hocko
2017-10-11  6:51         ` Michal Hocko
2017-10-11  6:51           ` Michal Hocko
2017-10-11  8:04           ` Vlastimil Babka
2017-10-11  8:04             ` Vlastimil Babka
2017-10-11  8:13             ` Michal Hocko
2017-10-11  8:13               ` Michal Hocko
2017-10-11 11:17               ` Vlastimil Babka
2017-10-11 11:17                 ` Vlastimil Babka
2017-10-11 11:24                 ` Michal Hocko
2017-10-11 11:24                   ` Michal Hocko
2017-10-13 11:42             ` Michael Ellerman
2017-10-13 11:42               ` Michael Ellerman
2017-10-13 11:58               ` Michal Hocko
2017-10-13 11:58                 ` Michal Hocko
2017-10-13 12:00                 ` [PATCH 1/2] mm: drop migrate type checks from has_unmovable_pages Michal Hocko
2017-10-13 12:00                   ` Michal Hocko
2017-10-13 12:00                   ` [PATCH 2/2] mm, page_alloc: fail has_unmovable_pages when seeing reserved pages Michal Hocko
2017-10-13 12:00                     ` Michal Hocko
2017-10-13 12:04                     ` Vlastimil Babka
2017-10-13 12:04                       ` Vlastimil Babka
2017-10-13 12:07                       ` Michal Hocko
2017-10-13 12:07                         ` Michal Hocko
2017-10-17 13:03                         ` Vlastimil Babka [this message]
2017-10-17 13:03                           ` Vlastimil Babka
2017-10-17 11:41                   ` [PATCH 1/2] mm: drop migrate type checks from has_unmovable_pages Michael Ellerman
2017-10-17 11:41                     ` Michael Ellerman
2017-10-17 12:03                     ` Michal Hocko
2017-10-17 12:03                       ` Michal Hocko
2017-10-17 13:02                   ` Vlastimil Babka
2017-10-17 13:02                     ` Vlastimil Babka
2017-10-19  2:51                   ` Joonsoo Kim
2017-10-19  2:51                     ` Joonsoo Kim
2017-10-19  7:15                     ` Michal Hocko
2017-10-19  7:15                       ` Michal Hocko
2017-10-19  7:33                       ` Joonsoo Kim
2017-10-19  7:33                         ` Joonsoo Kim
2017-10-19  8:20                         ` Michal Hocko
2017-10-19  8:20                           ` Michal Hocko
2017-10-19 12:21                           ` Michal Hocko
2017-10-19 12:21                             ` Michal Hocko
2017-10-20  2:13                             ` Joonsoo Kim
2017-10-20  2:13                               ` Joonsoo Kim
2017-10-20  5:59                               ` Michal Hocko
2017-10-20  5:59                                 ` Michal Hocko
2017-10-20  6:50                                 ` Joonsoo Kim
2017-10-20  6:50                                   ` Joonsoo Kim
2017-10-20  7:02                                   ` Michal Hocko
2017-10-20  7:02                                     ` Michal Hocko
2017-10-23  5:23                                     ` Joonsoo Kim
2017-10-23  5:23                                       ` Joonsoo Kim
2017-10-23  8:10                                       ` Michal Hocko
2017-10-23  8:10                                         ` Michal Hocko
2017-10-24  4:44                                         ` Joonsoo Kim
2017-10-24  4:44                                           ` Joonsoo Kim
2017-10-24  7:44                                           ` Michal Hocko
2017-10-24  7:44                                             ` Michal Hocko
2017-10-24  8:12                                           ` Vlastimil Babka
2017-10-24  8:12                                             ` Vlastimil Babka
2017-10-24 12:25                                             ` Michal Hocko
2017-10-24 12:25                                               ` Michal Hocko
2017-10-26  2:47                                             ` Joonsoo Kim
2017-10-26  2:47                                               ` Joonsoo Kim
2017-10-26  7:41                                               ` Michal Hocko
2017-10-26  7:41                                                 ` Michal Hocko
2017-10-20  7:22                               ` Xishi Qiu
2017-10-20  7:22                                 ` Xishi Qiu
2017-10-20  8:17                                 ` Michal Hocko
2017-10-20  8:17                                   ` Michal Hocko
2017-10-23  5:26                                   ` Joonsoo Kim
2017-10-23  5:26                                     ` Joonsoo Kim
2017-10-26 13:04                             ` Vlastimil Babka
2017-10-26 13:04                               ` Vlastimil Babka
2017-10-26 13:59                             ` Michal Hocko
2017-10-26 13:59                               ` Michal Hocko
2017-09-18  7:08 ` [PATCH 2/2] mm, memory_hotplug: remove timeout from __offline_memory Michal Hocko
2017-09-18  7:08   ` 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=7d389744-13c9-4f01-106a-902af61643e1@suse.cz \
    --to=vbabka@suse.cz \
    --cc=akpm@linux-foundation.org \
    --cc=arbab@linux.vnet.ibm.com \
    --cc=imammedo@redhat.com \
    --cc=kamezawa.hiroyu@jp.fujitsu.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=mhocko@kernel.org \
    --cc=mpe@ellerman.id.au \
    --cc=qiuxishi@huawei.com \
    --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 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.