tthtlc / compcache Goto Github PK
View Code? Open in Web Editor NEWAutomatically exported from code.google.com/p/compcache
Automatically exported from code.google.com/p/compcache
zram: Compressed RAM based block devices ---------------------------------------- Project home: http://compcache.googlecode.com/ * Introduction The zram module creates RAM based block devices named /dev/zram<id> (<id> = 0, 1, ...). Pages written to these disks are compressed and stored in memory itself. These disks allow very fast I/O and compression provides good amounts of memory savings. Some of the usecases include /tmp storage, use as swap disks, various caches under /var and maybe many more :) Statistics for individual zram devices are exported through sysfs nodes at /sys/block/zram<id>/ Help page: http://compcache.googlecode.com/CompilingAndUsingNew * Compiling - 'make': This will compile zram module against your kernel - Optional (HIGHLY RECOMMENDED): ** Only for kernels older than 2.6.35 ** - Apply the patch found in compcache/patches/ directory and just compile the kernel as usual. This patch enables 'swap free notify' feature which allows the kernel to send callback to zram as soon as a swap slot becomes free. So, we can immediately free memory allocated for the corresponding page, eliminating any stale data in (compressed) memory. Currently, patches are available for 2.6.29 and 2.6.33 kernels but it should apply to 'nearby' kernel versions too. - Uncomment '#define CONFIG_SWAP_FREE_NOTIFY' in compcache/compat.h before compiling compcache against this patched kernel. Otherwise, this swap notify callback will not be used. - Note that this patch is applicable only when zram devices are intended to be used as swap disks. They do not help when used for other purposes (see examples below). Following binaries are created: - zram.ko (kernel driver) * Usage Following shows a typical sequence of steps for using zram. 1) Load Module: modprobe zram num_devices=4 This creates 4 devices: /dev/zram{0,1,2,3} (num_devices parameter is optional. Default: 1) 2) Set Disksize: Set disk size by writing the value to sysfs node 'disksize' (in bytes). If disksize is not given, default value of 25% of RAM is used. # Set disksize of 50MB for /dev/zram0 echo $((50*1024*1024)) > /sys/block/zram0/disksize NOTE: disksize cannot be changed if the disk contains any data. So, for such a disk, you need to issue 'reset' (see below) before you can change its disksize. 3) Activate: mkswap /dev/zram0 swapon /dev/zram0 mkfs.ext4 /dev/zram1 mount /dev/zram1 /tmp 4) Statistics: Per-device statistics are exported as various nodes under /sys/block/zram<id>/ disksize num_reads num_writes invalid_io notify_free discard zero_pages orig_data_size compr_data_size mem_used_total A helper script is included (sub-projects/scripts/zram_stats) which shows these stats for devices containing any data. It also shows (derived) values for average compression ratio and memory overhead. 5) Deactivate: swapoff /dev/zram0 umount /dev/zram1 6) Reset: Write any positive value to 'reset' sysfs node echo 1 > /sys/block/zram0/reset echo 1 > /sys/block/zram1/reset (This frees all the memory allocated for the given device). Please report any problems at: - Mailing list: linux-mm-cc at laptop dot org - Issue tracker: http://code.google.com/p/compcache/issues/list Nitin Gupta [email protected]
What steps will reproduce the problem?
1. update kernel to 2.6.26
2. download latest compcache svn
3. cd compcache-read-only ; make
What is the expected output? What do you see instead?
make[1]: Entering directory `/usr/src/linux-2.6.26'
CC [M]
/root/compcache-read-only/sub-projects/compression/lzo-kmod/lzo1x_decompress.o
CC [M]
/root/compcache-read-only/sub-projects/compression/lzo-kmod/lzo1x_compress.o
CC [M] /root/compcache-read-only/sub-projects/allocators/tlsf-kmod/tlsf.o
/root/compcache-read-only/sub-projects/allocators/tlsf-kmod/tlsf.c: In
function â:
/root/compcache-read-only/sub-projects/allocators/tlsf-kmod/tlsf.c:659:
error: â undeclared (first use in this function)
/root/compcache-read-only/sub-projects/allocators/tlsf-kmod/tlsf.c:659:
error: (Each undeclared identifier is reported only once
/root/compcache-read-only/sub-projects/allocators/tlsf-kmod/tlsf.c:659:
error: for each function it appears in.)
make[2]: ***
[/root/compcache-read-only/sub-projects/allocators/tlsf-kmod/tlsf.o] Error 1
make[1]: *** [_module_/root/compcache-read-only] Error 2
make[1]: Leaving directory `/usr/src/linux-2.6.26'
make: *** [all] Error 2
What version of the product are you using? On what operating system?
At revision 161. Using Ubuntu 8.04,8.10-Alpha-2, and Sidux Linux!
Please provide any additional information below.
Original issue reported on code.google.com by [email protected]
on 24 Jul 2008 at 8:04
What steps will reproduce the problem?
1. sudo ./load_modules.sh
2. sudo ./rzscontrol /dev/ramzswap0 --init -b /dev/sda2
3.
It appears to occur every time I use backing swap on Ubuntu 9.10.
What version of the product are you using? On what operating system?
Version 0.6 (problem also occurs in latest hg version control), with Ubuntu
9.10 in a VirtualBox 32bit VM. (Host OS Ubuntu 9.04 64bit).
uname -r reports kernel version 2.6.31-14-generic
Please provide any additional information below.
"kernel BUG" reports for compcache-0.6 and compcache-hg attached (from
/var/log/syslog).
Original issue reported on code.google.com by [email protected]
on 2 Nov 2009 at 10:34
Attachments:
What steps will reproduce the problem?
1. compcache-0.4 on kernel 2.6.26.3
2. run for a while and tax the memory to engage compcache
3. TOnnes of errors in dmesg
What is the expected output? What do you see instead?
No errors in dmesg about memory allocation failures.
What version of the product are you using? On what operating system?
0.4, 2.6.26.3 on x86.
Please provide any additional information below.
dmesg is full of these errors:
[13138.245117] compcache: Error allocating memory for compressed page:
38089, size=35
[13138.245119] Write-error on swap-device (252:0:304712)
# cat /proc/tlsfinfo
# Size in kB
# name <init_size> <max_size> <grow_size> <used_size> <total_size>
<extra> <peak_used> <peak_total> <peak_extra> <count_alloc> <count_free>
<count_region_alloc> <count_region_free> <failed_alloc> <valid>
compcache 16 0 16 45658 45683 24 45658 45683
929 35331 2314 2863 8 82904 1
cat /proc/vmallocinfo consists of ~3000 lines and mostly memory allocated
for tlsf.
I have seen this problem on x86 only and on 2 machines. It doesn't happen
on 2 x86_64 machines that I have compcache running.
Original issue reported on code.google.com by [email protected]
on 26 Aug 2008 at 7:59
What steps will reproduce the problem?
1. trigger any swap activation (ie. allocate 1GB of memmory)
What is the expected output? What do you see instead?
Swap should work, and compress pages. Kernel bug. System after while is
useless completly.
What version of the product are you using? On what operating system?
1. Linux kernel 2.6.29-rc2 (2.6.29-rc2-00013-gf3b8436 exactly)
2. compcache r262
Please provide any additional information below.
I was using memtester which do mlock, but any swap activation triggers
this bug.
Original issue reported on code.google.com by [email protected]
on 18 Jan 2009 at 6:25
Attachments:
can someone make a ubuntu 9.10 deb file or repo to install this and an
init script. I tried im not doing a very good job so far.
Original issue reported on code.google.com by [email protected]
on 8 Nov 2009 at 11:17
What steps will reproduce the problem?
1. use compcache by swapon /dev/compcache0 -p 1or swapon /dev/compcache -p 1
2.
3.
What is the expected output? What do you see instead?
frozen screen
What version of the product are you using? On what operating system?
latest. ubuntu 7.10 , 8.04 alpha 5, debian-eabi 2.6.24, 2.6.23, 2.6.21
Please provide any additional information below.
this project is not stable, it will lock up any linux machine, SMP or not,
embedded or desktop.
Original issue reported on code.google.com by [email protected]
on 3 Mar 2008 at 8:01
What steps will reproduce the problem?
1. In linux Sles10 SP2 kernel 2.6.16.60-0.21-smp
2. launch make
3.
What is the expected output? What do you see instead?
This is the error to launch make in this version 0.5.1 . In other versions:
0.5pre3,and 0.5pre4 the error not apper.
linux03:/var/tmp/compcache-0.5.1 # make
make -C /lib/modules/2.6.16.60-0.21-smp/build M=/var/tmp/compcache-0.5.1
modules
make[1]: Entering directory `/usr/src/linux-2.6.16.60-0.21-obj/x86_64/smp'
make -C ../../../linux-2.6.16.60-0.21
O=../linux-2.6.16.60-0.21-obj/x86_64/smp modules
CC [M]
/var/tmp/compcache-0.5.1/sub-projects/compression/lzo-kmod/lzo1x_decompress.o
CC [M]
/var/tmp/compcache-0.5.1/sub-projects/compression/lzo-kmod/lzo1x_compress.o
CC [M]
/var/tmp/compcache-0.5.1/sub-projects/allocators/xvmalloc-kmod/xvmalloc.o
/var/tmp/compcache-0.5.1/sub-projects/allocators/xvmalloc-kmod/xvmalloc.c:105:
warning: ‘enum km_type’ declared inside parameter list
/var/tmp/compcache-0.5.1/sub-projects/allocators/xvmalloc-kmod/xvmalloc.c:105:
warning: its scope is only this definition or declaration, which is
probably not what you want
/var/tmp/compcache-0.5.1/sub-projects/allocators/xvmalloc-kmod/xvmalloc.c:105:
error: parameter 3 (‘type’) has incomplete type
/var/tmp/compcache-0.5.1/sub-projects/allocators/xvmalloc-kmod/xvmalloc.c:112:
warning: ‘enum km_type’ declared inside parameter list
/var/tmp/compcache-0.5.1/sub-projects/allocators/xvmalloc-kmod/xvmalloc.c:112:
error: parameter 2 (‘type’) has incomplete type
/var/tmp/compcache-0.5.1/sub-projects/allocators/xvmalloc-kmod/xvmalloc.c:
In function ‘InsertBlock’:
/var/tmp/compcache-0.5.1/sub-projects/allocators/xvmalloc-kmod/xvmalloc.c:202:
error: ‘KM_USER1’ undeclared (first use in this function)
/var/tmp/compcache-0.5.1/sub-projects/allocators/xvmalloc-kmod/xvmalloc.c:202:
error: (Each undeclared identifier is reported only once
/var/tmp/compcache-0.5.1/sub-projects/allocators/xvmalloc-kmod/xvmalloc.c:202:
error: for each function it appears in.)
/var/tmp/compcache-0.5.1/sub-projects/allocators/xvmalloc-kmod/xvmalloc.c:203:
error: type of formal parameter 3 is incomplete
/var/tmp/compcache-0.5.1/sub-projects/allocators/xvmalloc-kmod/xvmalloc.c:206:
error: type of formal parameter 2 is incomplete
/var/tmp/compcache-0.5.1/sub-projects/allocators/xvmalloc-kmod/xvmalloc.c:
In function ‘RemoveBlockHead’:
/var/tmp/compcache-0.5.1/sub-projects/allocators/xvmalloc-kmod/xvmalloc.c:233:
error: ‘KM_USER1’ undeclared (first use in this function)
/var/tmp/compcache-0.5.1/sub-projects/allocators/xvmalloc-kmod/xvmalloc.c:234:
error: type of formal parameter 3 is incomplete
/var/tmp/compcache-0.5.1/sub-projects/allocators/xvmalloc-kmod/xvmalloc.c:237:
error: type of formal parameter 2 is incomplete
/var/tmp/compcache-0.5.1/sub-projects/allocators/xvmalloc-kmod/xvmalloc.c:
In function ‘RemoveBlock’:
/var/tmp/compcache-0.5.1/sub-projects/allocators/xvmalloc-kmod/xvmalloc.c:258:
error: ‘KM_USER1’ undeclared (first use in this function)
/var/tmp/compcache-0.5.1/sub-projects/allocators/xvmalloc-kmod/xvmalloc.c:259:
error: type of formal parameter 3 is incomplete
/var/tmp/compcache-0.5.1/sub-projects/allocators/xvmalloc-kmod/xvmalloc.c:262:
error: type of formal parameter 2 is incomplete
/var/tmp/compcache-0.5.1/sub-projects/allocators/xvmalloc-kmod/xvmalloc.c:269:
error: type of formal parameter 3 is incomplete
/var/tmp/compcache-0.5.1/sub-projects/allocators/xvmalloc-kmod/xvmalloc.c:272:
error: type of formal parameter 2 is incomplete
/var/tmp/compcache-0.5.1/sub-projects/allocators/xvmalloc-kmod/xvmalloc.c:
In function ‘GrowPool’:
/var/tmp/compcache-0.5.1/sub-projects/allocators/xvmalloc-kmod/xvmalloc.c:290:
error: ‘KM_USER0’ undeclared (first use in this function)
/var/tmp/compcache-0.5.1/sub-projects/allocators/xvmalloc-kmod/xvmalloc.c:290:
error: type of formal parameter 3 is incomplete
/var/tmp/compcache-0.5.1/sub-projects/allocators/xvmalloc-kmod/xvmalloc.c:299:
error: type of formal parameter 2 is incomplete
/var/tmp/compcache-0.5.1/sub-projects/allocators/xvmalloc-kmod/xvmalloc.c:
In function ‘xvMalloc’:
/var/tmp/compcache-0.5.1/sub-projects/allocators/xvmalloc-kmod/xvmalloc.c:375:
error: ‘KM_USER0’ undeclared (first use in this function)
/var/tmp/compcache-0.5.1/sub-projects/allocators/xvmalloc-kmod/xvmalloc.c:375:
error: type of formal parameter 3 is incomplete
/var/tmp/compcache-0.5.1/sub-projects/allocators/xvmalloc-kmod/xvmalloc.c:409:
error: type of formal parameter 2 is incomplete
/var/tmp/compcache-0.5.1/sub-projects/allocators/xvmalloc-kmod/xvmalloc.c:
In function ‘xvFree’:
/var/tmp/compcache-0.5.1/sub-projects/allocators/xvmalloc-kmod/xvmalloc.c:427:
error: ‘KM_USER0’ undeclared (first use in this function)
/var/tmp/compcache-0.5.1/sub-projects/allocators/xvmalloc-kmod/xvmalloc.c:427:
error: type of formal parameter 3 is incomplete
/var/tmp/compcache-0.5.1/sub-projects/allocators/xvmalloc-kmod/xvmalloc.c:465:
error: type of formal parameter 2 is incomplete
/var/tmp/compcache-0.5.1/sub-projects/allocators/xvmalloc-kmod/xvmalloc.c:483:
error: type of formal parameter 2 is incomplete
make[4]: ***
[/var/tmp/compcache-0.5.1/sub-projects/allocators/xvmalloc-kmod/xvmalloc.o]
Error 1
make[3]: *** [_module_/var/tmp/compcache-0.5.1] Error 2
make[2]: *** [modules] Error 2
make[1]: *** [modules] Error 2
make[1]: Leaving directory `/usr/src/linux-2.6.16.60-0.21-obj/x86_64/smp'
What version of the product are you using? On what operating system?
The version compcache is: 0.5.1 and SO:
Linux linux03 2.6.16.60-0.21-smp #1 SMP Tue May 6 12:41:02 UTC 2008 x86_64
x86_64 x86_64 GNU/Linux
Sles10 SP2
Please provide any additional information below.
Original issue reported on code.google.com by [email protected]
on 9 Feb 2009 at 10:43
I'm trying to compile compcache for an older kernel on an DNS-323 network
attached storage
embedded arm device. Since I needed gcc 3.4.6 I went the route of chrooting
into Debian Etch to
install gcc kernel-packages (compile dependencies, etc). Built the dlink
kernel (from DNS-323
Firmware 1.06, a modified 2.6.12) then tried compile compcache.
(After adding the symlink //lib/modules/2.6.12.6-arm1/build ->
/usr/src/linux-2.6.12.6)
Results:
root@dlink-nas:/usr/src/compcache-0.5.3/sub-projects/allocators/xvmalloc-kmod#
make
make -C /lib/modules/2.6.12.6-arm1/build M=/usr/src/compcache-0.5.3/sub-
projects/allocators/xvmalloc-kmod modules
make[1]: Entering directory `/usr/src/linux-2.6.12.6'
CC [M] /usr/src/compcache-0.5.3/sub-projects/allocators/xvmalloc-kmod/xvmalloc.o
In file included from /usr/src/compcache-0.5.3/sub-projects/allocators/xvmalloc-
kmod/xvmalloc.c:22:
/usr/src/compcache-0.5.3/sub-projects/allocators/xvmalloc-kmod/xvmalloc.h:24:
error:
syntax error before "gfp_t"
/usr/src/compcache-0.5.3/sub-projects/allocators/xvmalloc-kmod/xvmalloc.h:24:
warning:
function declaration isn't a prototype
In file included from /usr/src/compcache-0.5.3/sub-projects/allocators/xvmalloc-
kmod/xvmalloc.c:23:
/usr/src/compcache-0.5.3/sub-projects/allocators/xvmalloc-kmod/xvmalloc_int.h:78
:
warning: implicit declaration of function `DIV_ROUND_UP'
/usr/src/compcache-0.5.3/sub-projects/allocators/xvmalloc-kmod/xvmalloc_int.h:78
: error:
variable-size type declared outside of any function
/usr/src/compcache-0.5.3/sub-projects/allocators/xvmalloc-kmod/xvmalloc.c: In
function
`test_flag':
/usr/src/compcache-0.5.3/sub-projects/allocators/xvmalloc-kmod/xvmalloc.c:37:
warning:
implicit declaration of function `BIT'
/usr/src/compcache-0.5.3/sub-projects/allocators/xvmalloc-kmod/xvmalloc.c: At
top level:
/usr/src/compcache-0.5.3/sub-projects/allocators/xvmalloc-kmod/xvmalloc.c:54:
warning:
"enum km_type" declared inside parameter list
/usr/src/compcache-0.5.3/sub-projects/allocators/xvmalloc-kmod/xvmalloc.c:54:
warning: its
scope is only this definition or declaration, which is probably not what you
want
/usr/src/compcache-0.5.3/sub-projects/allocators/xvmalloc-kmod/xvmalloc.c:55:
error:
parameter `type' has incomplete type
/usr/src/compcache-0.5.3/sub-projects/allocators/xvmalloc-kmod/xvmalloc.c:62:
warning:
"enum km_type" declared inside parameter list
/usr/src/compcache-0.5.3/sub-projects/allocators/xvmalloc-kmod/xvmalloc.c:63:
error:
parameter `type' has incomplete type
/usr/src/compcache-0.5.3/sub-projects/allocators/xvmalloc-kmod/xvmalloc.c:109:
error:
syntax error before "flags"
/usr/src/compcache-0.5.3/sub-projects/allocators/xvmalloc-kmod/xvmalloc.c:110:
warning:
function declaration isn't a prototype
/usr/src/compcache-0.5.3/sub-projects/allocators/xvmalloc-kmod/xvmalloc.c: In
function
`xv_alloc_page':
/usr/src/compcache-0.5.3/sub-projects/allocators/xvmalloc-kmod/xvmalloc.c:114:
error:
`flags' undeclared (first use in this function)
/usr/src/compcache-0.5.3/sub-projects/allocators/xvmalloc-kmod/xvmalloc.c:114:
error:
(Each undeclared identifier is reported only once
/usr/src/compcache-0.5.3/sub-projects/allocators/xvmalloc-kmod/xvmalloc.c:114:
error: for
each function it appears in.)
/usr/src/compcache-0.5.3/sub-projects/allocators/xvmalloc-kmod/xvmalloc.c: In
function
`insert_block':
/usr/src/compcache-0.5.3/sub-projects/allocators/xvmalloc-kmod/xvmalloc.c:222:
error:
`KM_USER1' undeclared (first use in this function)
/usr/src/compcache-0.5.3/sub-projects/allocators/xvmalloc-kmod/xvmalloc.c: In
function
`remove_block_head':
/usr/src/compcache-0.5.3/sub-projects/allocators/xvmalloc-kmod/xvmalloc.c:257:
error:
`KM_USER1' undeclared (first use in this function)
/usr/src/compcache-0.5.3/sub-projects/allocators/xvmalloc-kmod/xvmalloc.c: In
function
`remove_block':
/usr/src/compcache-0.5.3/sub-projects/allocators/xvmalloc-kmod/xvmalloc.c:283:
error:
`KM_USER1' undeclared (first use in this function)
/usr/src/compcache-0.5.3/sub-projects/allocators/xvmalloc-kmod/xvmalloc.c: At
top level:
/usr/src/compcache-0.5.3/sub-projects/allocators/xvmalloc-kmod/xvmalloc.c:303:
error:
syntax error before "gfp_t"
/usr/src/compcache-0.5.3/sub-projects/allocators/xvmalloc-kmod/xvmalloc.c:304:
warning:
function declaration isn't a prototype
/usr/src/compcache-0.5.3/sub-projects/allocators/xvmalloc-kmod/xvmalloc.c: In
function
`grow_pool':
/usr/src/compcache-0.5.3/sub-projects/allocators/xvmalloc-kmod/xvmalloc.c:308:
error:
`flags' undeclared (first use in this function)
/usr/src/compcache-0.5.3/sub-projects/allocators/xvmalloc-kmod/xvmalloc.c:312:
error:
`pool' undeclared (first use in this function)
/usr/src/compcache-0.5.3/sub-projects/allocators/xvmalloc-kmod/xvmalloc.c:315:
error:
`KM_USER0' undeclared (first use in this function)
/usr/src/compcache-0.5.3/sub-projects/allocators/xvmalloc-kmod/xvmalloc.c: In
function
`xv_create_pool':
/usr/src/compcache-0.5.3/sub-projects/allocators/xvmalloc-kmod/xvmalloc.c:339:
warning:
implicit declaration of function `roundup'
/usr/src/compcache-0.5.3/sub-projects/allocators/xvmalloc-kmod/xvmalloc.c:340:
warning:
implicit declaration of function `kzalloc'
/usr/src/compcache-0.5.3/sub-projects/allocators/xvmalloc-kmod/xvmalloc.c:340:
warning:
assignment makes pointer from integer without a cast
/usr/src/compcache-0.5.3/sub-projects/allocators/xvmalloc-kmod/xvmalloc.c: At
top level:
/usr/src/compcache-0.5.3/sub-projects/allocators/xvmalloc-kmod/xvmalloc.c:370:
error:
syntax error before "gfp_t"
/usr/src/compcache-0.5.3/sub-projects/allocators/xvmalloc-kmod/xvmalloc.c:371:
warning:
function declaration isn't a prototype
/usr/src/compcache-0.5.3/sub-projects/allocators/xvmalloc-kmod/xvmalloc.c: In
function
`xv_malloc':
/usr/src/compcache-0.5.3/sub-projects/allocators/xvmalloc-kmod/xvmalloc.c:376:
error:
`pagenum' undeclared (first use in this function)
/usr/src/compcache-0.5.3/sub-projects/allocators/xvmalloc-kmod/xvmalloc.c:377:
error:
`offset' undeclared (first use in this function)
/usr/src/compcache-0.5.3/sub-projects/allocators/xvmalloc-kmod/xvmalloc.c:378:
error:
`size' undeclared (first use in this function)
/usr/src/compcache-0.5.3/sub-projects/allocators/xvmalloc-kmod/xvmalloc.c:385:
error:
`pool' undeclared (first use in this function)
/usr/src/compcache-0.5.3/sub-projects/allocators/xvmalloc-kmod/xvmalloc.c:391:
error:
`flags' undeclared (first use in this function)
/usr/src/compcache-0.5.3/sub-projects/allocators/xvmalloc-kmod/xvmalloc.c:391:
error:
`GFP_NOWAIT' undeclared (first use in this function)
/usr/src/compcache-0.5.3/sub-projects/allocators/xvmalloc-kmod/xvmalloc.c:406:
error:
`KM_USER0' undeclared (first use in this function)
/usr/src/compcache-0.5.3/sub-projects/allocators/xvmalloc-kmod/xvmalloc.c: In
function
`xv_free':
/usr/src/compcache-0.5.3/sub-projects/allocators/xvmalloc-kmod/xvmalloc.c:457:
error:
`KM_USER0' undeclared (first use in this function)
make[2]: ***
[/usr/src/compcache-0.5.3/sub-projects/allocators/xvmalloc-kmod/xvmalloc.o]
Error 1
make[1]: ***
[_module_/usr/src/compcache-0.5.3/sub-projects/allocators/xvmalloc-kmod]
Error 2
make[1]: Leaving directory `/usr/src/linux-2.6.12.6'
My attempts so far:
typedef gfp_t -> removed the error at least...
manually adding some macros to kernel.h -> fixed the div_roundup related errors
Are these errors just because I have an older kernel or is this something wrong
with my includes?
Any ideas on how to resolve this?
Original issue reported on code.google.com by [email protected]
on 6 Jun 2009 at 12:56
Basically, I'm a little disappointed that we have to run a userland tool to
bring up the ramzswap devices.
Would it be possible for ramzswap to initialize and use a standard, default
ramzswap (for "embedded systems") in RAM (the same 25% of memory defaults
would be fine) such that when you boot, you ALWAYS have some kind of
compressed swap and at least one swap device initialized?
Extra swap devices on backing storage could then be added on top using
rzscontrol, or the on-boot one deconfigured and reconfigured.
Original issue reported on code.google.com by [email protected]
on 27 Dec 2009 at 2:24
What steps will reproduce the problem?
1. on ubuntu 9.04, git clone linus' kernel 2.6, checkout linux 2.6.30-rc2,
configure, build, install headers, boot with, etc.
2. checkout http://compcache.googlecode.com/svn/trunk, Revision: 372
3. run make
What is the expected output? What do you see instead?
I get:
wolf@wolf-desktop:~/compcache$ make
make -C /lib/modules/2.6.30-rc2-wolf/build \
M=/home/wolf/compcache/sub-projects/allocators/xvmalloc-kmod modules
make[1]: Entering directory `/home/wolf/linux-kernel/linux-2.6'
CC [M] /home/wolf/compcache/sub-projects/allocators/xvmalloc-kmod/xvmalloc.o
Building modules, stage 2.
MODPOST 1 modules
CC
/home/wolf/compcache/sub-projects/allocators/xvmalloc-kmod/xvmalloc.mod.o
LD [M]
/home/wolf/compcache/sub-projects/allocators/xvmalloc-kmod/xvmalloc.ko
make[1]: Leaving directory `/home/wolf/linux-kernel/linux-2.6'
make -C /lib/modules/2.6.30-rc2-wolf/build M=/home/wolf/compcache modules
make[1]: Entering directory `/home/wolf/linux-kernel/linux-2.6'
CC [M] /home/wolf/compcache/sub-projects/allocators/xvmalloc-kmod/xvmalloc.o
CC [M] /home/wolf/compcache/ramzswap.o
/home/wolf/compcache/ramzswap.c:59: warning: initialization from
incompatible pointer type
/home/wolf/compcache/ramzswap.c:60: warning: initialization from
incompatible pointer type
/home/wolf/compcache/ramzswap.c:61: warning: initialization from
incompatible pointer type
/home/wolf/compcache/ramzswap.c: In function ‘ramzswap_discard’:
/home/wolf/compcache/ramzswap.c:339: error: ‘struct ramzswap’ has no member
named ‘pages_zero’
make[2]: *** [/home/wolf/compcache/ramzswap.o] Error 1
make[1]: *** [_module_/home/wolf/compcache] Error 2
make[1]: Leaving directory `/home/wolf/linux-kernel/linux-2.6'
make: *** [all] Error 2
What version of the product are you using? On what operating system?
I repeat, this is upstream linux kernel, not ubuntu's soures. It runs fine
on this machine.
Please provide any additional information below.
Original issue reported on code.google.com by [email protected]
on 20 Apr 2009 at 4:54
Linux meriadoc 2.6.27.7-9-default #1 SMP 2008-12-04 18:10:04 +0100 i686
i686 i386 GNU/Linux
CC [M] /home/neko/compcache-0.5.1/compcache.o
/home/neko/compcache-0.5.1/compcache.c: In function ‘compcache_init’:
/home/neko/compcache-0.5.1/compcache.c:455: error: ‘QUEUE_FLAG_NONROT’
undeclared (first use in this function)
/home/neko/compcache-0.5.1/compcache.c:455: error: (Each undeclared
identifier is reported only once
/home/neko/compcache-0.5.1/compcache.c:455: error: for each function it
appears in.)
make[4]: *** [/home/neko/compcache-0.5.1/compcache.o] Error 1
make[3]: *** [_module_/home/neko/compcache-0.5.1] Error 2
make[2]: *** [sub-make] Error 2
make[1]: *** [all] Error 2
make[1]: Leaving directory `/usr/src/linux-2.6.27.7-9-obj/i386/default'
make: *** [all] Error 2
In compcache.c line 455 QUEUE_FLAG_NONROT is used to inform the block
subsystem that there is no seek cost on the virtual swap disk, however
while the functions to support swap discard are present in the kernel, this
flag came in just after SuSE finalized their kernel patches for this
release, so isn't present.
The use of QUEUE_FLAG_NONROT should be covered by a
#ifdef QUEUE_FLAG_NONROT
queue_flag_set_unlocked(QUEUE_FLAG_NONROT, compcache.disk->queue);
#endif
In order that swap discard support can be compiled and used. I found
absolutely no problems in adding this little fix, compcache works great :)
Original issue reported on code.google.com by [email protected]
on 28 Jan 2009 at 3:02
What steps will reproduce the problem?
1. make
What version of the product are you using? On what operating system?
Linux 2.6.32, compcache from the hg
Please provide any additional information below.
Since the 0.6 doesn't work with 2.6.32 (issue #48), I tried the hg source
as of today, but it doesn't compile. There are 3 xvmalloc.h in the source
tree, which one shold be used?
make
make -C "/lib/modules/2.6.32/build" M=/tmp/compcache modules
make[1]: Entering directory `/usr/src/linux-2.6.32/HOST'
make -C /usr/src/linux-2.6.32 O=/usr/src/linux-2.6.32/HOST/. modules
CC [M] /tmp/compcache/ramzswap_drv.o
In file included from /tmp/compcache/ramzswap_drv.c:35:
/tmp/compcache/ramzswap_drv.h:19:22: error: xvmalloc.h: No such file or
directory
/tmp/compcache/ramzswap_drv.c: In function 'ramzswap_ioctl_get_stats':
/tmp/compcache/ramzswap_drv.c:264: error: implicit declaration of function
'xv_get_total_size_bytes'
/tmp/compcache/ramzswap_drv.c: In function 'ramzswap_free_page':
/tmp/compcache/ramzswap_drv.c:638: error: implicit declaration of function
'xv_get_object_size'
/tmp/compcache/ramzswap_drv.c:641: error: implicit declaration of function
'xv_free'
/tmp/compcache/ramzswap_drv.c: In function 'ramzswap_write':
/tmp/compcache/ramzswap_drv.c:895: error: implicit declaration of function
'xv_malloc'
/tmp/compcache/ramzswap_drv.c: In function 'reset_device':
/tmp/compcache/ramzswap_drv.c:1074: error: implicit declaration of function
'xv_destroy_pool'
/tmp/compcache/ramzswap_drv.c: In function 'ramzswap_ioctl_init_device':
/tmp/compcache/ramzswap_drv.c:1184: error: implicit declaration of function
'xv_create_pool'
/tmp/compcache/ramzswap_drv.c:1184: warning: assignment makes pointer from
integer without a cast
make[4]: *** [/tmp/compcache/ramzswap_drv.o] Error 1
make[3]: *** [_module_/tmp/compcache] Error 2
make[2]: *** [sub-make] Error 2
make[1]: *** [all] Error 2
make[1]: Leaving directory `/usr/src/linux-2.6.32/HOST'
make: *** [all] Error 2
Original issue reported on code.google.com by [email protected]
on 3 Dec 2009 at 3:20
What steps will reproduce the problem?
1. run:
a=1
while ((1)); do
echo "Loop: $a"
a=$((a = a + 1))"
cat /proc/swaps
cat /proc/compcache
memhog 512m
done
2. Both on x86 and x86_64, system freezes within 5 iterations (1st
iteration is always successful).
3. System: Fedora Linux VMs:
arch: x86, x64
mem: 512m
vcpus: 1
What is the expected output? What do you see instead?
System freezes with nothing useful in syslog. Issued flushes after crash
using sysrq but still nothing useful in logs.
Please use labels and text to provide additional information.
Screenshots attached.
Original issue reported on code.google.com by [email protected]
on 31 Dec 2008 at 1:49
Attachments:
What steps will reproduce the problem?
1. Compile with 2.6.32_rc6
2. Fails to build with errors
3.
What version of the product are you using? On what operating system?
0.6
Please provide any additional information below.
CC [M]
/var/tmp/portage/sys-kernel/compcache-0.6/work/compcache-0.6/ramzswap.o
/var/tmp/portage/sys-kernel/compcache-0.6/work/compcache-0.6/ramzswap.c: In
function 'ramzswap_make_request':
/var/tmp/portage/sys-kernel/compcache-0.6/work/compcache-0.6/ramzswap.c:926:
error:
implicit declaration of function 'bio_discard'
/var/tmp/portage/sys-kernel/compcache-0.6/work/compcache-0.6/ramzswap.c: In
function 'ramzswap_ioctl_init_device':
/var/tmp/portage/sys-kernel/compcache-0.6/work/compcache-0.6/ramzswap.c:1027:
error: implicit declaration of function 'blk_queue_set_discard'
make[2]: ***
[/var/tmp/portage/sys-kernel/compcache-0.6/work/compcache-0.6/ramzswap.o]
Error 1
make[1]: ***
[_module_/var/tmp/portage/sys-kernel/compcache-0.6/work/compcache-0.6]
Error 2
make[1]: Leaving directory `/usr/src/linux-2.6.32-rc6'
make: *** [all] Error 2
Original issue reported on code.google.com by [email protected]
on 12 Nov 2009 at 12:44
What steps will reproduce the problem?
1. Step1
2. Step2
3. Step3
What is the expected output? What do you see instead?
Crash!
Please use labels and text to provide additional information.
Log snippets.
attach log, screenshots (if any).
Original issue reported on code.google.com by [email protected]
on 26 Feb 2008 at 11:26
What steps will reproduce the problem?
1. swapon /dev/ramzswap0
2. stress --vm 7 --vm-keep
3. wait mere seconds for /dev/ramzswap0 to be utilized
4. swapoff /dev/ramzswap0
What version of the product are you using? On what operating system?
Both 0.6 and the latest source checkout (as of Oct. 12, 11:00) have this
issue. Linux source 2.6.31.2 in Karmic, compiled with Ubuntu patches 10.34,
autoiso_xorg, BFS 303, and swap_free_notify.
Please provide any additional information below.
This problem does not occur until the ramzswap0 device has been utilized,
nor does it occur when using just a standard linux swap partition.
I am using an Asus Eee PC 1000H (Best Buy's custom version).
rzscontrol /dev/ramzswap0 --memlimit_kb=998400 --backing_swap=/dev/sda5 --
init
Attached is a portion of a log salvaged from /var/log/kern.log after a
magic SysRq reboot. This was salvaged the first time the problem occurred.
memlimit_kb had been set to 1.5gb at the time, higher than the recommended
limit of ram/2. I have since reproduced this error many times with the
above stated --memlimit_kb=998400.
Original issue reported on code.google.com by [email protected]
on 12 Oct 2009 at 5:59
Attachments:
[deleted issue]
What steps will reproduce the problem?
Compiling compcache with the latest CodeSourcery toolchain for arm against
kernel 2.6.27.
Push compcache modules to device.
insmod works fine, dmesg reports normal output
swapon reboots the device.
This however works fine in the android emulator, I have no idea why this
happens.
Any ideas? Or ideas on how to debug this? I'm thinking put some sleeps in
whatever code is triggered on a swapon, but I'm not sure where to look. If
you could give me any clues that'd be very helpfull.
Original issue reported on code.google.com by [email protected]
on 25 Jun 2009 at 7:32
What steps will reproduce the problem?
1. Download latest compcache (0.4)
2. Unpack
3. make
Running make returns a message saying "No rule to process target
`kernel/bounds.c', needed by `kernel/bounds.s'. Stop." Full error output
(messages in portuguese) below:
diego@coldwire:/usr/src/compcache-0.4$ sudo make
make -C /lib/modules/2.6.27-7-generic/build M= modules
make[1]: Entrando no diretório `/usr/src/linux-headers-2.6.27-7-generic'
CHK include/linux/version.h
CHK include/linux/utsrelease.h
make[2]: *** Sem regra para processar o alvo `kernel/bounds.c', necessário
por `kernel/bounds.s'. Pare.
make[1]: ** [prepare0] Erro 2
make[1]: Saindo do diretório `/usr/src/linux-headers-2.6.27-7-generic'
make: ** [all] Erro 2
Original issue reported on code.google.com by [email protected]
on 28 Nov 2008 at 6:52
What steps will reproduce the problem?
1. Engage compcache with some memory intensive tasks
2. Suspend to RAM
3. Resume from RAM. Some of the times, compcache decompression fails and
one of the big memory hog process (usually firefox-bin) will die.
What is the expected output? What do you see instead?
Resume should proceed without errors and there should be no swap-in errors.
What version of the product are you using? On what operating system?
compcache-0.4, 2.6.26.3, x86_64
Please provide any additional information below.
[117068.638324] compcache: Decompression failed! err=-6, page=93709, len=1354
[117068.638333] Read-error on swap-device (252:0:749672)
Original issue reported on code.google.com by [email protected]
on 30 Aug 2008 at 4:56
What steps will reproduce the problem?
1. cat /proc/tlsfinfo segfaults.
2. GPF
3. modules won't unload afterwards
What is the expected output? What do you see instead?
What version of the product are you using? On what operating system?
0.3 on 2.6.25.7 vanilla kernel.
Please provide any additional information below.
[119100.408327] Modules linked in: compcache tlsf wm8775 tuner cx25840
snd_pcm_oss snd_mixer_oss snd_seq_oss snd_seq_midi_event snd_seq
snd_seq_device snd_intel8x0 snd_ac97_codec snd_pcm snd_timer snd
snd_page_alloc pvrusb2 cx2341x v4l2_common tveeprom uvcvideo abituguru
vboxdrv forcedeth nvidia(P) tea5767 tda8290 tuner_xc2028 tda9887
tuner_simple mt20xx tea5761 compat_ioctl32 videodev v4l1_compat xfs
ehci_hcd uhci_hcd ohci_hcd evdev tun ac97_bus usbhid usb_storage usblp ahci
[last unloaded: tlsf]
[119100.408350] Pid: 27777, comm: cat Tainted: P 2.6.25.7 #5
[119100.408352] RIP: 0010:[<ffffffff88ad3096>] [<ffffffff88ad3096>]
:tlsf:tlsf_show+0x16/0x180
[119100.408358] RSP: 0018:ffff81000d193e28 EFLAGS: 00010206
[119100.408360] RAX: ffffffff88ad4ec0 RBX: 1111110fffffe807 RCX:
11111110000000bf
[119100.408362] RDX: ffff81000d193e90 RSI: 1111110fffffe807 RDI:
ffff81004ff92f40
[119100.408364] RBP: ffff81004ff92f40 R08: 0000000000000000 R09:
0000000000000001
[119100.408365] R10: ffff81000d193d48 R11: 000000007a4ee153 R12:
0000000000000156
[119100.408367] R13: ffff81000d193e90 R14: 0000000000000400 R15:
0000000000000000
[119100.408369] FS: 00007f17b29966f0(0000) GS:ffff81007f873ec0(0000)
knlGS:00000000f3231b90
[119100.408371] CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
[119100.408373] CR2: 00007f17b2515180 CR3: 0000000073926000 CR4:
00000000000006a0
[119100.408374] DR0: 0000000000000000 DR1: 0000000000000000 DR2:
0000000000000000
[119100.408376] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7:
0000000000000400
[119100.408378] Process cat (pid: 27777, threadinfo ffff81000d192000, task
ffff81000d2bf7f0)
[119100.408379] Stack: 000000000002fd5d 00000000000056f6 000000000000004a
0000000000000000
[119100.408383] 0000000000000000 ffff81004ff92f40 1111110fffffe807
ffffffff802b0273
[119100.408387] ffff81004ee5fb48 ffff81000d193f50 000000000060b000
ffff81007d94e080
[119100.408390] Call Trace:
[119100.408396] [<ffffffff802b0273>] ? seq_read+0x1f3/0x2f0
[119100.408403] [<ffffffff802d616e>] ? proc_reg_read+0x7e/0xc0
[119100.408408] [<ffffffff80292fe8>] ? vfs_read+0xc8/0x170
[119100.408412] [<ffffffff80293193>] ? sys_read+0x53/0xa0
[119100.408416] [<ffffffff8020b4eb>] ? system_call_after_swapgs+0x7b/0x80
[119100.408421]
[119100.408422]
[119100.408423] Code: 00 00 00 00 00 48 89 f7 48 c7 c6 c0 4e ad 88 e9 f1 d2
7d f7 90 55 48 89 fd 53 48 89 f3 48 83 ec 28 48 83 fe 01 0f 84 12 01 00 00
<48> 8b 86 a0 18 00 00 4c 8b 8e 90 18 00 00 48 8d 93 18 19 00 00
[119100.408442] RIP [<ffffffff88ad3096>] :tlsf:tlsf_show+0x16/0x180
[119100.408446] RSP <ffff81000d193e28>
[119100.408452] ---[ end trace 3511239709107788 ]---
Original issue reported on code.google.com by [email protected]
on 12 Aug 2008 at 9:38
What steps will reproduce the problem?
I just compiled the mainline version and I'm noticing that performance is
slower with this version than 0.6.
Is this something known? One thing I did is that I ported the
swap_free_notify code from 0.6 into the mainline version and it seems to be
working ok, but I'm wondering if that could be the cause of my performance
issues.
What version of the product are you using? On what operating system?
mainline compcache on kernel 2.6.29 on android OS
Please provide any additional information below.
Original issue reported on code.google.com by [email protected]
on 23 Oct 2009 at 9:06
What steps will reproduce the problem?
1. Load compcache
2. Run ubiquity (install) from Ubuntu LiveCD
What is the expected output? What do you see instead?
I expect that Ubiquity will not offer to install to compcache0
What version of the product are you using? On what operating system?
Ubuntu 7.10 and Hardy
Please provide any additional information below.
Seems I was mistaken, and ubiquity does install to devices that end in 0.
(I think the actual reason ubiquity didn't seem compcache0 last time I
tried was because it was actually a hardlink). To hide the device from
ubiquity in this way we would probably have to give a non-zero partition
number. (note how sda has a 'size' of 0, which in the partitions represents
the partion number)
$ ls /dev/sda* -l
brw-rw---- 1 root disk 8, 0 2008-03-12 23:41 /dev/sda
brw-rw---- 1 root disk 8, 1 2008-03-12 14:41 /dev/sda1
I am working around this by mv'ing /dev/compcache0 to /dev/ramzswap0
Original issue reported on code.google.com by [email protected]
on 13 Mar 2008 at 11:14
-What steps will reproduce the problem?
1. swapon /dev/compcache0
2. use system so that compcache swap gets used
3. swapoff /dev/compcache0 (all compressed pages are decompressed and moved
from compcache store to normal memory)
4. swapon /dev/compcache0
-What is the expected output?
/proc/compcache should show 'CurrentMem' beeing zero.
-What do you see instead?
/proc/compcache shows nonzero 'CurrentMem'.
I am not sure if the memory is really still allocated, but it looks
nevertheless ugly in the stats.
-What version of the product are you using? On what operating system?
0.2
-Please provide any additional information below.
Maybe all statistics should be reset on swapon.
Original issue reported on code.google.com by [email protected]
on 6 Mar 2008 at 8:05
What steps will reproduce the problem?
1. sudo ./load_modules.sh
2. sudo ./rzscontrol /dev/ramzswap0 --init -b /dev/sda5
3. sudo ./rzscontrol /dev/ramzswap0 --reset
4. sudo ./rzscontrol /dev/ramzswap0 --init
5. sudo ./rzscontrol /dev/ramzswap0 --stats
We then note that "rzscontrol --stats" reports that the backing swap device
"/dev/sda5" is in use. I would expect that the device would not be in use
as we have --reset the device and not specified the backing swap device on
the next --init. If this is by design then at the very least, I would
expect there to be a convenient and well documented way of telling
compcache to stop using backing swap.
What version of the product are you using? On what operating system?
Compache 0.6 on Ubuntu 9.10 in a 32bit VM.
Please provide any additional information below.
As shown by the attached log, the following is not sufficient to prevent
compcache from using backing swap.
sudo ./rzscontrol /dev/ramzswap0 --init -d 20000 -b ''
Original issue reported on code.google.com by [email protected]
on 6 Nov 2009 at 6:08
Attachments:
-- What steps will reproduce the problem?
1. Mount 175MB compcache
2. Run ubiquity installer (e.g. from Hardy Alpha 4)
3.
-- What is the expected output? What do you see instead?
I notice that machine becomes very slow, even if I remove compcache.
Also VMalloc is much larger than normal (even after rmmod compcache and tlsf):
VmallocTotal: 770040 kB
VmallocUsed: 5164 kB
VmallocChunk: 737848 kB
-- What version of the product are you using? On what operating system?
compcache-0.2. I don't recall this happening on -0.1.
Please provide any additional information below.
syslog etc. are available at:
https://bugs.launchpad.net/ubuntu/+source/ubiquity/+bug/199048
MemTotal: 255944 kB
MemFree: 4340 kB
Buffers: 6420 kB
Cached: 63760 kB
SwapCached: 4180 kB
Active: 195040 kB
Inactive: 32076 kB
HighTotal: 0 kB
HighFree: 0 kB
LowTotal: 255944 kB
LowFree: 4340 kB
SwapTotal: 240932 kB
SwapFree: 164752 kB
Dirty: 4648 kB
Writeback: 0 kB
AnonPages: 156448 kB
Mapped: 35896 kB
Slab: 14352 kB
SReclaimable: 7072 kB
SUnreclaim: 7280 kB
PageTables: 1988 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
CommitLimit: 368904 kB
Committed_AS: 483296 kB
VmallocTotal: 770040 kB
VmallocUsed: 5164 kB
VmallocChunk: 737848 kB
Original issue reported on code.google.com by [email protected]
on 6 Mar 2008 at 8:38
Hi,
I tried compcache 0.4 (actually the SVN from 2008-08-24) on a PS3 using
kernel 2.6.26-rc5 and experience freezes after a short while.
dmesg reveals that all calls to tslf_malloc are failing (~ line 214 of
compcache.c), starting from `page 1'.
I tried running it in place as well as applying the patches to the kernel.
A PS3 has 256 MB of RAM. The SPUs (coprocessors) are not used for normal
kernel functions, and shouldn't impact concurrency, etc. (It would be
possible to use them to accelerate compression, I suppose.)
Original issue reported on code.google.com by [email protected]
on 25 Aug 2008 at 1:33
blk_queue_hardsect_size is renamed to blk_queue_logical_block_size in
patches for 2.6.31.
Original issue reported on code.google.com by [email protected]
on 21 Jun 2009 at 7:13
What steps will reproduce the problem?
1. Make some change on Makefile to use arm arch and android kernel
2. try to build
What version of the product are you using? On what operating system?
0.6 on android (arm)
Please provide any additional information below.
Log of the compilation :
compcache 0.6 don't make correctly, i have some errors :
make -C "/media/Divers/Android/SOURCES/Galaxy/ORG/BSP/kernel_2.6.27/" \
M=/media/Divers/Android/SOURCES/compcache/sub-projects/allocators/xvmalloc-kmod
modules
make[1]: entrant dans le répertoire «
/media/Divers/Android/SOURCES/Galaxy/ORG/BSP/kernel_2.6.27 »
CC [M]
/media/Divers/Android/SOURCES/compcache/sub-projects/allocators/xvmalloc-kmod/xv
malloc.o
Building modules, stage 2.
MODPOST 1 modules
LD [M]
/media/Divers/Android/SOURCES/compcache/sub-projects/allocators/xvmalloc-kmod/xv
malloc.ko
make[1]: quittant le répertoire «
/media/Divers/Android/SOURCES/Galaxy/ORG/BSP/kernel_2.6.27 »
make -C "/media/Divers/Android/SOURCES/Galaxy/ORG/BSP/kernel_2.6.27/"
M=/media/Divers/Android/SOURCES/compcache modules
make[1]: entrant dans le répertoire «
/media/Divers/Android/SOURCES/Galaxy/ORG/BSP/kernel_2.6.27 »
CC [M]
/media/Divers/Android/SOURCES/compcache/sub-projects/allocators/xvmalloc-kmod/xv
malloc.o
CC [M] /media/Divers/Android/SOURCES/compcache/ramzswap.o
/media/Divers/Android/SOURCES/compcache/ramzswap.c:50: error: expected
declaration specifiers or '...' before 'fmode_t'
/media/Divers/Android/SOURCES/compcache/ramzswap.c:57: warning:
initialization from incompatible pointer type
/media/Divers/Android/SOURCES/compcache/ramzswap.c: In function
'ramzswap_read':
/media/Divers/Android/SOURCES/compcache/ramzswap.c:693: error: implicit
declaration of function 'set_swap_free_notify'
/media/Divers/Android/SOURCES/compcache/ramzswap.c: In function
'ramzswap_make_request':
/media/Divers/Android/SOURCES/compcache/ramzswap.c:926: error: implicit
declaration of function 'bio_discard'
/media/Divers/Android/SOURCES/compcache/ramzswap.c: In function
'ramzswap_ioctl_init_device':
/media/Divers/Android/SOURCES/compcache/ramzswap.c:1024: error: implicit
declaration of function 'blk_queue_nonrot'
/media/Divers/Android/SOURCES/compcache/ramzswap.c:1025: error:
'QUEUE_FLAG_NONROT' undeclared (first use in this function)
/media/Divers/Android/SOURCES/compcache/ramzswap.c:1025: error: (Each
undeclared identifier is reported only once
/media/Divers/Android/SOURCES/compcache/ramzswap.c:1025: error: for each
function it appears in.)
/media/Divers/Android/SOURCES/compcache/ramzswap.c:1027: error: implicit
declaration of function 'blk_queue_set_discard'
/media/Divers/Android/SOURCES/compcache/ramzswap.c: At top level:
/media/Divers/Android/SOURCES/compcache/ramzswap.c:1077: error: expected
declaration specifiers or '...' before 'fmode_t'
make[2]: *** [/media/Divers/Android/SOURCES/compcache/ramzswap.o] Erreur 1
Original issue reported on code.google.com by [email protected]
on 22 Aug 2009 at 1:04
Hello.
Sorry if I ask question in wrong place.
Does compcache still supports page-cache compression ?
If not - is it possible, maybe with some tricks (no matter how hard), to do
so ?
I need this for large Mysql MyISAM database. It uses buffer space for index
only, and there is no data cache. It relies on page cache for data. If only
it was possible to compress file (page) cache ..
Original issue reported on code.google.com by [email protected]
on 17 Jun 2009 at 7:28
What steps will reproduce the problem?
1. Ran memory intensive jobs with swappiness set to 100
2. After a while the memory doesn't add up
3.
What is the expected output? What do you see instead?
The memory should add up.
What version of the product are you using? On what operating system?
0.4, 2.6.25.7, x86_64.
Please provide any additional information below.
I took numbers from free, top's resident column and the numbers reported by
cat /proc/compcache.
$ free
total used free shared buffers cached
Mem: 2058640 1741144 317496 0 45464 117228
-/+ buffers/cache: 1578452 480188
Swap: 3243820 1293832 1949988
$ top -b -n 1 | tail -n +8 > /tmp/top.vals
$ sum=0
$ for i in `cat /tmp/top.vals|awk '{print $6}'`;do
i=${i/m/*1024};sum=$((sum+i));done
$ echo $sum
462824
$ cat /proc/compcache
DiskSize: 1300000 kB
NumReads: 2967103
NumWrites: 1145586
FailedReads: 0
FailedWrites: 0
InvalidIO: 0
GoodCompress: 92 %
NoCompress: 0 %
CurrentPages: 231314
CurrentMem: 239362 kB
PeakMem: 251203 kB
Now add up:
317496 (RAM free)+45464 (buffers)+117228 (cache) +462824 (currently
resident memory for all programs)+239362 (current usage by compcache) = 1182374
I would have expected this number to be close to 2GB, whereas it is close
to half of that.
Where is 876266 KB of my memory?
Original issue reported on code.google.com by [email protected]
on 19 Aug 2008 at 3:35
What steps will reproduce the problem?
1. Load compcache
2. Run several intensive processes on the machine
3.
What is the expected output? What do you see instead?
All processes should be on 100% CPU utilization (my machine has 4 cores).
What version of the product are you using? On what operating system?
0.5.1 on 2.6.16.
Please provide any additional information below.
Currently there's a mutex protecting compression since there's only one
compression buffer.
It would be better to keep several compression buffers and have them
working in parallel. I did this fix (dirty :)) and noticed that it's even
possible for 10 different requests to be sent to comp-cache
simultaneously. Enabling more writes to happen in parallel by keeping
several buffers improves performance.
Original issue reported on code.google.com by [email protected]
on 5 Feb 2009 at 9:31
What steps will reproduce the problem?
1. Load compcache with a measurable amount of swap (say 50% of machine RAM)
2. Run several processes which will bring the machine deep into swap area
3.
What is the expected output? What do you see instead?
Expected - all processes work fine.
What I see - the OOM killer starts killing random jobs.
What version of the product are you using? On what operating system?
0.5.1, on the 2.6.16.
Please provide any additional information below.
The only solution which comes to my mind is to preallocate the necessary
space.
Unfortunately, usually swapping begins when the machine is already loaded,
and then dynamically requesting memory for compressed pages can cause the
kernel to look call the OOM killer to free up pages.
Original issue reported on code.google.com by [email protected]
on 5 Feb 2009 at 9:27
What steps will reproduce the problem?
1. Download linux-omap 2.6.21 kernel. I'm not sure, but maybe it's broked
for any 2.6.21 kernel.
2. Edit Makefile to point to kernel dir.
3. Execute "make"
What is the expected output? What do you see instead?
The expected output is all kernel modules compiled. I see a lot of
compiling errors. See attached file.
What version of the product are you using? On what operating system?
Linux kernel 2.6.21 for OMAP platform. Cross compiler for ARM and Ubuntu
Intrepid.
Please provide any additional information below.
I know this is a kernel version issue since I can get compache compiled for
latest linux-omap kernel (which is 2.6.29). But, when I tried to compile to
linux-2.6.21, I got those errors.
Original issue reported on code.google.com by [email protected]
on 26 Feb 2009 at 3:38
Attachments:
What steps will reproduce the problem?
1.make
2.execute ./load_modules.sh as root
3.
What version of the product are you using? On what operating system?
Compcache v0.6 - OpenSUSE 11.1 x86_64 gcc 4.4.1 with 2.6.31 kernel
Please provide any additional information below.
dmesg message says:
ramzswap: no symbol version for lzo1x_decompress_safe
ramzswap: Unknown symbol lzo1x_decompress_safe
ramzswap: no symbol version for lzo1x_1_compress
ramzswap: Unknown symbol lzo1x_1_compress
while
lsmod | grep lzo
lzo 2560 0
lzo_decompress 3248 1 lzo
lzo_compress 2912 1 lzo
Original issue reported on code.google.com by [email protected]
on 5 Oct 2009 at 3:32
Maybe compcache could utilize the discard blocks commands emerging in the
kernel. Something concerning swap is proposed in
http://lwn.net/Articles/297695/ . Looks like this framework will tell the
underlying devices (in our case compcache module) which blocks/areas of
swap are no longer needed. I think compcache could the free the memory used
for this areas. Which it couldn't do till now and used memory was
constantly increasing. Am I wrong. This is an enhancement, not a bug report :)
Original issue reported on code.google.com by [email protected]
on 19 Sep 2008 at 11:50
I've built the multiple_rzs branch from HG (as of yesterday) for Android
(2.6.29-msm kernel) and I'm not getting good results with it. The patched
up version of 0.5 is working fine, though.
Dmesg from module load, "rzscontrol /dev/block/ramzswap0 --init", and
swapon (no backing device used)..
<6>[ 999.533630] ramzswap: NUM_DEVICES not specified. Using default: 1
<6>[ 999.540588] ramzswap: Creating 1 devices ...
<6>[ 1222.411437] ramzswap: disk size not provided. You can use disksize_kb
module param to specify size.
<6>[ 1222.411468] Using default: (25% of RAM).
<6>[ 1222.427246] ramzswap: disk size set to 24468 kB
<6>[ 1272.504028] Adding 24464k swap on /dev/block/ramzswap0. Priority:-1
extents:1 across:24464k SSD
And the stats look like this:
# rzscontrol /dev/block/ramzswap0 --stats
DiskSize: 37624 kB
NumReads: 171
NumWrites: 113
FailedReads: 0
FailedWrites: 391
InvalidIO: 0
PagesDiscard: 0
ZeroPages: 0
GoodCompress: 0 %
NoCompress: 0 %
PagesStored: 0
PagesUsed: 0
OrigDataSize: 0 kB
ComprDataSize: 0 kB
MemUsedTotal: 9 kB
So it does not appear to be compressing anything. Any help is appreciated!
Original issue reported on code.google.com by [email protected]
on 22 Jul 2009 at 2:02
What steps will reproduce the problem?
1. Create a swap file
2. Enable compcache with backing swap using the swap file
3. Swapon ramzswap, error: invalid argument
What version of the product are you using? On what operating system?
Compcache 0.6. Android OS running on Tmobile G1.
Please provide any additional information below.
Using the exact same steps with a linux-swap partition will work.
Compcache gives no errors, the swapon command is the only time an error is
seen.
Original issue reported on code.google.com by [email protected]
on 29 Aug 2009 at 8:17
Generally reading from a structure at the same time another CPU is writing
is a bad idea, but compcache does not seem bother with read locks. Perhaps
compcache should use the new (2007) rw_mutex functionality such as the
"rw_mutex_read_lock" function. See:
http://linux.derkeiler.com/Mailing-Lists/Kernel/2007-05/msg05491.html
Also, locking while updating stats might not be a bad idea, or
alternatively use atomic operations. See:
http://www.mjmwired.net/kernel/Documentation/atomic_ops.txt
Original issue reported on code.google.com by [email protected]
on 4 Apr 2008 at 2:50
What steps will reproduce the problem?
1. run: modprobe compcache && mv /dev/compcache0 /dev/ramzswap0
What is the expected output? What do you see instead?
I expect to have a new device named /dev/ramzswap0. I actually get an error
claiming that /dev/compcache0 does not exist.
What version of the product are you using? On what operating system?
compcache-0.2 on Ubuntu Hardy
Please provide any additional information below.
sleep 1 seems to be enough to ensure that the device has been created.
However it would be nice if modprobe/insmod did not return until the device
has been created, as this avoids timing gotchas (sleep 0.01 is *sometimes*
enough).
Original issue reported on code.google.com by [email protected]
on 13 Mar 2008 at 11:19
I'm using the latest hg version of compcache (0.6 doesn't compile for my
kernel) with the git tuxonice kernel sources. I can use ramzswap without a
backing swap partition, but trying to activate swap with one fails:
[root@alice rc.d]# insmod /usr/local/compcache/ramzswap.ko num_devices=1
[root@alice rc.d]# rzscontrol /dev/ramzswap0 -b /dev/sda5 -m 315392 --init
[root@alice rc.d]# swapon /dev/ramzswap0
swapon: /dev/ramzswap0: read swap header failed: Input/output error
[root@alice rc.d]# dmesg
[93071.135559] ramzswap: Creating 1 devices ...
[93085.448967] ramzswap: Backing swap set to /dev/sda5
[93085.448975] ramzswap: Memory limit set to 315392 kB
[93085.448980] ramzswap: Using backing swap device: /dev/sda5
[93106.126079] __ratelimit: 122 callbacks suppressed
[93106.126086] Buffer I/O error on device ramzswap0, logical block 0
[93106.126094] Buffer I/O error on device ramzswap0, logical block 1
[93106.126100] Buffer I/O error on device ramzswap0, logical block 2
[93106.126106] Buffer I/O error on device ramzswap0, logical block 3
[93106.126116] Buffer I/O error on device ramzswap0, logical block 4
[93106.126122] Buffer I/O error on device ramzswap0, logical block 5
[93106.126128] Buffer I/O error on device ramzswap0, logical block 6
[93106.126134] Buffer I/O error on device ramzswap0, logical block 7
[93106.126143] Buffer I/O error on device ramzswap0, logical block 8
[93106.126149] Buffer I/O error on device ramzswap0, logical block 9
Original issue reported on code.google.com by [email protected]
on 19 Oct 2009 at 8:45
What steps will reproduce the problem?
1. Download my "rand2mem" benchmark (attached)
2. Attempt to run BACKING_SWAP_DEVICE=/dev/sda5 ./rand2mem.sh b11
3. Attempt to run BACKING_SWAP_DEVICE=/dev/sda5 ./rand2mem_loop.sh
I find that the kernel BUG report attached as "bug_compcache_0.6" will
often (but not always) appear in /var/log/syslog.
What version of the product are you using? On what operating system?
Ubuntu 9.10 in a 32bit Virtual Box VM, with compache-0.6.
Please provide any additional information below.
This bug seems intermittent. Sometimes it doesn't occur. I notice the bug
when I attempt to swap off and the swap off process freezes.
Original issue reported on code.google.com by [email protected]
on 6 Nov 2009 at 5:50
Attachments:
What steps will reproduce the problem?
1. Patch a 2.6.26.5 tree with compcache
2. Compile kernel with make-kpkg
What is the expected output?
- Kernel .debs :)
What do you see instead?
- Compilation error - something about strtoul at compcache.c:465
Please provide any additional information below.
- I changed the call from "strtoul(...)" to "strict_strtoul(...)", and it
works.
Original issue reported on code.google.com by [email protected]
on 10 Oct 2008 at 7:29
What steps will reproduce the problem?
1. Load compcache on any machine with compcache_size_kbyts=20000000
2.
3.
What is the expected output? What do you see instead?
Expected - Cache of size 20G.
Happens - machine is stuck.
What version of the product are you using? On what operating system?
compcache 0.4.
Please provide any additional information below.
The problem happens due to a failure in allocating the tables with vmalloc.
16G of swap require (16G/pagesize)*16 (size of table entry) = 64M of
memory.
Apparently, vmalloc cannot allocate more than 64M in a chunk (I believe
this depends on OS configurations).
Obviously this is not a problem in small configuration, but on servers
(yes, it's useful there too :)) it's an issue.
I have fixed this for the time being by using several compcache.table-s,
each one relating to a different range (0-16, 16-32, etc.).
I can either commit the fix myself or let you fix it the way you choose.
BTW, I believe that when vmalloc fails (and it does return 0, it didn't
hang), compcache shouldn't hang the machine, so might be nice to fix this
as well.
Thanks!
Original issue reported on code.google.com by [email protected]
on 8 Oct 2008 at 12:39
Hi I don't know if this is related to compcache or openvz but it can't hurt
to post this here as well.
Bug info:
http://bugzilla.openvz.org/show_bug.cgi?id=1125
Original issue reported on code.google.com by [email protected]
on 19 Dec 2008 at 11:23
Hi,
I tried the backing store load and it complains about the memlimit_kb value
no matter what value I choose. Invalid parameter..
What's the difference between having a ram disk as a swap drive and using a
backing store parameter?
Original issue reported on code.google.com by [email protected]
on 27 Feb 2009 at 2:28
Is there a way to configure how often swap free notify occurs? I've
noticed that compcache seems to be more aggressive in freeing up stale
pages than regular linux swap, which is causing applications to be
offloaded from memory/swap faster than I would like.
I've played around with swappiness but that seems to control how often
pages are moved to swap and not often often pages are freed from swap.
I'm running latest compcache 0.6 on android with 2.26.29 kernel using
cyanogen's 4.1.9 ROM.
Original issue reported on code.google.com by [email protected]
on 14 Sep 2009 at 4:20
can't use compache:
$ swapon /dev/ramzswap0
swapon: /dev/ramzswap0: Invalid argument
dmesg:
ramzswap: NUM_DEVICES not specified. Using default: 1
ramzswap: Creating 1 devices ...
Unable to find swap-space signature
$ uname -a
Linux coolekiste 2.6.30.5 #10 Mon Aug 17 10:38:30 CEST 2009 i686 Intel(R)
Pentium(R) M processor 1.70GHz GenuineIntel GNU/Linux
Original issue reported on code.google.com by [email protected]
on 25 Aug 2009 at 2:59
What steps will reproduce the problem?
1. decompress the archive - ok
2. run the "make" command - problem
What is the expected output? What do you see instead?
Instead of compiling the program, I get an error from the terminal:
licata@HAL9000:~/compcache-0.5.3$ make
make -C /lib/modules/2.6.27-8-eeepc/build \
M=/home/licata/compcache-0.5.3/sub-projects/allocators/xvmalloc-kmod modules
make: *** /lib/modules/2.6.27-8-eeepc/build: No such file or directory. Stop.
make: *** [all] Error 2
What version of the product are you using? On what operating system?
I'm using the latest version of compcache present on this website: 0.5.3
I run on Easy peasy, the ubuntu intrepid version optimized for eeepc
Please provide any additional information below.
I have never installed or compiled compcache before, but after removing the
swap partition from my HD I found that some swap were still on the system.
Using the command cat/proc/swaps I get this informations:
licata@HAL9000:~/compcache-0.5.3$ cat /proc/swaps
Filename Type Size Used Priority
/dev/ramzswap0 partition 516108 0 100
If I try to unload this ramzswap with the unuse command without compiling I
get this:
licata@HAL9000:~/compcache-0.5.3$ ./unuse_ramzswap.sh
ramzswap module not loaded
But if I try to load the ramzswap I get this:
licata@HAL9000:~/compcache-0.5.3$ ./use_ramzswap.sh
ramzswap swap device already active.
Any suggestion?
Original issue reported on code.google.com by [email protected]
on 11 Apr 2009 at 5:17
What steps will reproduce the problem?
1.untar .6pre2 to ~/compcache
2.cd to ~/compcache and run make "make ARCH=arm
KERNEL_BUILD_PATH=/home/techctr/mydroid/kernel"
3.make still uses the uname values instead of the set variable for
KERNEL_BUILD_PATH...strangely if i create a ~/compcache2 folder and untar
the .5 source running the same make command actually uses the variable and
compiles the modules for my ARM kernel with no issues.
What version of the product are you using? On what operating system?
Ubuntu 9.04
Please provide any additional information below.
I can compile compcache modules just only from the older source not the
pre2 that has the ARM fixes...it just wont recognize the build path
variable i set no matter what i try
Original issue reported on code.google.com by [email protected]
on 29 Jul 2009 at 12:35
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.