From: Seth Jennings <sjenning@linux.vnet.ibm.com>
To: Nitin Gupta <ngupta@vflare.org>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Andrew Morton <akpm@linux-foundation.org>,
Minchan Kim <minchan@kernel.org>,
Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
Dan Magenheimer <dan.magenheimer@oracle.com>,
Robert Jennings <rcj@linux.vnet.ibm.com>,
Jenifer Hopper <jhopper@us.ibm.com>, Mel Gorman <mgorman@suse.de>,
Johannes Weiner <jweiner@redhat.com>,
Rik van Riel <riel@redhat.com>,
Larry Woodman <lwoodman@redhat.com>,
linux-mm@kvack.org, linux-kernel@vger.kernel.org,
devel@driverdev.osuosl.org
Subject: Re: [PATCHv2 4/9] staging: zsmalloc: make CLASS_DELTA relative to PAGE_SIZE
Date: Fri, 25 Jan 2013 10:38:52 -0600 [thread overview]
Message-ID: <5102B51C.6070305@linux.vnet.ibm.com> (raw)
In-Reply-To: <CAPkvG_c48ZfwBRKCXSZrnVo=GgoLpqsRrF=8DEAwfFFVhb=1ZA@mail.gmail.com>
On 01/24/2013 06:17 PM, Nitin Gupta wrote:
> On Mon, Jan 7, 2013 at 12:24 PM, Seth Jennings
> <sjenning@linux.vnet.ibm.com> wrote:
>> Right now ZS_SIZE_CLASS_DELTA is hardcoded to be 16. This
>> creates 254 classes for systems with 4k pages. However, on
>> PPC64 with 64k pages, it creates 4095 classes which is far
>> too many.
>>
>> This patch makes ZS_SIZE_CLASS_DELTA relative to PAGE_SIZE
>> so that regardless of the page size, there will be the same
>> number of classes.
>>
>> Signed-off-by: Seth Jennings <sjenning@linux.vnet.ibm.com>
>> ---
>> drivers/staging/zsmalloc/zsmalloc-main.c | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/drivers/staging/zsmalloc/zsmalloc-main.c b/drivers/staging/zsmalloc/zsmalloc-main.c
>> index 825e124..3543047 100644
>> --- a/drivers/staging/zsmalloc/zsmalloc-main.c
>> +++ b/drivers/staging/zsmalloc/zsmalloc-main.c
>> @@ -141,7 +141,7 @@
>> * ZS_MIN_ALLOC_SIZE and ZS_SIZE_CLASS_DELTA must be multiple of ZS_ALIGN
>> * (reason above)
>> */
>> -#define ZS_SIZE_CLASS_DELTA 16
>> +#define ZS_SIZE_CLASS_DELTA (PAGE_SIZE >> 8)
>> #define ZS_SIZE_CLASSES ((ZS_MAX_ALLOC_SIZE - ZS_MIN_ALLOC_SIZE) / \
>> ZS_SIZE_CLASS_DELTA + 1)
>>
>
> Actually, there is no point creating size classes beyond [M/(M+1)] * PAGE_SIZE
> where M is the maximum number of system pages in a zspage.
Agreed.
> All size classes
> beyond this size can be collapsed with PAGE_SIZE size class. This can
> significantly reduce number of size classes created but I think changes needed
> to do this would be more involved, so perhaps, should be done in another
> patch.
I agree there could be some optimization here, but those extra classes
really aren't doing any harm that I can see.
> Can you please resend part of this series (patch 1 to patch 4) which deals
> just with zsmalloc separately? I haven't yet looked into zswap itself so would
> help with zsmalloc bits are separated out.
Working it now.
Thanks,
Seth
--
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: Seth Jennings <sjenning@linux.vnet.ibm.com>
To: Nitin Gupta <ngupta@vflare.org>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Andrew Morton <akpm@linux-foundation.org>,
Minchan Kim <minchan@kernel.org>,
Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
Dan Magenheimer <dan.magenheimer@oracle.com>,
Robert Jennings <rcj@linux.vnet.ibm.com>,
Jenifer Hopper <jhopper@us.ibm.com>, Mel Gorman <mgorman@suse.de>,
Johannes Weiner <jweiner@redhat.com>,
Rik van Riel <riel@redhat.com>,
Larry Woodman <lwoodman@redhat.com>,
linux-mm@kvack.org, linux-kernel@vger.kernel.org,
devel@driverdev.osuosl.org
Subject: Re: [PATCHv2 4/9] staging: zsmalloc: make CLASS_DELTA relative to PAGE_SIZE
Date: Fri, 25 Jan 2013 10:38:52 -0600 [thread overview]
Message-ID: <5102B51C.6070305@linux.vnet.ibm.com> (raw)
In-Reply-To: <CAPkvG_c48ZfwBRKCXSZrnVo=GgoLpqsRrF=8DEAwfFFVhb=1ZA@mail.gmail.com>
On 01/24/2013 06:17 PM, Nitin Gupta wrote:
> On Mon, Jan 7, 2013 at 12:24 PM, Seth Jennings
> <sjenning@linux.vnet.ibm.com> wrote:
>> Right now ZS_SIZE_CLASS_DELTA is hardcoded to be 16. This
>> creates 254 classes for systems with 4k pages. However, on
>> PPC64 with 64k pages, it creates 4095 classes which is far
>> too many.
>>
>> This patch makes ZS_SIZE_CLASS_DELTA relative to PAGE_SIZE
>> so that regardless of the page size, there will be the same
>> number of classes.
>>
>> Signed-off-by: Seth Jennings <sjenning@linux.vnet.ibm.com>
>> ---
>> drivers/staging/zsmalloc/zsmalloc-main.c | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/drivers/staging/zsmalloc/zsmalloc-main.c b/drivers/staging/zsmalloc/zsmalloc-main.c
>> index 825e124..3543047 100644
>> --- a/drivers/staging/zsmalloc/zsmalloc-main.c
>> +++ b/drivers/staging/zsmalloc/zsmalloc-main.c
>> @@ -141,7 +141,7 @@
>> * ZS_MIN_ALLOC_SIZE and ZS_SIZE_CLASS_DELTA must be multiple of ZS_ALIGN
>> * (reason above)
>> */
>> -#define ZS_SIZE_CLASS_DELTA 16
>> +#define ZS_SIZE_CLASS_DELTA (PAGE_SIZE >> 8)
>> #define ZS_SIZE_CLASSES ((ZS_MAX_ALLOC_SIZE - ZS_MIN_ALLOC_SIZE) / \
>> ZS_SIZE_CLASS_DELTA + 1)
>>
>
> Actually, there is no point creating size classes beyond [M/(M+1)] * PAGE_SIZE
> where M is the maximum number of system pages in a zspage.
Agreed.
> All size classes
> beyond this size can be collapsed with PAGE_SIZE size class. This can
> significantly reduce number of size classes created but I think changes needed
> to do this would be more involved, so perhaps, should be done in another
> patch.
I agree there could be some optimization here, but those extra classes
really aren't doing any harm that I can see.
> Can you please resend part of this series (patch 1 to patch 4) which deals
> just with zsmalloc separately? I haven't yet looked into zswap itself so would
> help with zsmalloc bits are separated out.
Working it now.
Thanks,
Seth
next prev parent reply other threads:[~2013-01-25 16:38 UTC|newest]
Thread overview: 86+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-01-07 20:24 [PATCHv2 0/9] zswap: compressed swap caching Seth Jennings
2013-01-07 20:24 ` Seth Jennings
2013-01-07 20:24 ` [PATCHv2 1/9] staging: zsmalloc: add gfp flags to zs_create_pool Seth Jennings
2013-01-07 20:24 ` Seth Jennings
2013-01-25 0:08 ` Nitin Gupta
2013-01-25 0:08 ` Nitin Gupta
2013-01-25 1:33 ` Minchan Kim
2013-01-25 1:33 ` Minchan Kim
2013-01-25 15:07 ` Seth Jennings
2013-01-25 15:07 ` Seth Jennings
2013-01-25 15:56 ` Dan Magenheimer
2013-01-25 15:56 ` Dan Magenheimer
2013-01-28 2:59 ` Minchan Kim
2013-01-28 2:59 ` Minchan Kim
2013-01-30 16:11 ` Konrad Rzeszutek Wilk
2013-01-30 16:11 ` Konrad Rzeszutek Wilk
2013-01-31 5:21 ` Minchan Kim
2013-01-31 5:21 ` Minchan Kim
2013-01-25 21:26 ` Rik van Riel
2013-01-25 21:26 ` Rik van Riel
2013-01-07 20:24 ` [PATCHv2 2/9] staging: zsmalloc: remove unsed pool name Seth Jennings
2013-01-07 20:24 ` Seth Jennings
2013-01-25 0:09 ` Nitin Gupta
2013-01-25 0:09 ` Nitin Gupta
2013-01-25 21:50 ` Rik van Riel
2013-01-25 21:50 ` Rik van Riel
2013-01-07 20:24 ` [PATCHv2 3/9] staging: zsmalloc: add page alloc/free callbacks Seth Jennings
2013-01-07 20:24 ` Seth Jennings
2013-01-25 0:11 ` Nitin Gupta
2013-01-25 0:11 ` Nitin Gupta
2013-01-25 21:55 ` Rik van Riel
2013-01-25 21:55 ` Rik van Riel
2013-01-07 20:24 ` [PATCHv2 4/9] staging: zsmalloc: make CLASS_DELTA relative to PAGE_SIZE Seth Jennings
2013-01-07 20:24 ` Seth Jennings
2013-01-25 0:17 ` Nitin Gupta
2013-01-25 0:17 ` Nitin Gupta
2013-01-25 16:38 ` Seth Jennings [this message]
2013-01-25 16:38 ` Seth Jennings
2013-01-07 20:24 ` [PATCHv2 5/9] debugfs: add get/set for atomic types Seth Jennings
2013-01-07 20:24 ` Seth Jennings
2013-01-07 20:32 ` Greg Kroah-Hartman
2013-01-07 20:32 ` Greg Kroah-Hartman
2013-01-07 20:41 ` Seth Jennings
2013-01-07 20:41 ` Seth Jennings
2013-01-25 16:45 ` Seth Jennings
2013-01-25 16:45 ` Seth Jennings
2013-01-25 21:35 ` Greg Kroah-Hartman
2013-01-25 21:35 ` Greg Kroah-Hartman
2013-01-07 20:24 ` [PATCHv2 6/9] zsmalloc: promote to lib/ Seth Jennings
2013-01-07 20:24 ` Seth Jennings
2013-01-28 4:01 ` Minchan Kim
2013-01-28 4:01 ` Minchan Kim
2013-01-28 4:32 ` Minchan Kim
2013-01-28 4:32 ` Minchan Kim
2013-01-28 17:41 ` Seth Jennings
2013-01-28 17:41 ` Seth Jennings
2013-01-07 20:24 ` [PATCHv2 7/9] mm: break up swap_writepage() for frontswap backends Seth Jennings
2013-01-07 20:24 ` Seth Jennings
2013-01-28 4:22 ` Minchan Kim
2013-01-28 4:22 ` Minchan Kim
2013-01-28 17:26 ` Seth Jennings
2013-01-28 17:26 ` Seth Jennings
2013-01-28 23:46 ` Minchan Kim
2013-01-28 23:46 ` Minchan Kim
2013-01-07 20:24 ` [PATCHv2 8/9] zswap: add to mm/ Seth Jennings
2013-01-07 20:24 ` Seth Jennings
2013-01-08 17:15 ` Dave Hansen
2013-01-08 17:15 ` Dave Hansen
2013-01-08 17:54 ` Dan Magenheimer
2013-01-08 17:54 ` Dan Magenheimer
2013-01-25 22:44 ` Rik van Riel
2013-01-25 22:44 ` Rik van Riel
2013-01-25 23:15 ` Dan Magenheimer
2013-01-25 23:15 ` Dan Magenheimer
2013-01-28 15:27 ` Seth Jennings
2013-01-28 15:27 ` Seth Jennings
2013-01-29 10:21 ` Lord Glauber Costa of Sealand
2013-01-29 10:21 ` Lord Glauber Costa of Sealand
2013-02-07 16:13 ` Seth Jennings
2013-02-07 16:13 ` Seth Jennings
2013-02-11 19:13 ` Dan Magenheimer
2013-02-11 19:13 ` Dan Magenheimer
2013-01-07 20:24 ` [PATCHv2 9/9] zswap: add documentation Seth Jennings
2013-01-07 20:24 ` Seth Jennings
2013-01-22 18:10 ` [PATCHv2 0/9] zswap: compressed swap caching Seth Jennings
2013-01-22 18:10 ` Seth Jennings
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=5102B51C.6070305@linux.vnet.ibm.com \
--to=sjenning@linux.vnet.ibm.com \
--cc=akpm@linux-foundation.org \
--cc=dan.magenheimer@oracle.com \
--cc=devel@driverdev.osuosl.org \
--cc=gregkh@linuxfoundation.org \
--cc=jhopper@us.ibm.com \
--cc=jweiner@redhat.com \
--cc=konrad.wilk@oracle.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=lwoodman@redhat.com \
--cc=mgorman@suse.de \
--cc=minchan@kernel.org \
--cc=ngupta@vflare.org \
--cc=rcj@linux.vnet.ibm.com \
--cc=riel@redhat.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.