All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/3] zsmalloc: remove x86 dependency
@ 2012-06-25 16:14 ` Seth Jennings
  0 siblings, 0 replies; 68+ messages in thread
From: Seth Jennings @ 2012-06-25 16:14 UTC (permalink / raw)
  To: Greg Kroah-Hartman
  Cc: Seth Jennings, Andrew Morton, Dan Magenheimer,
	Konrad Rzeszutek Wilk, Nitin Gupta, Minchan Kim, Robert Jennings,
	linux-mm, devel, linux-kernel

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


^ permalink raw reply	[flat|nested] 68+ messages in thread

end of thread, other threads:[~2012-06-29  0:21 UTC | newest]

Thread overview: 68+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-06-25 16:14 [PATCH 0/3] zsmalloc: remove x86 dependency Seth Jennings
2012-06-25 16:14 ` Seth Jennings
2012-06-25 16:14 ` [PATCH 1/3] zram/zcache: swtich Kconfig dependency from X86 to ZSMALLOC Seth Jennings
2012-06-25 16:14   ` Seth Jennings
2012-06-27  2:37   ` Minchan Kim
2012-06-27  2:37     ` Minchan Kim
2012-06-27  2:43     ` Greg Kroah-Hartman
2012-06-27  2:43       ` Greg Kroah-Hartman
2012-06-27  2:49       ` Minchan Kim
2012-06-27  2:49         ` Minchan Kim
2012-06-27  3:21         ` Greg Kroah-Hartman
2012-06-27  3:21           ` Greg Kroah-Hartman
2012-06-27 15:40           ` Konrad Rzeszutek Wilk
2012-06-27 15:40             ` Konrad Rzeszutek Wilk
2012-06-27 18:55             ` Greg Kroah-Hartman
2012-06-27 18:55               ` Greg Kroah-Hartman
2012-06-27 18:52               ` Konrad Rzeszutek Wilk
2012-06-27 18:52                 ` Konrad Rzeszutek Wilk
2012-06-27 19:29                 ` Greg Kroah-Hartman
2012-06-27 19:29                   ` Greg Kroah-Hartman
2012-06-25 16:14 ` [PATCH 2/3] zsmalloc: add generic path and remove x86 dependency Seth Jennings
2012-06-25 16:14   ` Seth Jennings
2012-06-25 16:59   ` Greg Kroah-Hartman
2012-06-25 16:59     ` Greg Kroah-Hartman
2012-06-25 17:10     ` Seth Jennings
2012-06-25 17:10       ` Seth Jennings
2012-06-25 17:19       ` Greg Kroah-Hartman
2012-06-25 17:19         ` Greg Kroah-Hartman
2012-06-25 18:24         ` Seth Jennings
2012-06-25 18:24           ` Seth Jennings
2012-06-25 23:37           ` Greg Kroah-Hartman
2012-06-25 23:37             ` Greg Kroah-Hartman
2012-06-27  5:28   ` Minchan Kim
2012-06-27  5:28     ` Minchan Kim
2012-06-27 19:09     ` Seth Jennings
2012-06-27 19:09       ` Seth Jennings
2012-06-28  0:20       ` Minchan Kim
2012-06-28  0:20         ` Minchan Kim
2012-06-25 16:14 ` [PATCH 3/3] x86: add local_tlb_flush_kernel_range() Seth Jennings
2012-06-25 16:14   ` Seth Jennings
2012-06-25 23:01   ` Konrad Rzeszutek Wilk
2012-06-25 23:01     ` Konrad Rzeszutek Wilk
2012-06-26 13:39     ` Seth Jennings
2012-06-26 13:39       ` Seth Jennings
2012-06-27  5:53   ` Minchan Kim
2012-06-27  5:53     ` Minchan Kim
2012-06-27  6:14     ` Alex Shi
2012-06-27  6:14       ` Alex Shi
2012-06-27  6:26       ` Minchan Kim
2012-06-27  6:26         ` Minchan Kim
2012-06-27 15:12         ` Dan Magenheimer
2012-06-27 15:12           ` Dan Magenheimer
2012-06-27 15:39           ` Konrad Rzeszutek Wilk
2012-06-27 15:39             ` Konrad Rzeszutek Wilk
2012-06-27 18:35             ` Seth Jennings
2012-06-27 18:35               ` Seth Jennings
2012-06-27 18:33           ` Seth Jennings
2012-06-27 18:33             ` Seth Jennings
2012-06-27 21:15             ` Dan Magenheimer
2012-06-27 21:15               ` Dan Magenheimer
2012-06-27 21:41               ` Seth Jennings
2012-06-27 21:41                 ` Seth Jennings
2012-06-28  2:03             ` Alex Shi
2012-06-28  2:03               ` Alex Shi
2012-06-28 15:21               ` Seth Jennings
2012-06-28 15:21                 ` Seth Jennings
2012-06-29  0:19                 ` Alex Shi
2012-06-29  0:19                   ` Alex Shi

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.