Re: [PATCH 3/3] zsmalloc: add page table mapping method

From: Nitin Gupta
Date: Sun Jul 22 2012 - 22:16:17 EST


On 07/22/2012 08:26 PM, Minchan Kim wrote:
> On Wed, Jul 18, 2012 at 11:55:56AM -0500, Seth Jennings wrote:
>> This patchset provides page mapping via the page table.
>> On some archs, most notably ARM, this method has been
>> demonstrated to be faster than copying.
>>
>> The logic controlling the method selection (copy vs page table)
>> is controlled by the definition of USE_PGTABLE_MAPPING which
>> is/can be defined for any arch that performs better with page
>> table mapping.
>>
>> Signed-off-by: Seth Jennings <sjenning@xxxxxxxxxxxxxxxxxx>
>> ---
>> drivers/staging/zsmalloc/zsmalloc-main.c | 182 ++++++++++++++++++++++--------
>> drivers/staging/zsmalloc/zsmalloc_int.h | 6 -
>> 2 files changed, 134 insertions(+), 54 deletions(-)
>>
>> diff --git a/drivers/staging/zsmalloc/zsmalloc-main.c b/drivers/staging/zsmalloc/zsmalloc-main.c
>> index b86133f..defe350 100644
>> --- a/drivers/staging/zsmalloc/zsmalloc-main.c
>> +++ b/drivers/staging/zsmalloc/zsmalloc-main.c
>> @@ -89,6 +89,30 @@
>> #define CLASS_IDX_MASK ((1 << CLASS_IDX_BITS) - 1)
>> #define FULLNESS_MASK ((1 << FULLNESS_BITS) - 1)
>>
>> +/*
>> + * By default, zsmalloc uses a copy-based object mapping method to access
>> + * allocations that span two pages. However, if a particular architecture
>> + * 1) Implements local_flush_tlb_kernel_range() and 2) Performs VM mapping
>> + * faster than copying, then it should be added here so that
>
> How about adding your benchmark url?
>
>> + * USE_PGTABLE_MAPPING is defined. This causes zsmalloc to use page table
>> + * mapping rather than copying
>> + * for object mapping.
>
> unnecessary new line.
>
>> +*/
>> +#if defined(CONFIG_ARM)
>> +#define USE_PGTABLE_MAPPING
>> +#endif
>
> I had no better idea and I would like to add zsmalloc into mainline.
> So no objection.
> Nitin?
>

Same here. I just cannot think of anything better for now.

Thanks for your efforts.
Nitin


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/