All of lore.kernel.org
 help / color / mirror / Atom feed
From: guohanjun@huawei.com (Hanjun Guo)
To: linux-arm-kernel@lists.infradead.org
Subject: Suspicious error for CMA stress test
Date: Fri, 18 Mar 2016 10:03:50 +0800	[thread overview]
Message-ID: <56EB6206.4070802@huawei.com> (raw)
In-Reply-To: <CAAmzW4PVc+v9NVyqrHZqh6qWaJD8hrwNUVSb6G=vZ3eA76J3yQ@mail.gmail.com>

On 2016/3/17 23:31, Joonsoo Kim wrote:
[...]
>>> I may find that there is a bug which was introduced by me some time
>>> ago. Could you test following change in __free_one_page() on top of
>>> Vlastimil's patch?
>>>
>>> -page_idx = pfn & ((1 << max_order) - 1);
>>> +page_idx = pfn & ((1 << MAX_ORDER) - 1);
>> I tested Vlastimil's patch + your change with stress for more than half hour, the bug
>> I reported is gone :)
> Good to hear!
>
>> I have some questions, Joonsoo, you provided a patch as following:
>>
>> diff --git a/mm/cma.c b/mm/cma.c
>> index 3a7a67b..952a8a3 100644
>> --- a/mm/cma.c
>> +++ b/mm/cma.c
>> @@ -448,7 +448,10 @@ bool cma_release(struct cma *cma, const struct page *pages, unsigned int count)
>>
>>         VM_BUG_ON(pfn + count > cma->base_pfn + cma->count);
>>
>> + mutex_lock(&cma_mutex);
>>         free_contig_range(pfn, count);
>> + mutex_unlock(&cma_mutex);
>> +
>>         cma_clear_bitmap(cma, pfn, count);
>>         trace_cma_release(pfn, pages, count);
>>
>> diff --git a/mm/page_alloc.c b/mm/page_alloc.c
>> index 7f32950..68ed5ae 100644
>> --- a/mm/page_alloc.c
>> +++ b/mm/page_alloc.c
>> @@ -1559,7 +1559,8 @@ void free_hot_cold_page(struct page *page, bool cold)
>>          * excessively into the page allocator
>>          */
>>         if (migratetype >= MIGRATE_PCPTYPES) {
>> -           if (unlikely(is_migrate_isolate(migratetype))) {
>> +         if (is_migrate_cma(migratetype) ||
>> +             unlikely(is_migrate_isolate(migratetype))) {
>>                         free_one_page(zone, page, pfn, 0, migratetype);
>>                         goto out;
>>                 }
>>
>> This patch also works to fix the bug, why not just use this one? is there
>> any side effects for this patch? maybe there is performance issue as the
>> mutex lock is used, any other issues?
> The changes in free_hot_cold_page() would cause unacceptable performance
> problem in a big machine, because, with above change,  it takes zone->lock
> whenever freeing one page on CMA region.

Thanks for the clarify :)

Hanjun

WARNING: multiple messages have this Message-ID (diff)
From: Hanjun Guo <guohanjun@huawei.com>
To: Joonsoo Kim <js1304@gmail.com>
Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>,
	Vlastimil Babka <vbabka@suse.cz>,
	"Leizhen (ThunderTown)" <thunder.leizhen@huawei.com>,
	Laura Abbott <labbott@redhat.com>,
	"linux-arm-kernel@lists.infradead.org"
	<linux-arm-kernel@lists.infradead.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Sasha Levin <sasha.levin@oracle.com>,
	Laura Abbott <lauraa@codeaurora.org>,
	qiuxishi <qiuxishi@huawei.com>,
	Catalin Marinas <Catalin.Marinas@arm.com>,
	Will Deacon <will.deacon@arm.com>, Arnd Bergmann <arnd@arndb.de>,
	dingtinahong <dingtianhong@huawei.com>,
	chenjie6@huawei.com, "linux-mm@kvack.org" <linux-mm@kvack.org>
Subject: Re: Suspicious error for CMA stress test
Date: Fri, 18 Mar 2016 10:03:50 +0800	[thread overview]
Message-ID: <56EB6206.4070802@huawei.com> (raw)
In-Reply-To: <CAAmzW4PVc+v9NVyqrHZqh6qWaJD8hrwNUVSb6G=vZ3eA76J3yQ@mail.gmail.com>

On 2016/3/17 23:31, Joonsoo Kim wrote:
[...]
>>> I may find that there is a bug which was introduced by me some time
>>> ago. Could you test following change in __free_one_page() on top of
>>> Vlastimil's patch?
>>>
>>> -page_idx = pfn & ((1 << max_order) - 1);
>>> +page_idx = pfn & ((1 << MAX_ORDER) - 1);
>> I tested Vlastimil's patch + your change with stress for more than half hour, the bug
>> I reported is gone :)
> Good to hear!
>
>> I have some questions, Joonsoo, you provided a patch as following:
>>
>> diff --git a/mm/cma.c b/mm/cma.c
>> index 3a7a67b..952a8a3 100644
>> --- a/mm/cma.c
>> +++ b/mm/cma.c
>> @@ -448,7 +448,10 @@ bool cma_release(struct cma *cma, const struct page *pages, unsigned int count)
>>
>>         VM_BUG_ON(pfn + count > cma->base_pfn + cma->count);
>>
>> + mutex_lock(&cma_mutex);
>>         free_contig_range(pfn, count);
>> + mutex_unlock(&cma_mutex);
>> +
>>         cma_clear_bitmap(cma, pfn, count);
>>         trace_cma_release(pfn, pages, count);
>>
>> diff --git a/mm/page_alloc.c b/mm/page_alloc.c
>> index 7f32950..68ed5ae 100644
>> --- a/mm/page_alloc.c
>> +++ b/mm/page_alloc.c
>> @@ -1559,7 +1559,8 @@ void free_hot_cold_page(struct page *page, bool cold)
>>          * excessively into the page allocator
>>          */
>>         if (migratetype >= MIGRATE_PCPTYPES) {
>> -           if (unlikely(is_migrate_isolate(migratetype))) {
>> +         if (is_migrate_cma(migratetype) ||
>> +             unlikely(is_migrate_isolate(migratetype))) {
>>                         free_one_page(zone, page, pfn, 0, migratetype);
>>                         goto out;
>>                 }
>>
>> This patch also works to fix the bug, why not just use this one? is there
>> any side effects for this patch? maybe there is performance issue as the
>> mutex lock is used, any other issues?
> The changes in free_hot_cold_page() would cause unacceptable performance
> problem in a big machine, because, with above change,  it takes zone->lock
> whenever freeing one page on CMA region.

Thanks for the clarify :)

Hanjun

--
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: Hanjun Guo <guohanjun@huawei.com>
To: Joonsoo Kim <js1304@gmail.com>
Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>,
	Vlastimil Babka <vbabka@suse.cz>,
	"Leizhen (ThunderTown)" <thunder.leizhen@huawei.com>,
	Laura Abbott <labbott@redhat.com>,
	"linux-arm-kernel@lists.infradead.org" 
	<linux-arm-kernel@lists.infradead.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Sasha Levin <sasha.levin@oracle.com>,
	Laura Abbott <lauraa@codeaurora.org>,
	qiuxishi <qiuxishi@huawei.com>,
	Catalin Marinas <Catalin.Marinas@arm.com>,
	Will Deacon <will.deacon@arm.com>, Arnd Bergmann <arnd@arndb.de>,
	dingtinahong <dingtianhong@huawei.com>, <chenjie6@huawei.com>,
	"linux-mm@kvack.org" <linux-mm@kvack.org>
Subject: Re: Suspicious error for CMA stress test
Date: Fri, 18 Mar 2016 10:03:50 +0800	[thread overview]
Message-ID: <56EB6206.4070802@huawei.com> (raw)
In-Reply-To: <CAAmzW4PVc+v9NVyqrHZqh6qWaJD8hrwNUVSb6G=vZ3eA76J3yQ@mail.gmail.com>

On 2016/3/17 23:31, Joonsoo Kim wrote:
[...]
>>> I may find that there is a bug which was introduced by me some time
>>> ago. Could you test following change in __free_one_page() on top of
>>> Vlastimil's patch?
>>>
>>> -page_idx = pfn & ((1 << max_order) - 1);
>>> +page_idx = pfn & ((1 << MAX_ORDER) - 1);
>> I tested Vlastimil's patch + your change with stress for more than half hour, the bug
>> I reported is gone :)
> Good to hear!
>
>> I have some questions, Joonsoo, you provided a patch as following:
>>
>> diff --git a/mm/cma.c b/mm/cma.c
>> index 3a7a67b..952a8a3 100644
>> --- a/mm/cma.c
>> +++ b/mm/cma.c
>> @@ -448,7 +448,10 @@ bool cma_release(struct cma *cma, const struct page *pages, unsigned int count)
>>
>>         VM_BUG_ON(pfn + count > cma->base_pfn + cma->count);
>>
>> + mutex_lock(&cma_mutex);
>>         free_contig_range(pfn, count);
>> + mutex_unlock(&cma_mutex);
>> +
>>         cma_clear_bitmap(cma, pfn, count);
>>         trace_cma_release(pfn, pages, count);
>>
>> diff --git a/mm/page_alloc.c b/mm/page_alloc.c
>> index 7f32950..68ed5ae 100644
>> --- a/mm/page_alloc.c
>> +++ b/mm/page_alloc.c
>> @@ -1559,7 +1559,8 @@ void free_hot_cold_page(struct page *page, bool cold)
>>          * excessively into the page allocator
>>          */
>>         if (migratetype >= MIGRATE_PCPTYPES) {
>> -           if (unlikely(is_migrate_isolate(migratetype))) {
>> +         if (is_migrate_cma(migratetype) ||
>> +             unlikely(is_migrate_isolate(migratetype))) {
>>                         free_one_page(zone, page, pfn, 0, migratetype);
>>                         goto out;
>>                 }
>>
>> This patch also works to fix the bug, why not just use this one? is there
>> any side effects for this patch? maybe there is performance issue as the
>> mutex lock is used, any other issues?
> The changes in free_hot_cold_page() would cause unacceptable performance
> problem in a big machine, because, with above change,  it takes zone->lock
> whenever freeing one page on CMA region.

Thanks for the clarify :)

Hanjun

  reply	other threads:[~2016-03-18  2:03 UTC|newest]

Thread overview: 176+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-03-02 13:52 Suspicious error for CMA stress test Hanjun Guo
2016-03-02 13:52 ` Hanjun Guo
2016-03-03  1:25 ` Laura Abbott
2016-03-03  1:25   ` Laura Abbott
2016-03-03  1:25   ` Laura Abbott
2016-03-03  6:07   ` Hanjun Guo
2016-03-03  6:07     ` Hanjun Guo
2016-03-03  6:07     ` Hanjun Guo
2016-03-03  7:42   ` Joonsoo Kim
2016-03-03  7:42     ` Joonsoo Kim
2016-03-03  7:42     ` Joonsoo Kim
2016-03-03  7:58     ` Hanjun Guo
2016-03-03  7:58       ` Hanjun Guo
2016-03-03  7:58       ` Hanjun Guo
2016-03-03 12:49     ` Hanjun Guo
2016-03-03 12:49       ` Hanjun Guo
2016-03-03 12:49       ` Hanjun Guo
2016-03-03 18:52       ` Laura Abbott
2016-03-03 18:52         ` Laura Abbott
2016-03-03 18:52         ` Laura Abbott
2016-03-04  2:09         ` Joonsoo Kim
2016-03-04  2:09           ` Joonsoo Kim
2016-03-04  2:09           ` Joonsoo Kim
2016-03-04  6:09           ` Hanjun Guo
2016-03-04  6:09             ` Hanjun Guo
2016-03-04  6:09             ` Hanjun Guo
2016-03-04  2:02       ` Joonsoo Kim
2016-03-04  2:02         ` Joonsoo Kim
2016-03-04  2:02         ` Joonsoo Kim
2016-03-04  4:32         ` Joonsoo Kim
2016-03-04  4:32           ` Joonsoo Kim
2016-03-04  4:32           ` Joonsoo Kim
2016-03-04  6:05           ` Hanjun Guo
2016-03-04  6:05             ` Hanjun Guo
2016-03-04  6:05             ` Hanjun Guo
2016-03-04  6:38             ` Joonsoo Kim
2016-03-04  6:38               ` Joonsoo Kim
2016-03-04  6:38               ` Joonsoo Kim
2016-03-04  7:35               ` Hanjun Guo
2016-03-04  7:35                 ` Hanjun Guo
2016-03-04  7:35                 ` Hanjun Guo
2016-03-07  4:34                 ` Joonsoo Kim
2016-03-07  4:34                   ` Joonsoo Kim
2016-03-07  4:34                   ` Joonsoo Kim
2016-03-07  8:16                   ` Leizhen (ThunderTown)
2016-03-07  8:16                     ` Leizhen (ThunderTown)
2016-03-07  8:16                     ` Leizhen (ThunderTown)
2016-03-07 18:42                     ` Laura Abbott
2016-03-07 18:42                       ` Laura Abbott
2016-03-07 18:42                       ` Laura Abbott
2016-03-08  1:54                       ` Leizhen (ThunderTown)
2016-03-08  1:54                         ` Leizhen (ThunderTown)
2016-03-08  1:54                         ` Leizhen (ThunderTown)
2016-03-09  1:23                         ` Leizhen (ThunderTown)
2016-03-09  1:23                           ` Leizhen (ThunderTown)
2016-03-09  1:23                           ` Leizhen (ThunderTown)
2016-03-11 15:00                           ` Joonsoo Kim
2016-03-11 15:00                             ` Joonsoo Kim
2016-03-11 15:00                             ` Joonsoo Kim
2016-03-11 17:07                             ` Vlastimil Babka
2016-03-11 17:07                               ` Vlastimil Babka
2016-03-11 17:07                               ` Vlastimil Babka
2016-03-14  6:49                               ` Joonsoo Kim
2016-03-14  6:49                                 ` Joonsoo Kim
2016-03-14  6:49                                 ` Joonsoo Kim
2016-03-14  7:06                                 ` Vlastimil Babka
2016-03-14  7:06                                   ` Vlastimil Babka
2016-03-14  7:06                                   ` Vlastimil Babka
2016-03-14  7:18                                   ` Joonsoo Kim
2016-03-14  7:18                                     ` Joonsoo Kim
2016-03-14  7:18                                     ` Joonsoo Kim
2016-03-14 12:30                                     ` Vlastimil Babka
2016-03-14 12:30                                       ` Vlastimil Babka
2016-03-14 12:30                                       ` Vlastimil Babka
2016-03-14 14:10                                       ` Joonsoo Kim
2016-03-14 14:10                                         ` Joonsoo Kim
2016-03-14 14:10                                         ` Joonsoo Kim
2016-03-16 12:03                                         ` Vlastimil Babka
2016-03-16 12:03                                           ` Vlastimil Babka
2016-03-16 12:03                                           ` Vlastimil Babka
2016-03-16  9:44                                     ` Hanjun Guo
2016-03-16  9:44                                       ` Hanjun Guo
2016-03-16  9:44                                       ` Hanjun Guo
2016-03-17  6:54                                       ` Joonsoo Kim
2016-03-17  6:54                                         ` Joonsoo Kim
2016-03-17  6:54                                         ` Joonsoo Kim
2016-03-17  9:24                                         ` Hanjun Guo
2016-03-17  9:24                                           ` Hanjun Guo
2016-03-17  9:24                                           ` Hanjun Guo
2016-03-17 15:31                                           ` Joonsoo Kim
2016-03-17 15:31                                             ` Joonsoo Kim
2016-03-17 15:31                                             ` Joonsoo Kim
2016-03-18  2:03                                             ` Hanjun Guo [this message]
2016-03-18  2:03                                               ` Hanjun Guo
2016-03-18  2:03                                               ` Hanjun Guo
2016-03-17 15:43                                           ` Vlastimil Babka
2016-03-17 15:43                                             ` Vlastimil Babka
2016-03-17 15:43                                             ` Vlastimil Babka
2016-03-17 15:52                                             ` Joonsoo Kim
2016-03-17 15:52                                               ` Joonsoo Kim
2016-03-17 15:52                                               ` Joonsoo Kim
2016-03-18 13:32                                               ` Lucas Stach
2016-03-18 13:32                                                 ` Lucas Stach
2016-03-18 13:32                                                 ` Lucas Stach
2016-03-21  4:42                                                 ` Joonsoo Kim
2016-03-21  4:42                                                   ` Joonsoo Kim
2016-03-21  4:42                                                   ` Joonsoo Kim
2016-03-22 14:56                                                   ` Lucas Stach
2016-03-22 14:56                                                     ` Lucas Stach
2016-03-22 14:56                                                     ` Lucas Stach
2016-03-23  4:42                                                     ` Joonsoo Kim
2016-03-23  4:42                                                       ` Joonsoo Kim
2016-03-23  4:42                                                       ` Joonsoo Kim
2016-03-18 14:10                                               ` Vlastimil Babka
2016-03-18 14:10                                                 ` Vlastimil Babka
2016-03-18 14:10                                                 ` Vlastimil Babka
2016-03-18 14:42                                                 ` Lucas Stach
2016-03-18 14:42                                                   ` Lucas Stach
2016-03-18 14:42                                                   ` Lucas Stach
2016-03-18 20:58                                                   ` Vlastimil Babka
2016-03-18 20:58                                                     ` Vlastimil Babka
2016-03-18 20:58                                                     ` Vlastimil Babka
2016-03-22 14:47                                                     ` Lucas Stach
2016-03-22 14:47                                                       ` Lucas Stach
2016-03-22 14:47                                                       ` Lucas Stach
2016-03-19  7:24                                                 ` Hanjun Guo
2016-03-19  7:24                                                   ` Hanjun Guo
2016-03-19  7:24                                                   ` Hanjun Guo
2016-03-19 22:11                                                   ` Vlastimil Babka
2016-03-19 22:11                                                     ` Vlastimil Babka
2016-03-19 22:11                                                     ` Vlastimil Babka
2016-03-23  4:44                                                 ` Joonsoo Kim
2016-03-23  4:44                                                   ` Joonsoo Kim
2016-03-23  4:44                                                   ` Joonsoo Kim
2016-03-23  8:26                                                   ` Vlastimil Babka
2016-03-23  8:26                                                     ` Vlastimil Babka
2016-03-23  8:26                                                     ` Vlastimil Babka
2016-03-23  8:32                                                     ` Joonsoo Kim
2016-03-23  8:32                                                       ` Joonsoo Kim
2016-03-23  8:32                                                       ` Joonsoo Kim
2016-03-18 12:29                                         ` Vlastimil Babka
2016-03-18 12:29                                           ` Vlastimil Babka
2016-03-18 12:29                                           ` Vlastimil Babka
2016-03-08  4:03                     ` Hanjun Guo
2016-03-08  4:03                       ` Hanjun Guo
2016-03-08  4:03                       ` Hanjun Guo
2016-03-07 12:59                   ` Vlastimil Babka
2016-03-07 12:59                     ` Vlastimil Babka
2016-03-07 12:59                     ` Vlastimil Babka
2016-03-08  7:48                     ` Joonsoo Kim
2016-03-08  7:48                       ` Joonsoo Kim
2016-03-08  7:48                       ` Joonsoo Kim
2016-03-08 10:45                       ` Xishi Qiu
2016-03-08 10:45                         ` Xishi Qiu
2016-03-08 10:45                         ` Xishi Qiu
2016-03-08 15:36                         ` Joonsoo Kim
2016-03-08 15:36                           ` Joonsoo Kim
2016-03-08 15:36                           ` Joonsoo Kim
2016-03-09  2:18                           ` Xishi Qiu
2016-03-09  2:18                             ` Xishi Qiu
2016-03-09  2:18                             ` Xishi Qiu
2016-03-04  5:33         ` Hanjun Guo
2016-03-04  5:33           ` Hanjun Guo
2016-03-04  5:33           ` Hanjun Guo
2016-03-08  1:42           ` Xishi Qiu
2016-03-08  1:42             ` Xishi Qiu
2016-03-08  1:42             ` Xishi Qiu
2016-03-08  8:09             ` Joonsoo Kim
2016-03-08  8:09               ` Joonsoo Kim
2016-03-08  8:09               ` Joonsoo Kim
2016-03-04  6:59         ` Hanjun Guo
2016-03-04  6:59           ` Hanjun Guo
2016-03-04  6:59           ` Hanjun Guo
2016-03-07  4:40           ` Joonsoo Kim
2016-03-07  4:40             ` Joonsoo Kim
2016-03-07  4:40             ` Joonsoo Kim

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=56EB6206.4070802@huawei.com \
    --to=guohanjun@huawei.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    /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.