On 02/05/2013 08:17 PM, 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].
> 
> In summary, copy-based method is 3 times fater in x86 while pte-based
> is 6 times faster in ARM.
> 
> 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-20130205.
> 
> [1] https://lkml.org/lkml/2012/7/11/58
> 
> * Changelog from v1
>   * Fix CONFIG_PGTABLE_MAPPING in zsmalloc-main.c - Greg
> 
> Cc: Andrew Morton <[email protected]>
> Cc: Seth Jennings <[email protected]>
> Cc: Nitin Gupta <[email protected]>
> Cc: Dan Magenheimer <[email protected]>
> Cc: Konrad Rzeszutek Wilk <[email protected]>
> Signed-off-by: Minchan Kim <[email protected]>
> ---
>  drivers/staging/zsmalloc/Kconfig         | 12 ++++++++++++
>  drivers/staging/zsmalloc/zsmalloc-main.c | 20 +++++---------------
>  2 files changed, 17 insertions(+), 15 deletions(-)
> 
> diff --git a/drivers/staging/zsmalloc/Kconfig 
> b/drivers/staging/zsmalloc/Kconfig
> index 9084565..232b3b6 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 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

Hmm, I'm not sure we want to include this link in the Kconfig.  While  I
don't have any plans to take that repo down, I could see it getting
stale at some point for yet-to-be-determined reasons.

Of course, without this tool (or something like it) it is hard to know
which option is better for your particular platform.

Would having this in a Documentation/ file, once one exists, be better?

Seth

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

Reply via email to