Messages in this thread | | | Date | Thu, 04 Dec 2014 15:49:21 +0900 | From | "박승호/책임연구원/SW Platform(연) AOT팀()" <> | Subject | Re: [RFC 0/6] zsmalloc support compaction |
| |
Hi, Minchan.
I have a question. The problem mentioned can't be resolved with compaction? Is there any reason that zsmalloc pages can't be moved by compaction operation in direct reclaim?
2014-12-02 오전 11:49에 Minchan Kim 이(가) 쓴 글: > Recently, there was issue about zsmalloc fragmentation and > I got a report from Juno that new fork failed although there > are plenty of free pages in the system. > His investigation revealed zram is one of the culprit to make > heavy fragmentation so there was no more contiguous 16K page > for pgd to fork in the ARM. > > This patchset implement *basic* zsmalloc compaction support > and zram utilizes it so admin can do > "echo 1 > /sys/block/zram0/compact" > > Actually, ideal is that mm migrate code is aware of zram pages and > migrate them out automatically without admin's manual opeartion > when system is out of contiguous page. Howver, we need more thinking > before adding more hooks to migrate.c. Even though we implement it, > we need manual trigger mode, too so I hope we could enhance > zram migration stuff based on this primitive functions in future. > > I just tested it on only x86 so need more testing on other arches. > Additionally, I should have a number for zsmalloc regression > caused by indirect layering. Unfortunately, I don't have any > ARM test machine on my desk. I will get it soon and test it. > Anyway, before further work, I'd like to hear opinion. > > Pathset is based on v3.18-rc6-mmotm-2014-11-26-15-45. > > Thanks. > > Minchan Kim (6): > zsmalloc: expand size class to support sizeof(unsigned long) > zsmalloc: add indrection layer to decouple handle from object > zsmalloc: implement reverse mapping > zsmalloc: encode alloced mark in handle object > zsmalloc: support compaction > zram: support compaction > > drivers/block/zram/zram_drv.c | 24 ++ > drivers/block/zram/zram_drv.h | 1 + > include/linux/zsmalloc.h | 1 + > mm/zsmalloc.c | 596 +++++++++++++++++++++++++++++++++++++----- > 4 files changed, 552 insertions(+), 70 deletions(-) >
| |