All of lore.kernel.org
 help / color / mirror / Atom feed
From: Vlastimil Babka <vbabka@suse.cz>
To: Joonsoo Kim <iamjoonsoo.kim@lge.com>
Cc: Andrew Morton <akpm@linux-foundation.org>,
	"Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>,
	Rik van Riel <riel@redhat.com>,
	Peter Zijlstra <peterz@infradead.org>,
	Mel Gorman <mgorman@suse.de>,
	Johannes Weiner <hannes@cmpxchg.org>,
	Minchan Kim <minchan@kernel.org>,
	Yasuaki Ishimatsu <isimatu.yasuaki@jp.fujitsu.com>,
	Zhang Yanfei <zhangyanfei@cn.fujitsu.com>,
	"Srivatsa S. Bhat" <srivatsa.bhat@linux.vnet.ibm.com>,
	Tang Chen <tangchen@cn.fujitsu.com>,
	Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>,
	Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>,
	Wen Congyang <wency@cn.fujitsu.com>,
	Marek Szyprowski <m.szyprowski@samsung.com>,
	Michal Nazarewicz <mina86@mina86.com>,
	Laura Abbott <lauraa@codeaurora.org>,
	Heesub Shin <heesub.shin@samsung.com>,
	"Aneesh Kumar K.V" <aneesh.kumar@linux.vnet.ibm.com>,
	Ritesh Harjani <ritesh.list@gmail.com>,
	t.stanislaws@samsung.com, Gioh Kim <gioh.kim@lge.com>,
	linux-mm@kvack.org, linux-kernel@vger.kernel.org
Subject: Re: [RFC PATCH v3 1/4] mm/page_alloc: fix incorrect isolation behavior by rechecking migratetype
Date: Wed, 24 Sep 2014 15:30:26 +0200	[thread overview]
Message-ID: <5422C772.3080700@suse.cz> (raw)
In-Reply-To: <20140915023106.GD2676@js1304-P5Q-DELUXE>

On 09/15/2014 04:31 AM, Joonsoo Kim wrote:
> On Mon, Sep 08, 2014 at 10:31:29AM +0200, Vlastimil Babka wrote:
>> On 08/26/2014 10:08 AM, Joonsoo Kim wrote:
>>
>>> diff --git a/mm/page_alloc.c b/mm/page_alloc.c
>>> index f86023b..51e0d13 100644
>>> --- a/mm/page_alloc.c
>>> +++ b/mm/page_alloc.c
>>> @@ -740,9 +740,15 @@ static void free_one_page(struct zone *zone,
>>>   	if (nr_scanned)
>>>   		__mod_zone_page_state(zone, NR_PAGES_SCANNED, -nr_scanned);
>>>
>>> +	if (unlikely(has_isolate_pageblock(zone))) {
>>> +		migratetype = get_pfnblock_migratetype(page, pfn);
>>> +		if (is_migrate_isolate(migratetype))
>>> +			goto skip_counting;
>>> +	}
>>> +	__mod_zone_freepage_state(zone, 1 << order, migratetype);
>>> +
>>> +skip_counting:
>>
>> Here, wouldn't a simple 'else __mod_zone_freepage_state...' look
>> better than goto + label? (same for the following 2 patches). Or
>> does that generate worse code?
>
> To remove goto label, we need two __mod_zone_freepage_state() like
> as below. On my system, it doesn't generate worse code, but, I am not
> sure that this is true if more logic would be added. I think that
> goto + label is better.

Oh right, I missed that. It's a bit subtle, but I don't see a nicer 
solution right now.

> +	if (unlikely(has_isolate_pageblock(zone))) {
> +		migratetype = get_pfnblock_migratetype(page, pfn);
> +               if (!is_migrate_isolate(migratetype))
> +                       __mod_zone_freepage_state(zone, 1 << order, migratetype);
> +       } else {
> +               __mod_zone_freepage_state(zone, 1 << order, migratetype);
>          }
>

Yeah that would be uglier I guess.

> Anyway, What do you think which one is better, either v2 or v3? Still, v3? :)

