[PATCH 0/5] staging: zsmalloc: memory allocator for compressed pages

From: Seth Jennings
Date: Mon Jan 09 2012 - 17:53:12 EST


This patchset introduces a new memory allocation library named
zsmalloc. zsmalloc was designed to fulfill the needs
of users where:
1) Memory is constrained, preventing contiguous page allocations
larger than order 0 and
2) Allocations are all/commonly greater than half a page.

In a generic allocator, an allocation set like this would
cause high fragmentation. The allocations can't span non-
contiguous page boundaries; therefore, the part of the page
unused by each allocation is wasted.

zsmalloc is a slab-based allocator that uses a non-standard
malloc interface, requiring the user to map the allocation
before accessing it. This allows allocations to span two
non-contiguous pages using virtual memory mapping, greatly
reducing fragmentation in the memory pool.

Nitin Gupta (3):
staging: zsmalloc: zsmalloc memory allocation library
staging: zram: replace xvmalloc with zsmalloc
staging: zram: remove xvmalloc

Seth Jennings (2):
staging: add zsmalloc to Kconfig/Makefile
staging: zcache: replace xvmalloc with zsmalloc

drivers/staging/Kconfig | 2 +
drivers/staging/Makefile | 2 +-
drivers/staging/zcache/Kconfig | 2 +-
drivers/staging/zcache/zcache-main.c | 83 ++--
drivers/staging/zram/Kconfig | 6 +-
drivers/staging/zram/Makefile | 1 -
drivers/staging/zram/xvmalloc.c | 510 --------------------
drivers/staging/zram/xvmalloc.h | 30 --
drivers/staging/zram/xvmalloc_int.h | 95 ----
drivers/staging/zram/zram_drv.c | 89 ++--
drivers/staging/zram/zram_drv.h | 10 +-
drivers/staging/zram/zram_sysfs.c | 2 +-
drivers/staging/zsmalloc/Kconfig | 11 +
drivers/staging/zsmalloc/Makefile | 3 +
drivers/staging/zsmalloc/zsmalloc-main.c | 756 ++++++++++++++++++++++++++++++
drivers/staging/zsmalloc/zsmalloc.h | 31 ++
drivers/staging/zsmalloc/zsmalloc_int.h | 126 +++++
17 files changed, 1020 insertions(+), 739 deletions(-)
delete mode 100644 drivers/staging/zram/xvmalloc.c
delete mode 100644 drivers/staging/zram/xvmalloc.h
delete mode 100644 drivers/staging/zram/xvmalloc_int.h
create mode 100644 drivers/staging/zsmalloc/Kconfig
create mode 100644 drivers/staging/zsmalloc/Makefile
create mode 100644 drivers/staging/zsmalloc/zsmalloc-main.c
create mode 100644 drivers/staging/zsmalloc/zsmalloc.h
create mode 100644 drivers/staging/zsmalloc/zsmalloc_int.h

--
1.7.5.4

--
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/