linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Seth Jennings <sjenning@linux.vnet.ibm.com>
To: Ric Mason <ric.masonn@gmail.com>
Cc: Minchan Kim <minchan@kernel.org>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	linux-mm@kvack.org, linux-kernel@vger.kernel.org,
	Andrew Morton <akpm@linux-foundation.org>,
	Nitin Gupta <ngupta@vflare.org>,
	Dan Magenheimer <dan.magenheimer@oracle.com>,
	Konrad Rzeszutek Wilk <konrad@darnok.org>
Subject: Re: [PATCH] zsmalloc: Add Kconfig for enabling PTE method
Date: Mon, 18 Feb 2013 12:24:33 -0600	[thread overview]
Message-ID: <512271E1.9000105@linux.vnet.ibm.com> (raw)
In-Reply-To: <511F2721.2000305@gmail.com>

On 02/16/2013 12:28 AM, Ric Mason wrote:
> On 02/04/2013 08:23 AM, Minchan Kim wrote:
>> Zsmalloc has two methods 1) copy-based and 2) pte based to access
>> allocations that span two pages.
>> You can see history why we supported two approach from [1].
>>
>> But it was bad choice that adding hard coding to select architecture
>> which want to use pte based method. This patch removed it and adds
>> new Kconfig to select the approach.
>>
>> This patch is based on next-20130202.
>>
>> [1] https://lkml.org/lkml/2012/7/11/58
>>
>> Cc: Andrew Morton <akpm@linux-foundation.org>
>> Cc: Seth Jennings <sjenning@linux.vnet.ibm.com>
>> Cc: Nitin Gupta <ngupta@vflare.org>
>> Cc: Dan Magenheimer <dan.magenheimer@oracle.com>
>> Cc: Konrad Rzeszutek Wilk <konrad@darnok.org>
>> Signed-off-by: Minchan Kim <minchan@kernel.org>
>> ---
>>   drivers/staging/zsmalloc/Kconfig         |   12 ++++++++++++
>>   drivers/staging/zsmalloc/zsmalloc-main.c |   11 -----------
>>   2 files changed, 12 insertions(+), 11 deletions(-)
>>
>> diff --git a/drivers/staging/zsmalloc/Kconfig
>> b/drivers/staging/zsmalloc/Kconfig
>> index 9084565..2359123 100644
>> --- a/drivers/staging/zsmalloc/Kconfig
>> +++ b/drivers/staging/zsmalloc/Kconfig
>> @@ -8,3 +8,15 @@ config ZSMALLOC
>>         non-standard allocator interface where a handle, not a
>> pointer, is
>>         returned by an alloc().  This handle must be mapped in order to
>>         access the allocated space.
>> +
>> +config ZSMALLOC_PGTABLE_MAPPING
>> +        bool "Use page table mapping to access allocations that
>> span two pages"
>> +        depends on ZSMALLOC
>> +        default n
>> +        help
>> +      By default, zsmalloc uses a copy-based object mapping method
>> to access
>> +      allocations that span two pages. However, if a particular
>> architecture
>> +      performs VM mapping faster than copying, then you should
>> select this.
>> +      This causes zsmalloc to use page table mapping rather than
>> copying
>> +      for object mapping. You can check speed with zsmalloc
>> benchmark[1].
>> +      [1] https://github.com/spartacus06/zsmalloc
> 
> Is there benchmark to test zcache? eg. internal fragmentation level ...

First, zsmalloc is not used in zcache right now so just wanted to say
that.  It is used in zram and the proposed zswap
(https://lwn.net/Articles/528817/)

There is not an official benchmark.  However anything that generates
activity that will hit the frontswap or cleancache hooks will do.
These are workloads that overcommit memory and use swap, or access
file sets whose size is larger that the system page cache.

The closest thing to a fragmentation metric is an effective
compression ratio that can be calculated with debugfs attributes:

zcache_[eph|pers]_zbytes / (zcache_[eph|pers]_pageframes * PAGE_SIZE)

eph for cleancache, and pers for frontswap.

Seth


  reply	other threads:[~2013-02-18 18:25 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-02-04  0:23 [PATCH] zsmalloc: Add Kconfig for enabling PTE method Minchan Kim
2013-02-04  2:02 ` Simon Jeons
2013-02-04  2:58   ` Minchan Kim
2013-02-04 18:51 ` Greg Kroah-Hartman
2013-02-05  0:08   ` Minchan Kim
2013-02-05 19:25     ` Greg Kroah-Hartman
2013-02-06  1:17       ` Minchan Kim
2013-02-06  1:42         ` Greg Kroah-Hartman
2013-02-06  1:44           ` Minchan Kim
2013-02-16  6:28 ` Ric Mason
2013-02-18 18:24   ` Seth Jennings [this message]
2013-02-18 23:48     ` Dan Magenheimer

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=512271E1.9000105@linux.vnet.ibm.com \
    --to=sjenning@linux.vnet.ibm.com \
    --cc=akpm@linux-foundation.org \
    --cc=dan.magenheimer@oracle.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=konrad@darnok.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=minchan@kernel.org \
    --cc=ngupta@vflare.org \
    --cc=ric.masonn@gmail.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).