Yeah v3 is much better than v1 was, and better for backporting than v2. 
The changelogs also look quite clear. The overhead shouldn't be bad with 
the per-zone flag guarding get_pfnblock_migratetype.

I'm just not sure about patch 4 and potentially leaving unmerged budies 
behind. How would it look if instead we made sure isolation works on 
whole MAX_ORDER blocks instead?

Vlastimil

> Thanks.
>

--
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: Vlastimil Babka <vbabka@suse.cz>
To: Joonsoo Kim <iamjoonsoo.kim@lge.com>
Cc: Andrew Morton <akpm@linux-foundation.org>,
	"Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>,
	Rik van Riel <riel@redhat.com>,
	Peter Zijlstra <peterz@infradead.org>,
	Mel Gorman <mgorman@suse.de>,
	Johannes Weiner <hannes@cmpxchg.org>,
	Minchan Kim <minchan@kernel.org>,
	Yasuaki Ishimatsu <isimatu.yasuaki@jp.fujitsu.com>,
	Zhang Yanfei <zhangyanfei@cn.fujitsu.com>,
	"Srivatsa S. Bhat" <srivatsa.bhat@linux.vnet.ibm.com>,
	Tang Chen <tangchen@cn.fujitsu.com>,
	Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>,
	Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>,
	Wen Congyang <wency@cn.fujitsu.com>,
	Marek Szyprowski <m.szyprowski@samsung.com>,
	Michal Nazarewicz <mina86@mina86.com>,
	Laura Abbott <lauraa@codeaurora.org>,
	Heesub Shin <heesub.shin@samsung.com>,
	"Aneesh Kumar K.V" <aneesh.kumar@linux.vnet.ibm.com>,
	Ritesh Harjani <ritesh.list@gmail.com>,
	t.stanislaws@samsung.com, Gioh Kim <gioh.kim@lge.com>,
	linux-mm@kvack.org, linux-kernel@vger.kernel.org
Subject: Re: [RFC PATCH v3 1/4] mm/page_alloc: fix incorrect isolation behavior by rechecking migratetype
Date: Wed, 24 Sep 2014 15:30:26 +0200	[thread overview]
Message-ID: <5422C772.3080700@suse.cz> (raw)
In-Reply-To: <20140915023106.GD2676@js1304-P5Q-DELUXE>

On 09/15/2014 04:31 AM, Joonsoo Kim wrote:
> On Mon, Sep 08, 2014 at 10:31:29AM +0200, Vlastimil Babka wrote:
>> On 08/26/2014 10:08 AM, Joonsoo Kim wrote:
>>
>>> diff --git a/mm/page_alloc.c b/mm/page_alloc.c
>>> index f86023b..51e0d13 100644
>>> --- a/mm/page_alloc.c
>>> +++ b/mm/page_alloc.c
>>> @@ -740,9 +740,15 @@ static void free_one_page(struct zone *zone,
>>>   	if (nr_scanned)
>>>   		__mod_zone_page_state(zone, NR_PAGES_SCANNED, -nr_scanned);
>>>
>>> +	if (unlikely(has_isolate_pageblock(zone))) {
>>> +		migratetype = get_pfnblock_migratetype(page, pfn);
>>> +		if (is_migrate_isolate(migratetype))
>>> +			goto skip_counting;
>>> +	}
>>> +	__mod_zone_freepage_state(zone, 1 << order, migratetype);
>>> +
>>> +skip_counting:
>>
>> Here, wouldn't a simple 'else __mod_zone_freepage_state...' look
>> better than goto + label? (same for the following 2 patches). Or
>> does that generate worse code?
>
> To remove goto label, we need two __mod_zone_freepage_state() like
> as below. On my system, it doesn't generate worse code, but, I am not
> sure that this is true if more logic would be added. I think that
> goto + label is better.

Oh right, I missed that. It's a bit subtle, but I don't see a nicer 
solution right now.

> +	if (unlikely(has_isolate_pageblock(zone))) {
> +		migratetype = get_pfnblock_migratetype(page, pfn);
> +               if (!is_migrate_isolate(migratetype))
> +                       __mod_zone_freepage_state(zone, 1 << order, migratetype);
> +       } else {
> +               __mod_zone_freepage_state(zone, 1 << order, migratetype);
>          }
>

Yeah that would be uglier I guess.

> Anyway, What do you think which one is better, either v2 or v3? Still, v3? :)

