From: Minchan Kim <minchan@kernel.org>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: Rik van Riel <riel@redhat.com>,
YiPing Xu <xuyiping@hisilicon.com>,
aquini@redhat.com, rknize@motorola.com,
Sergey Senozhatsky <sergey.senozhatsky@gmail.com>,
Chan Gyun Jeong <chan.jeong@lge.com>,
Hugh Dickins <hughd@google.com>,
linux-kernel@vger.kernel.org, Al Viro <viro@ZenIV.linux.org.uk>,
virtualization@lists.linux-foundation.org, bfields@fieldses.org,
linux-mm@kvack.org, Gioh Kim <gi-oh.kim@profitbricks.com>,
koct9i@gmail.com, Sangseok Lee <sangseok.lee@lge.com>,
jlayton@poochiereds.net, Joonsoo Kim <iamjoonsoo.kim@lge.com>,
Vlastimil Babka <vbabka@suse.cz>, Mel Gorman <mgorman@suse.de>
Subject: Re: [PATCH v2 00/18] Support non-lru page migration
Date: Mon, 28 Mar 2016 14:08:41 +0900 [thread overview]
Message-ID: <20160328050841.GC31023@bbox> (raw)
In-Reply-To: <1458541867-27380-1-git-send-email-minchan@kernel.org>
Hello Andrew,
On Mon, Mar 21, 2016 at 03:30:49PM +0900, Minchan Kim wrote:
> Recently, I got many reports about perfermance degradation
> in embedded system(Android mobile phone, webOS TV and so on)
> and failed to fork easily.
>
> The problem was fragmentation caused by zram and GPU driver
> pages. Their pages cannot be migrated so compaction cannot
> work well, either so reclaimer ends up shrinking all of working
> set pages. It made system very slow and even to fail to fork
> easily.
>
> Other pain point is that they cannot work with CMA.
> Most of CMA memory space could be idle(ie, it could be used
> for movable pages unless driver is using) but if driver(i.e.,
> zram) cannot migrate his page, that memory space could be
> wasted. In our product which has big CMA memory, it reclaims
> zones too exccessively although there are lots of free space
> in CMA so system was very slow easily.
>
> To solve these problem, this patch try to add facility to
> migrate non-lru pages via introducing new friend functions
> of migratepage in address_space_operation and new page flags.
>
> (isolate_page, putback_page)
> (PG_movable, PG_isolated)
>
> For details, please read description in
> "mm/compaction: support non-lru movable page migration".
>
> Originally, Gioh Kim tried to support this feature but he moved
> so I took over the work. But I took many code from his work and
> changed a little bit.
> Thanks, Gioh!
>
> And I should mention Konstantin Khlebnikov. He really heped Gioh
> at that time so he should deserve to have many credit, too.
> Thanks, Konstantin!
>
> This patchset consists of five parts
>
> 1. clean up migration
> mm: use put_page to free page instead of putback_lru_page
>
> 2. zsmalloc clean-up for preparing page migration
> zsmalloc: use first_page rather than page
> zsmalloc: clean up many BUG_ON
> zsmalloc: reordering function parameter
> zsmalloc: remove unused pool param in obj_free
> zsmalloc: keep max_object in size_class
> zsmalloc: squeeze inuse into page->mapping
> zsmalloc: squeeze freelist into page->mapping
> zsmalloc: move struct zs_meta from mapping to freelist
> zsmalloc: factor page chain functionality out
> zsmalloc: separate free_zspage from putback_zspage
> zsmalloc: zs_compact refactoring
In this series, [2-5] are clean up regardless of goal of the patchset
so it could be merged independently.
I want to reduce patchset size in next post.
If anyone are not against, could you merge cleanup patchset?
zsmalloc: use first_page rather than page
zsmalloc: clean up many BUG_ON
zsmalloc: reordering function parameter
zsmalloc: remove unused pool param in obj_free
Thanks.
WARNING: multiple messages have this Message-ID (diff)
From: Minchan Kim <minchan@kernel.org>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org,
jlayton@poochiereds.net, bfields@fieldses.org,
Vlastimil Babka <vbabka@suse.cz>,
Joonsoo Kim <iamjoonsoo.kim@lge.com>,
koct9i@gmail.com, aquini@redhat.com,
virtualization@lists.linux-foundation.org,
Mel Gorman <mgorman@suse.de>, Hugh Dickins <hughd@google.com>,
Sergey Senozhatsky <sergey.senozhatsky@gmail.com>,
Rik van Riel <riel@redhat.com>,
rknize@motorola.com, Gioh Kim <gi-oh.kim@profitbricks.com>,
Sangseok Lee <sangseok.lee@lge.com>,
Chan Gyun Jeong <chan.jeong@lge.com>,
Al Viro <viro@ZenIV.linux.org.uk>,
YiPing Xu <xuyiping@hisilicon.com>
Subject: Re: [PATCH v2 00/18] Support non-lru page migration
Date: Mon, 28 Mar 2016 14:08:41 +0900 [thread overview]
Message-ID: <20160328050841.GC31023@bbox> (raw)
In-Reply-To: <1458541867-27380-1-git-send-email-minchan@kernel.org>
Hello Andrew,
On Mon, Mar 21, 2016 at 03:30:49PM +0900, Minchan Kim wrote:
> Recently, I got many reports about perfermance degradation
> in embedded system(Android mobile phone, webOS TV and so on)
> and failed to fork easily.
>
> The problem was fragmentation caused by zram and GPU driver
> pages. Their pages cannot be migrated so compaction cannot
> work well, either so reclaimer ends up shrinking all of working
> set pages. It made system very slow and even to fail to fork
> easily.
>
> Other pain point is that they cannot work with CMA.
> Most of CMA memory space could be idle(ie, it could be used
> for movable pages unless driver is using) but if driver(i.e.,
> zram) cannot migrate his page, that memory space could be
> wasted. In our product which has big CMA memory, it reclaims
> zones too exccessively although there are lots of free space
> in CMA so system was very slow easily.
>
> To solve these problem, this patch try to add facility to
> migrate non-lru pages via introducing new friend functions
> of migratepage in address_space_operation and new page flags.
>
> (isolate_page, putback_page)
> (PG_movable, PG_isolated)
>
> For details, please read description in
> "mm/compaction: support non-lru movable page migration".
>
> Originally, Gioh Kim tried to support this feature but he moved
> so I took over the work. But I took many code from his work and
> changed a little bit.
> Thanks, Gioh!
>
> And I should mention Konstantin Khlebnikov. He really heped Gioh
> at that time so he should deserve to have many credit, too.
> Thanks, Konstantin!
>
> This patchset consists of five parts
>
> 1. clean up migration
> mm: use put_page to free page instead of putback_lru_page
>
> 2. zsmalloc clean-up for preparing page migration
> zsmalloc: use first_page rather than page
> zsmalloc: clean up many BUG_ON
> zsmalloc: reordering function parameter
> zsmalloc: remove unused pool param in obj_free
> zsmalloc: keep max_object in size_class
> zsmalloc: squeeze inuse into page->mapping
> zsmalloc: squeeze freelist into page->mapping
> zsmalloc: move struct zs_meta from mapping to freelist
> zsmalloc: factor page chain functionality out
> zsmalloc: separate free_zspage from putback_zspage
> zsmalloc: zs_compact refactoring
In this series, [2-5] are clean up regardless of goal of the patchset
so it could be merged independently.
I want to reduce patchset size in next post.
If anyone are not against, could you merge cleanup patchset?
zsmalloc: use first_page rather than page
zsmalloc: clean up many BUG_ON
zsmalloc: reordering function parameter
zsmalloc: remove unused pool param in obj_free
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: Minchan Kim <minchan@kernel.org>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org,
jlayton@poochiereds.net, bfields@fieldses.org,
Vlastimil Babka <vbabka@suse.cz>,
Joonsoo Kim <iamjoonsoo.kim@lge.com>,
koct9i@gmail.com, aquini@redhat.com,
virtualization@lists.linux-foundation.org,
Mel Gorman <mgorman@suse.de>, Hugh Dickins <hughd@google.com>,
Sergey Senozhatsky <sergey.senozhatsky@gmail.com>,
Rik van Riel <riel@redhat.com>,
rknize@motorola.com, Gioh Kim <gi-oh.kim@profitbricks.com>,
Sangseok Lee <sangseok.lee@lge.com>,
Chan Gyun Jeong <chan.jeong@lge.com>,
Al Viro <viro@ZenIV.linux.org.uk>,
YiPing Xu <xuyiping@hisilicon.com>
Subject: Re: [PATCH v2 00/18] Support non-lru page migration
Date: Mon, 28 Mar 2016 14:08:41 +0900 [thread overview]
Message-ID: <20160328050841.GC31023@bbox> (raw)
In-Reply-To: <1458541867-27380-1-git-send-email-minchan@kernel.org>
Hello Andrew,
On Mon, Mar 21, 2016 at 03:30:49PM +0900, Minchan Kim wrote:
> Recently, I got many reports about perfermance degradation
> in embedded system(Android mobile phone, webOS TV and so on)
> and failed to fork easily.
>
> The problem was fragmentation caused by zram and GPU driver
> pages. Their pages cannot be migrated so compaction cannot
> work well, either so reclaimer ends up shrinking all of working
> set pages. It made system very slow and even to fail to fork
> easily.
>
> Other pain point is that they cannot work with CMA.
> Most of CMA memory space could be idle(ie, it could be used
> for movable pages unless driver is using) but if driver(i.e.,
> zram) cannot migrate his page, that memory space could be
> wasted. In our product which has big CMA memory, it reclaims
> zones too exccessively although there are lots of free space
> in CMA so system was very slow easily.
>
> To solve these problem, this patch try to add facility to
> migrate non-lru pages via introducing new friend functions
> of migratepage in address_space_operation and new page flags.
>
> (isolate_page, putback_page)
> (PG_movable, PG_isolated)
>
> For details, please read description in
> "mm/compaction: support non-lru movable page migration".
>
> Originally, Gioh Kim tried to support this feature but he moved
> so I took over the work. But I took many code from his work and
> changed a little bit.
> Thanks, Gioh!
>
> And I should mention Konstantin Khlebnikov. He really heped Gioh
> at that time so he should deserve to have many credit, too.
> Thanks, Konstantin!
>
> This patchset consists of five parts
>
> 1. clean up migration
> mm: use put_page to free page instead of putback_lru_page
>
> 2. zsmalloc clean-up for preparing page migration
> zsmalloc: use first_page rather than page
> zsmalloc: clean up many BUG_ON
> zsmalloc: reordering function parameter
> zsmalloc: remove unused pool param in obj_free
> zsmalloc: keep max_object in size_class
> zsmalloc: squeeze inuse into page->mapping
> zsmalloc: squeeze freelist into page->mapping
> zsmalloc: move struct zs_meta from mapping to freelist
> zsmalloc: factor page chain functionality out
> zsmalloc: separate free_zspage from putback_zspage
> zsmalloc: zs_compact refactoring
In this series, [2-5] are clean up regardless of goal of the patchset
so it could be merged independently.
I want to reduce patchset size in next post.
If anyone are not against, could you merge cleanup patchset?
zsmalloc: use first_page rather than page
zsmalloc: clean up many BUG_ON
zsmalloc: reordering function parameter
zsmalloc: remove unused pool param in obj_free
Thanks.
next prev parent reply other threads:[~2016-03-28 5:08 UTC|newest]
Thread overview: 91+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-03-21 6:30 [PATCH v2 00/18] Support non-lru page migration Minchan Kim
2016-03-21 6:30 ` Minchan Kim
2016-03-21 6:30 ` [PATCH v2 01/18] mm: use put_page to free page instead of putback_lru_page Minchan Kim
2016-03-21 6:30 ` Minchan Kim
2016-03-21 7:13 ` Chulmin Kim
2016-03-21 23:56 ` Minchan Kim
2016-03-21 6:30 ` Minchan Kim
2016-03-21 6:30 ` [PATCH v2 02/18] zsmalloc: use first_page rather than page Minchan Kim
2016-03-21 6:30 ` Minchan Kim
2016-03-21 6:30 ` Minchan Kim
2016-03-21 6:30 ` [PATCH v2 03/18] zsmalloc: clean up many BUG_ON Minchan Kim
2016-03-21 6:30 ` Minchan Kim
2016-03-21 6:30 ` Minchan Kim
2016-03-21 6:30 ` [PATCH v2 04/18] zsmalloc: reordering function parameter Minchan Kim
2016-03-21 6:30 ` Minchan Kim
2016-03-21 6:30 ` Minchan Kim
2016-03-21 6:30 ` [PATCH v2 05/18] zsmalloc: remove unused pool param in obj_free Minchan Kim
2016-03-21 6:30 ` Minchan Kim
2016-03-21 6:30 ` Minchan Kim
2016-03-21 6:30 ` [PATCH v2 06/18] zsmalloc: keep max_object in size_class Minchan Kim
2016-03-21 6:30 ` Minchan Kim
2016-03-21 6:30 ` Minchan Kim
2016-03-21 6:30 ` [PATCH v2 07/18] zsmalloc: squeeze inuse into page->mapping Minchan Kim
2016-03-21 6:30 ` Minchan Kim
2016-03-21 6:30 ` Minchan Kim
2016-03-21 6:30 ` [PATCH v2 08/18] zsmalloc: squeeze freelist " Minchan Kim
2016-03-21 6:30 ` Minchan Kim
2016-03-21 6:30 ` Minchan Kim
2016-03-21 6:30 ` [PATCH v2 09/18] zsmalloc: move struct zs_meta from mapping to freelist Minchan Kim
2016-03-21 6:30 ` Minchan Kim
2016-03-21 6:30 ` Minchan Kim
2016-03-21 6:30 ` [PATCH v2 10/18] zsmalloc: factor page chain functionality out Minchan Kim
2016-03-21 6:30 ` Minchan Kim
2016-03-21 6:30 ` Minchan Kim
2016-03-21 6:31 ` [PATCH v2 11/18] zsmalloc: separate free_zspage from putback_zspage Minchan Kim
2016-03-21 6:31 ` Minchan Kim
2016-03-21 6:31 ` Minchan Kim
2016-03-21 6:31 ` [PATCH v2 12/18] zsmalloc: zs_compact refactoring Minchan Kim
2016-03-21 6:31 ` Minchan Kim
2016-03-21 6:31 ` Minchan Kim
2016-03-21 6:31 ` [PATCH v2 13/18] mm/compaction: support non-lru movable page migration Minchan Kim
2016-03-21 6:31 ` Minchan Kim
2016-03-21 6:31 ` Minchan Kim
2016-03-22 5:50 ` Joonsoo Kim
2016-03-22 5:50 ` Joonsoo Kim
2016-03-22 5:50 ` Joonsoo Kim
2016-03-22 14:55 ` Minchan Kim
2016-03-22 14:55 ` Minchan Kim
2016-03-22 14:55 ` Minchan Kim
2016-03-23 5:05 ` Joonsoo Kim
2016-03-23 5:05 ` Joonsoo Kim
2016-03-23 5:05 ` Joonsoo Kim
2016-03-24 5:00 ` Minchan Kim
2016-03-24 5:00 ` Minchan Kim
2016-03-24 5:00 ` Minchan Kim
2016-03-22 14:55 ` Minchan Kim
2016-03-21 6:31 ` Minchan Kim
2016-03-21 6:31 ` [PATCH v2 14/18] mm/balloon: use general movable page feature into balloon Minchan Kim
2016-03-21 6:31 ` Minchan Kim
2016-03-21 8:29 ` kbuild test robot
2016-03-21 8:29 ` kbuild test robot
2016-03-22 2:19 ` Minchan Kim
2016-03-22 2:19 ` Minchan Kim
2016-03-22 2:19 ` Minchan Kim
2016-03-21 8:29 ` kbuild test robot
2016-03-21 6:31 ` Minchan Kim
2016-03-21 6:31 ` [PATCH v2 15/18] zsmalloc: migrate head page of zspage Minchan Kim
2016-03-21 6:31 ` Minchan Kim
2016-03-21 6:31 ` Minchan Kim
2016-03-21 6:31 ` [PATCH v2 16/18] zsmalloc: use single linked list for page chain Minchan Kim
2016-03-21 6:31 ` Minchan Kim
2016-03-21 6:31 ` Minchan Kim
2016-03-21 6:31 ` [PATCH v2 17/18] zsmalloc: migrate tail pages in zspage Minchan Kim
2016-03-21 6:31 ` Minchan Kim
2016-03-21 9:48 ` [PATCH] zsmalloc: fix semicolon.cocci warnings kbuild test robot
2016-03-21 9:48 ` [PATCH v2 17/18] zsmalloc: migrate tail pages in zspage kbuild test robot
2016-03-21 9:48 ` kbuild test robot
2016-03-21 9:48 ` [PATCH] zsmalloc: fix semicolon.cocci warnings kbuild test robot
2016-03-21 9:48 ` kbuild test robot
2016-03-22 2:22 ` Minchan Kim
2016-03-22 2:22 ` Minchan Kim
2016-03-22 2:22 ` Minchan Kim
2016-03-21 9:48 ` [PATCH v2 17/18] zsmalloc: migrate tail pages in zspage kbuild test robot
2016-03-21 6:31 ` Minchan Kim
2016-03-21 6:31 ` [PATCH v2 18/18] zram: use __GFP_MOVABLE for memory allocation Minchan Kim
2016-03-21 6:31 ` Minchan Kim
2016-03-21 6:31 ` Minchan Kim
2016-03-28 5:08 ` Minchan Kim [this message]
2016-03-28 5:08 ` [PATCH v2 00/18] Support non-lru page migration Minchan Kim
2016-03-28 5:08 ` Minchan Kim
-- strict thread matches above, loose matches on Subject: below --
2016-03-21 6:30 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=20160328050841.GC31023@bbox \
--to=minchan@kernel.org \
--cc=akpm@linux-foundation.org \
--cc=aquini@redhat.com \
--cc=bfields@fieldses.org \
--cc=chan.jeong@lge.com \
--cc=gi-oh.kim@profitbricks.com \
--cc=hughd@google.com \
--cc=iamjoonsoo.kim@lge.com \
--cc=jlayton@poochiereds.net \
--cc=koct9i@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=mgorman@suse.de \
--cc=riel@redhat.com \
--cc=rknize@motorola.com \
--cc=sangseok.lee@lge.com \
--cc=sergey.senozhatsky@gmail.com \
--cc=vbabka@suse.cz \
--cc=viro@ZenIV.linux.org.uk \
--cc=virtualization@lists.linux-foundation.org \
--cc=xuyiping@hisilicon.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.