From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752911AbbCEFSL (ORCPT ); Thu, 5 Mar 2015 00:18:11 -0500 Received: from mailout3.samsung.com ([203.254.224.33]:57369 "EHLO mailout3.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752740AbbCEFSJ (ORCPT ); Thu, 5 Mar 2015 00:18:09 -0500 X-AuditID: cbfee68f-f791c6d000004834-ae-54f7e70e4a73 Message-id: <54F7E719.6070505@samsung.com> Date: Thu, 05 Mar 2015 14:18:17 +0900 From: Heesub Shin User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.3.0 MIME-version: 1.0 To: Minchan Kim , Andrew Morton Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Juneho Choi , Gunho Lee , Luigi Semenzato , Dan Streetman , Seth Jennings , Nitin Gupta , Jerome Marchand , Sergey Senozhatsky , Joonsoo Kim , opensource.ganesh@gmail.com Subject: Re: [PATCH v2 3/7] zsmalloc: support compaction References: <1425445292-29061-1-git-send-email-minchan@kernel.org> <1425445292-29061-4-git-send-email-minchan@kernel.org> In-reply-to: <1425445292-29061-4-git-send-email-minchan@kernel.org> Content-type: text/plain; charset=windows-1252 Content-transfer-encoding: 7bit X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrFIsWRmVeSWpSXmKPExsVy+t8zPV2+599DDC7MsbGYs34Nm8XLQ5oW F9p2s1hcmLaQ2eLg7CVMFiu7m9ksTv25zmQxqzfY4vKuOWwW99b8Z7VY9vU9u8WGllnsFq23 HrNYnHtVbLH282N2i09HH7E5CHjsnHWX3WPBplKPpxMOMnlsWtXJ5rHp0yR2j663V5g8Tsz4 zeLxft9VNo++LasYPa5/K/LY+Wkzq8fnTXIBPFFcNimpOZllqUX6dglcGccPf2Mv+MNe8evU EfYGxhNsXYycHBICJhKv3/+EssUkLtxbD2RzcQgJLGOU6L1+kqmLkQOs6O4Xa4j4dEaJ5k8T oYreMEpsXXSOBaSbV0BLouP+FVYQm0VAVeL2mlnMIM1sAtoSh7YFg4RFBSIkPqz6ygZRLijx Y/I9sFYRAX+J2ZPmM4LMZBbYzCzR3XOHHaRXWMBC4tMkb5AaIYFqiWeta8HqOQWcJVrv32QD KWEW0JO4f1ELJMwsIC+xec1bZohfDnBItB+sgLhGQOLb5EMsEK/ISmw6AFUiKXFwxQ2WCYxi s5AcNAth6CwkQxcwMq9iFE0tSC4oTkovMtYrTswtLs1L10vOz93ECEkC/TsY7x6wPsQowMGo xMM7Y+P3ECHWxLLiytxDjKZAR0xklhJNzgemmrySeENjMyMLUxNTYyNzSzMlcd6FUj+DhQTS E0tSs1NTC1KL4otKc1KLDzEycXBKNTD62D0qC2Eoeqt2nLGds3xhSU1K/FO3O38Or7fOa/I5 eLRYY37Ziu2raq1Xmd5S6v9+xp4lbGX4WlFe9293M/3S112/uXzVXZu9b46+3xormbLo6I2c r3tawysqsuasYeHNakt7J23+bcG6js8BOyQWfVkT1GXE+nKL/O1nMzMTLjuzci9cV/JUiaU4 I9FQi7moOBEAb85qzf0CAAA= X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFtrKKsWRmVeSWpSXmKPExsVy+t9jQV2+599DDBq6zC3mrF/DZvHykKbF hbbdLBYXpi1ktjg4ewmTxcruZjaLU3+uM1nM6g22uLxrDpvFvTX/WS2WfX3PbrGhZRa7Reut xywW514VW6z9/Jjd4tPRR2wOAh47Z91l91iwqdTj6YSDTB6bVnWyeWz6NIndo+vtFSaPEzN+ s3i833eVzaNvyypGj+vfijx2ftrM6vF5k1wAT1QDo01GamJKapFCal5yfkpmXrqtkndwvHO8 qZmBoa6hpYW5kkJeYm6qrZKLT4CuW2YO0EtKCmWJOaVAoYDE4mIlfTtME0JD3HQtYBojdH1D guB6jAzQQMI6xozjh7+xF/xhr/h16gh7A+MJti5GDg4JAROJu1+suxg5gUwxiQv31gOFuTiE BKYzSjR/mgjlvGGU2LroHAtIFa+AlkTH/SusIDaLgKrE7TWzmEEGsQloSxzaFgwSFhWIkPiw 6isbRLmgxI/J98BaRQT8JWZPms8IMpNZYDOzRHfPHXaQXmEBC4lPk7xBaoQEqiWeta4Fq+cU cJZovX8T7E5mAT2J+xe1QMLMAvISm9e8ZZ7AKDALyYZZCFWzkFQtYGRexSiaWpBcUJyUnmuk V5yYW1yal66XnJ+7iRGcZJ5J72Bc1WBxiFGAg1GJh/fj5u8hQqyJZcWVuYcYJTiYlUR4J50G CvGmJFZWpRblxxeV5qQWH2I0BXp/IrOUaHI+MAHmlcQbGpuYGVkamRmbmBsbK4nzKtm3hQgJ pCeWpGanphakFsH0MXFwSjUwdswy2Nvq0XY9Qnb1ZpN7f1TEbB9yfl8s2eMaMX216MuPD57/ ld++SSR3ve35owc59bpunAy+YCfabmvvbRqSVsLwU3xPPMPZoP8d8dbpDyUdnq+aXNAgrvX6 +nufkzoyD/8Y6J4w2LgjR/fZrZyP+xWMfJ1Kf1/5JxLyYJG2yeUpkefEDLjPKbEUZyQaajEX FScCAF5lKhlIAwAA DLP-Filter: Pass X-MTR: 20000000000000000@CPGS X-CFilter-Loop: Reflected Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hello Minchan, Nice work! On 03/04/2015 02:01 PM, Minchan Kim wrote: > +static void putback_zspage(struct zs_pool *pool, struct size_class *class, > + struct page *first_page) > +{ > + int class_idx; > + enum fullness_group fullness; > + > + BUG_ON(!is_first_page(first_page)); > + > + get_zspage_mapping(first_page, &class_idx, &fullness); > + insert_zspage(first_page, class, fullness); > + fullness = fix_fullness_group(class, first_page); Removal and re-insertion of zspage above can be eliminated, like this: fullness = get_fullness_group(first_page); insert_zspage(first_page, class, fullness); set_zspage_mapping(first_page, class->index, fullness); regards, heesub > if (fullness == ZS_EMPTY) { > + zs_stat_dec(class, OBJ_ALLOCATED, get_maxobj_per_zspage( > + class->size, class->pages_per_zspage)); > atomic_long_sub(class->pages_per_zspage, > &pool->pages_allocated); > + > free_zspage(first_page); > } > } > -EXPORT_SYMBOL_GPL(zs_free); > +