Yeah v3 is much better than v1 was, and better for backporting than v2. 
The changelogs also look quite clear. The overhead shouldn't be bad with 
the per-zone flag guarding get_pfnblock_migratetype.

I'm just not sure about patch 4 and potentially leaving unmerged budies 
behind. How would it look if instead we made sure isolation works on 
whole MAX_ORDER blocks instead?

Vlastimil

> Thanks.
>


  reply	other threads:[~2014-09-24 13:30 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-08-26  8:08 [RFC PATCH v3 0/4] fix freepage count problems in memory isolation Joonsoo Kim
2014-08-26  8:08 ` Joonsoo Kim
2014-08-26  8:08 ` [RFC PATCH v3 1/4] mm/page_alloc: fix incorrect isolation behavior by rechecking migratetype Joonsoo Kim
2014-08-26  8:08   ` Joonsoo Kim
2014-08-29 17:46   ` Naoya Horiguchi
2014-08-29 17:46     ` Naoya Horiguchi
2014-09-01  0:14     ` Joonsoo Kim
2014-09-01  0:14       ` Joonsoo Kim
2014-09-08  8:31   ` Vlastimil Babka
2014-09-08  8:31     ` Vlastimil Babka
2014-09-15  2:31     ` Joonsoo Kim
2014-09-15  2:31       ` Joonsoo Kim
2014-09-24 13:30       ` Vlastimil Babka [this message]
2014-09-24 13:30         ` Vlastimil Babka
2014-09-25  6:13         ` Joonsoo Kim
2014-09-25  6:13           ` Joonsoo Kim
2014-08-26  8:08 ` [RFC PATCH v3 2/4] mm/page_alloc: add freepage on isolate pageblock to correct buddy list Joonsoo Kim
2014-08-26  8:08   ` Joonsoo Kim
2014-08-26  8:08 ` [RFC PATCH v3 3/4] mm/page_alloc: move migratetype recheck logic to __free_one_page() Joonsoo Kim
2014-08-26  8:08   ` Joonsoo Kim
2014-08-26  8:08 ` [RFC PATCH v3 4/4] mm/page_alloc: restrict max order of merging on isolated pageblock Joonsoo Kim
2014-08-26  8:08   ` Joonsoo Kim
2014-08-29 16:52   ` Naoya Horiguchi
2014-08-29 16:52     ` Naoya Horiguchi
2014-09-01  0:15     ` Joonsoo Kim
2014-09-01  0:15       ` Joonsoo Kim
2014-09-15  5:09 ` [RFC PATCH v3 0/4] fix freepage count problems in memory isolation Minchan Kim
2014-09-15  5:09   ` Minchan 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=5422C772.3080700@suse.cz \
    --to=vbabka@suse.cz \
    --cc=akpm@linux-foundation.org \
    --cc=aneesh.kumar@linux.vnet.ibm.com \
    --cc=b.zolnierkie@samsung.com \
    --cc=gioh.kim@lge.com \
    --cc=hannes@cmpxchg.org \
    --cc=heesub.shin@samsung.com \
    --cc=iamjoonsoo.kim@lge.com \
    --cc=isimatu.yasuaki@jp.fujitsu.com \
    --cc=kirill.shutemov@linux.intel.com \
    --cc=lauraa@codeaurora.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=m.szyprowski@samsung.com \
    --cc=mgorman@suse.de \
    --cc=mina86@mina86.com \
    --cc=minchan@kernel.org \
    --cc=n-horiguchi@ah.jp.nec.com \
    --cc=peterz@infradead.org \
    --cc=riel@redhat.com \
    --cc=ritesh.list@gmail.com \
    --cc=srivatsa.bhat@linux.vnet.ibm.com \
    --cc=t.stanislaws@samsung.com \
    --cc=tangchen@cn.fujitsu.com \
    --cc=wency@cn.fujitsu.com \
    --cc=zhangyanfei@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.