lkml.org 
[lkml]   [2013]   [Feb]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH] zsmalloc: Add Kconfig for enabling PTE method
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



\
 
 \ /
  Last update: 2013-02-18 20:01    [W:0.087 / U:0.020 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site