parent
08a790efb6
commit
cd8e3a8055
5 changed files with 57 additions and 124 deletions
|
@ -10,10 +10,10 @@ include $(TOPDIR)/rules.mk
|
|||
include $(INCLUDE_DIR)/kernel.mk
|
||||
|
||||
PKG_NAME:=compcache
|
||||
PKG_VERSION:=0.5.4
|
||||
PKG_VERSION:=0.6.2
|
||||
PKG_RELEASE:=$(PKG_VERSION)-1
|
||||
PKG_SOURCE_URL:=http://compcache.googlecode.com/files/
|
||||
PKG_MD5SUM:=e83535925a014ac34e1eaeb4f7a2f49a
|
||||
PKG_MD5SUM:=27aec78dc50e34fb800c74e879057743
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
|
||||
|
@ -25,22 +25,25 @@ define KernelPackage/compcache
|
|||
TITLE:=Driver for compressed ram swap device
|
||||
VERSION:=$(LINUX_VERSION)-$(BOARD)-$(LINUX_RELEASE)+$(PKG_RELEASE)
|
||||
FILES:=$(PKG_BUILD_DIR)/ramzswap.$(LINUX_KMOD_SUFFIX) \
|
||||
$(PKG_BUILD_DIR)/sub-projects/compression/lzo-kmod/lzo1x.$(LINUX_KMOD_SUFFIX) \
|
||||
$(PKG_BUILD_DIR)/sub-projects/allocators/xvmalloc-kmod/xvmalloc.$(LINUX_KMOD_SUFFIX)
|
||||
$(PKG_BUILD_DIR)/sub-projects/compression/lzo-kmod/lzo1x.$(LINUX_KMOD_SUFFIX)
|
||||
endef
|
||||
|
||||
|
||||
include $(INCLUDE_DIR)/kernel-defaults.mk
|
||||
|
||||
XVM = sub-projects/allocators/xvmalloc-kmod
|
||||
LZO = sub-projects/compression/lzo-kmod
|
||||
RZSC = sub-projects/rzscontrol
|
||||
|
||||
BUILDFLAGS:=-DCONFIG_BLK_DEV_RAMZSWAP_STATS \
|
||||
-I$(PKG_BUILD_DIR)/$(XVM) \
|
||||
BUILDFLAGS:=-DCONFIG_RAMZSWAP_STATS \
|
||||
-I$(PKG_BUILD_DIR)/$(LZO) \
|
||||
-g -Wall
|
||||
-Wall
|
||||
|
||||
RZSCFLAGS:=-I$(PKG_BUILD_DIR)/$(RZSC)/../include \
|
||||
-I$(PKG_BUILD_DIR)/$(RZSC)/../..
|
||||
|
||||
define Build/Compile
|
||||
$(MAKE) $(KERNEL_MAKEOPTS) EXTRA_CFLAGS="$(BUILDFLAGS)" M="$(PKG_BUILD_DIR)" modules
|
||||
$(TARGET_CC) $(TARGET_CFLAGS) $(RZSCFLAGS) $(PKG_BUILD_DIR)/$(RZSC)/rzscontrol.c -o $(PKG_BUILD_DIR)/rzscontrol
|
||||
endef
|
||||
|
||||
define KernelPackage/compcache/install
|
||||
|
@ -52,6 +55,8 @@ define KernelPackage/compcache/install
|
|||
$(1)/etc/config/compcache
|
||||
$(INSTALL_DIR) $(1)/etc/init.d
|
||||
$(INSTALL_BIN) ./files/compcache.init $(1)/etc/init.d/compcache
|
||||
$(INSTALL_DIR) $(1)/sbin
|
||||
$(INSTALL_BIN) $(PKG_BUILD_DIR)/rzscontrol $(1)/sbin/rzscontrol
|
||||
endef
|
||||
|
||||
define KernelPackage/compcache/config
|
||||
|
|
|
@ -18,7 +18,6 @@ load_modules() {
|
|||
params_set="disksize_kb=$size_kbytes"
|
||||
fi
|
||||
if [ "`lsmod | grep 'ramzswap'`" == "" ]; then
|
||||
insmod xvmalloc
|
||||
insmod lzo1x
|
||||
insmod ramzswap $params_set
|
||||
swapon /dev/ramzswap0
|
||||
|
@ -34,7 +33,6 @@ remove_modules() {
|
|||
[ "`cat /proc/swaps | grep 'ramzswap0'`" != "" ] && swapoff /dev/ramzswap0
|
||||
[ "`lsmod | grep 'ramzswap'`" != "" ] && rmmod ramzswap &> /dev/null
|
||||
[ "`lsmod | grep 'lzo1x'`" != "" ] && rmmod lzo1x &> /dev/null
|
||||
[ "`lsmod | grep 'xvmalloc'`" != "" ] && rmmod xvmalloc &> /dev/null
|
||||
fi
|
||||
}
|
||||
|
||||
|
|
|
@ -1,60 +1,53 @@
|
|||
diff -uNr compcache-0.5.4-old/Makefile compcache-0.5.4/Makefile
|
||||
--- compcache-0.5.4-old/Makefile 2009-10-17 08:49:42.000000000 +0200
|
||||
+++ compcache-0.5.4/Makefile 2009-10-17 09:39:34.000000000 +0200
|
||||
@@ -1,19 +1,26 @@
|
||||
diff -uNr compcache-org/Makefile compcache-0.6.2/Makefile
|
||||
--- compcache-org/Makefile 2010-01-24 17:46:50.000000000 +0100
|
||||
+++ compcache-0.6.2/Makefile 2010-03-18 16:00:41.000000000 +0100
|
||||
@@ -1,14 +1,17 @@
|
||||
KERNEL_BUILD_PATH ?= "/lib/modules/$(shell uname -r)/build"
|
||||
|
||||
XVM = sub-projects/allocators/xvmalloc-kmod
|
||||
-EXTRA_CFLAGS := -DCONFIG_BLK_DEV_RAMZSWAP_STATS \
|
||||
- -I$(PWD)/$(XVM) \
|
||||
+LZO = sub-projects/compression/lzo-kmod
|
||||
+
|
||||
+EXTRA_CFLAGS += -DCONFIG_BLK_DEV_RAMZSWAP_STATS \
|
||||
+ -I$(PWD)/$(XVM) \
|
||||
+ -I$(PWD)/$(LZO) \
|
||||
-g -Wall
|
||||
EXTRA_CFLAGS := -DCONFIG_RAMZSWAP_STATS \
|
||||
-Wall
|
||||
|
||||
obj-m += $(XVM)/xvmalloc.o \
|
||||
+ $(LZO)/lzo1x.o \
|
||||
ramzswap.o
|
||||
-obj-m += ramzswap.o
|
||||
+obj-m += ramzswap.o $(LZO)/lzo1x.o
|
||||
ramzswap-objs := ramzswap_drv.o $(XVM)/xvmalloc.o
|
||||
+
|
||||
|
||||
all:
|
||||
make -C $(KERNEL_BUILD_PATH) M=$(PWD)/$(XVM) modules
|
||||
+ make -C $(KERNEL_BUILD_PATH) M=$(PWD)/$(LZO) modules
|
||||
make -C $(KERNEL_BUILD_PATH) M=$(PWD) modules
|
||||
@ln -sf $(XVM)/xvmalloc.ko
|
||||
+ @ln -sf $(LZO)/xvmalloc.ko
|
||||
+ make -C $(KERNEL_BUILD_PATH) M=$(PWD)/$(LZO) modules
|
||||
make -C sub-projects/rzscontrol
|
||||
|
||||
doc:
|
||||
@@ -16,5 +19,6 @@
|
||||
|
||||
clean:
|
||||
make -C $(KERNEL_BUILD_PATH) M=$(PWD) clean
|
||||
make -C $(KERNEL_BUILD_PATH) M=$(PWD)/$(XVM) clean
|
||||
+ make -C $(KERNEL_BUILD_PATH) M=$(PWD)/$(LZO) clean
|
||||
make -C sub-projects/rzscontrol clean
|
||||
@rm -rf *.ko
|
||||
diff -uNr compcache-0.5.4-old/ramzswap.c compcache-0.5.4/ramzswap.c
|
||||
--- compcache-0.5.4-old/ramzswap.c 2009-10-17 08:50:06.000000000 +0200
|
||||
+++ compcache-0.5.4/ramzswap.c 2009-10-17 09:35:59.000000000 +0200
|
||||
@@ -20,7 +20,6 @@
|
||||
diff -uNr compcache-org/ramzswap_drv.c compcache-0.6.2/ramzswap_drv.c
|
||||
--- compcache-org/ramzswap_drv.c 2010-01-24 17:52:19.000000000 +0100
|
||||
+++ compcache-0.6.2/ramzswap_drv.c 2010-03-18 16:03:23.000000000 +0100
|
||||
@@ -23,13 +23,13 @@
|
||||
#include <linux/device.h>
|
||||
#include <linux/genhd.h>
|
||||
#include <linux/highmem.h>
|
||||
-#include <linux/lzo.h>
|
||||
#include <linux/mutex.h>
|
||||
#include <linux/proc_fs.h>
|
||||
#include <linux/string.h>
|
||||
diff -uNr compcache-0.5.4-old/ramzswap.h compcache-0.5.4/ramzswap.h
|
||||
--- compcache-0.5.4-old/ramzswap.h 2009-10-17 08:50:06.000000000 +0200
|
||||
+++ compcache-0.5.4/ramzswap.h 2009-10-17 09:40:45.000000000 +0200
|
||||
@@ -16,6 +16,7 @@
|
||||
#define _RAMZSWAP_H_
|
||||
#include <linux/swap.h>
|
||||
#include <linux/swapops.h>
|
||||
#include <linux/vmalloc.h>
|
||||
#include <linux/version.h>
|
||||
|
||||
#include "xvmalloc.h"
|
||||
+#include "lzo.h"
|
||||
#include "compat.h"
|
||||
#include "ramzswap_drv.h"
|
||||
|
||||
/*
|
||||
* Stored at beginning of each compressed object.
|
||||
diff -uNr compcache-0.5.4-old/sub-projects/compression/lzo-kmod/lzo1x.c compcache-0.5.4/sub-projects/compression/lzo-kmod/lzo1x.c
|
||||
--- compcache-0.5.4-old/sub-projects/compression/lzo-kmod/lzo1x.c 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ compcache-0.5.4/sub-projects/compression/lzo-kmod/lzo1x.c 2009-10-17 09:35:59.000000000 +0200
|
||||
diff -uNr compcache-old/sub-projects/compression/lzo-kmod/lzo1x.c compcache/sub-projects/compression/lzo-kmod/lzo1x.c
|
||||
--- compcache-old/sub-projects/compression/lzo-kmod/lzo1x.c 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ compcache/sub-projects/compression/lzo-kmod/lzo1x.c 2009-10-17 09:35:59.000000000 +0200
|
||||
@@ -0,0 +1,7 @@
|
||||
+#include <linux/module.h>
|
||||
+
|
||||
|
@ -63,9 +56,9 @@ diff -uNr compcache-0.5.4-old/sub-projects/compression/lzo-kmod/lzo1x.c compcach
|
|||
+
|
||||
+MODULE_LICENSE("GPL");
|
||||
+MODULE_DESCRIPTION("LZO1X Lib");
|
||||
diff -uNr compcache-0.5.4-old/sub-projects/compression/lzo-kmod/lzo1x_compress.c compcache-0.5.4/sub-projects/compression/lzo-kmod/lzo1x_compress.c
|
||||
--- compcache-0.5.4-old/sub-projects/compression/lzo-kmod/lzo1x_compress.c 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ compcache-0.5.4/sub-projects/compression/lzo-kmod/lzo1x_compress.c 2009-10-17 09:35:59.000000000 +0200
|
||||
diff -uNr compcache-old/sub-projects/compression/lzo-kmod/lzo1x_compress.c compcache/sub-projects/compression/lzo-kmod/lzo1x_compress.c
|
||||
--- compcache-old/sub-projects/compression/lzo-kmod/lzo1x_compress.c 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ compcache/sub-projects/compression/lzo-kmod/lzo1x_compress.c 2009-10-17 09:35:59.000000000 +0200
|
||||
@@ -0,0 +1,227 @@
|
||||
+/*
|
||||
+ * LZO1X Compressor from MiniLZO
|
||||
|
@ -294,9 +287,9 @@ diff -uNr compcache-0.5.4-old/sub-projects/compression/lzo-kmod/lzo1x_compress.c
|
|||
+MODULE_LICENSE("GPL");
|
||||
+MODULE_DESCRIPTION("LZO1X-1 Compressor");
|
||||
+
|
||||
diff -uNr compcache-0.5.4-old/sub-projects/compression/lzo-kmod/lzo1x_decompress.c compcache-0.5.4/sub-projects/compression/lzo-kmod/lzo1x_decompress.c
|
||||
--- compcache-0.5.4-old/sub-projects/compression/lzo-kmod/lzo1x_decompress.c 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ compcache-0.5.4/sub-projects/compression/lzo-kmod/lzo1x_decompress.c 2009-10-17 09:35:59.000000000 +0200
|
||||
diff -uNr compcache-old/sub-projects/compression/lzo-kmod/lzo1x_decompress.c compcache/sub-projects/compression/lzo-kmod/lzo1x_decompress.c
|
||||
--- compcache-old/sub-projects/compression/lzo-kmod/lzo1x_decompress.c 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ compcache/sub-projects/compression/lzo-kmod/lzo1x_decompress.c 2009-10-17 09:35:59.000000000 +0200
|
||||
@@ -0,0 +1,255 @@
|
||||
+/*
|
||||
+ * LZO1X Decompressor from MiniLZO
|
||||
|
@ -553,9 +546,9 @@ diff -uNr compcache-0.5.4-old/sub-projects/compression/lzo-kmod/lzo1x_decompress
|
|||
+MODULE_LICENSE("GPL");
|
||||
+MODULE_DESCRIPTION("LZO1X Decompressor");
|
||||
+
|
||||
diff -uNr compcache-0.5.4-old/sub-projects/compression/lzo-kmod/lzodefs.h compcache-0.5.4/sub-projects/compression/lzo-kmod/lzodefs.h
|
||||
--- compcache-0.5.4-old/sub-projects/compression/lzo-kmod/lzodefs.h 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ compcache-0.5.4/sub-projects/compression/lzo-kmod/lzodefs.h 2009-10-17 09:35:59.000000000 +0200
|
||||
diff -uNr compcache-old/sub-projects/compression/lzo-kmod/lzodefs.h compcache/sub-projects/compression/lzo-kmod/lzodefs.h
|
||||
--- compcache-old/sub-projects/compression/lzo-kmod/lzodefs.h 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ compcache/sub-projects/compression/lzo-kmod/lzodefs.h 2009-10-17 09:35:59.000000000 +0200
|
||||
@@ -0,0 +1,43 @@
|
||||
+/*
|
||||
+ * lzodefs.h -- architecture, OS and compiler specific defines
|
||||
|
@ -600,9 +593,9 @@ diff -uNr compcache-0.5.4-old/sub-projects/compression/lzo-kmod/lzodefs.h compca
|
|||
+#define DX2(p, s1, s2) (((((size_t)((p)[2]) << (s2)) ^ (p)[1]) \
|
||||
+ << (s1)) ^ (p)[0])
|
||||
+#define DX3(p, s1, s2, s3) ((DX2((p)+1, s2, s3) << (s1)) ^ (p)[0])
|
||||
diff -uNr compcache-0.5.4-old/sub-projects/compression/lzo-kmod/lzo.h compcache-0.5.4/sub-projects/compression/lzo-kmod/lzo.h
|
||||
--- compcache-0.5.4-old/sub-projects/compression/lzo-kmod/lzo.h 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ compcache-0.5.4/sub-projects/compression/lzo-kmod/lzo.h 2009-10-17 09:35:59.000000000 +0200
|
||||
diff -uNr compcache-old/sub-projects/compression/lzo-kmod/lzo.h compcache/sub-projects/compression/lzo-kmod/lzo.h
|
||||
--- compcache-old/sub-projects/compression/lzo-kmod/lzo.h 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ compcache/sub-projects/compression/lzo-kmod/lzo.h 2009-10-17 09:35:59.000000000 +0200
|
||||
@@ -0,0 +1,44 @@
|
||||
+#ifndef __LZO_H__
|
||||
+#define __LZO_H__
|
||||
|
@ -648,9 +641,9 @@ diff -uNr compcache-0.5.4-old/sub-projects/compression/lzo-kmod/lzo.h compcache-
|
|||
+#define LZO_E_NOT_YET_IMPLEMENTED (-9)
|
||||
+
|
||||
+#endif
|
||||
diff -uNr compcache-0.5.4-old/sub-projects/compression/lzo-kmod/Makefile compcache-0.5.4/sub-projects/compression/lzo-kmod/Makefile
|
||||
--- compcache-0.5.4-old/sub-projects/compression/lzo-kmod/Makefile 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ compcache-0.5.4/sub-projects/compression/lzo-kmod/Makefile 2009-10-17 09:35:59.000000000 +0200
|
||||
diff -uNr compcache-old/sub-projects/compression/lzo-kmod/Makefile compcache/sub-projects/compression/lzo-kmod/Makefile
|
||||
--- compcache-old/sub-projects/compression/lzo-kmod/Makefile 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ compcache/sub-projects/compression/lzo-kmod/Makefile 2009-10-17 09:35:59.000000000 +0200
|
||||
@@ -0,0 +1,8 @@
|
||||
+obj-m += lzo1x_compress.o lzo1x_decompress.o
|
||||
+
|
||||
|
|
|
@ -1,24 +0,0 @@
|
|||
diff -uNr compcache-0.5.2/compcache.c compcache/compcache.c
|
||||
--- compcache-0.5.2/compcache.c 2009-03-10 13:03:56.000000000 +0100
|
||||
+++ compcache/ramzswap.c 2009-04-01 17:38:20.000000000 +0200
|
||||
@@ -68,15 +68,15 @@
|
||||
static int page_zero_filled(void *ptr)
|
||||
{
|
||||
u32 pos;
|
||||
- u64 *page;
|
||||
-
|
||||
- page = (u64 *)ptr;
|
||||
-
|
||||
+#if defined(CONFIG_64BIT)
|
||||
+ u64 *page = (u64 *)ptr;
|
||||
+#else
|
||||
+ u32 *page = (u32 *)ptr;
|
||||
+#endif
|
||||
for (pos = 0; pos != PAGE_SIZE / sizeof(*page); pos++) {
|
||||
if (page[pos])
|
||||
return 0;
|
||||
}
|
||||
-
|
||||
return 1;
|
||||
}
|
||||
|
|
@ -1,39 +0,0 @@
|
|||
diff -uNr compcache-0.5.4-old/ramzswap.c compcache-0.5.4/ramzswap.c
|
||||
--- compcache-0.5.4-old/ramzswap.c 2009-10-18 09:14:53.000000000 +0200
|
||||
+++ compcache-0.5.4/ramzswap.c 2009-10-18 09:12:08.000000000 +0200
|
||||
@@ -126,7 +126,9 @@
|
||||
{
|
||||
int len;
|
||||
size_t succ_writes, mem_used;
|
||||
- unsigned int good_compress_perc = 0, no_compress_perc = 0;
|
||||
+ unsigned int good_compress_perc = 0,
|
||||
+ av_compression_perc = 0,
|
||||
+ no_compress_perc = 0;
|
||||
|
||||
mem_used = xv_get_total_size_bytes(rzs.mem_pool)
|
||||
+ (stats.pages_expand << PAGE_SHIFT);
|
||||
@@ -154,6 +156,8 @@
|
||||
if (succ_writes && stats.pages_stored) {
|
||||
good_compress_perc = stats.good_compress * 100
|
||||
/ stats.pages_stored;
|
||||
+ av_compression_perc = stats.compr_size * 100
|
||||
+ / (stats.good_compress << PAGE_SHIFT);
|
||||
no_compress_perc = stats.pages_expand * 100
|
||||
/ stats.pages_stored;
|
||||
}
|
||||
@@ -168,6 +172,7 @@
|
||||
"NotifyFree: %8llu\n"
|
||||
"ZeroPages: %8u\n"
|
||||
"GoodCompress: %8u %%\n"
|
||||
+ "AvCompression: %8u %%\n"
|
||||
"NoCompress: %8u %%\n"
|
||||
"PagesStored: %8u\n"
|
||||
"PagesUsed: %8zu\n"
|
||||
@@ -182,6 +187,7 @@
|
||||
stats.notify_free,
|
||||
stats.pages_zero,
|
||||
good_compress_perc,
|
||||
+ av_compression_perc,
|
||||
no_compress_perc,
|
||||
stats.pages_stored,
|
||||
mem_used >> PAGE_SHIFT,
|
Loading…
Reference in a new issue