lkml.org 
[lkml]   [2012]   [Jun]   [25]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    Subject[PATCH 0/3] zsmalloc: remove x86 dependency
    Date
    This patchset continues/adapts Minchan Kim's work
    to remove the x86 dependency from zsmalloc.

    However, instead of whitelisting archs with support for
    local_tlb_flush_kernel_range() in the zsmalloc Kconfig,
    this patchset allows zsmalloc to work with all archs
    through the addition of a generic/portable page
    mapping methods (i.e. memcpy) when the required tlb
    flushing functionality is not supported by the arch.

    The arch advertises support for local_tlb_flush_kernel_range()
    by defining __HAVE_LOCAL_FLUSH_TLB_KERNEL_RANGE

    The third patch in the set adds local_tlb_flush_kernel_range()
    support to x86. In my single-threaded tests using zcache,
    using the pte/tlb mapping method was 40% faster than the generic
    method. So while the third patch is optional, it is highly
    recommended.

    Alex Shi is working on a large x86 patchset that includes
    functionality similar to the third patch, however, it seems
    that this patchset is getting very little attention and
    includes much more than is needed for zsmalloc's purposes.

    https://lkml.org/lkml/2012/6/12/116

    Future work:
    - Add __HAVE_LOCAL_FLUSH_TLB_KERNEL_RANGE definition to
    archs that already have local_tlb_flush_kernel_range()
    - Add mapping mode flags (RO, WO, RW) to zs_map_object()
    to avoid unnecessary copies in the generic case

    Based on Greg's staging-next.

    Seth Jennings (3):
    zram/zcache: swtich Kconfig dependency from X86 to ZSMALLOC
    zsmalloc: add generic path and remove x86 dependency
    x86: add local_tlb_flush_kernel_range()

    arch/x86/include/asm/tlbflush.h | 21 +++++
    drivers/staging/zcache/Kconfig | 5 +-
    drivers/staging/zram/Kconfig | 5 +-
    drivers/staging/zsmalloc/Kconfig | 4 -
    drivers/staging/zsmalloc/zsmalloc-main.c | 136 ++++++++++++++++++++++++------
    drivers/staging/zsmalloc/zsmalloc_int.h | 5 +-
    6 files changed, 138 insertions(+), 38 deletions(-)

    --
    1.7.9.5



    \
     
     \ /
      Last update: 2012-06-25 19:21    [W:4.110 / U:0.132 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site