Creates RAM based block devices (/dev/ramzswapX) which can be
used (only) as swap disks. Pages swapped to these are compressed
and stored in memory itself.
The module is called ramzswap.ko. It depends on:
- xvmalloc memory allocator (compiled with this driver)
- lzo_compress.ko
- lzo_decompress.ko
See ramzswap.txt for usage details.
Signed-off-by: Nitin Gupta <ngupta@vflare.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* Features:
- Low metadata overhead (just 4 bytes per object)
- O(1) Alloc/Free - except when we have to call system page allocator to
get additional memory.
- Very low fragmentation: In all tests, xvmalloc memory usage is within 12%
of "Ideal".
- Pool based allocator: Each pool can grow and shrink.
- It maps pages only when required. So, it does not hog vmalloc area which
is very small on 32-bit systems.
SLUB allocator could not be used due to fragmentation issues:
http://code.google.com/p/compcache/wiki/AllocatorsComparison
Data here shows kmalloc using ~43% more memory than TLSF and xvMalloc
is showed ~2% more space efficiency than TLSF (due to smaller metadata).
Creating various kmem_caches can reduce space efficiency gap but still
problem of being limited to low memory exists. Also, it depends on
allocating higher order pages to reduce fragmentation - this is not
acceptable for ramzswap as it is used under memory crunch (its a swap
device!).
SLOB allocator could not be used do to reasons mentioned here:
http://lkml.org/lkml/2009/3/18/210
* Implementation:
It uses two-level bitmap search to find free list containing block of
correct size. This idea is taken from TLSF (Two-Level Segregate Fit)
allocator and is well explained in its paper (see [Links] below).
* Limitations:
- Poor scalability: No per-cpu data structures (work in progress).
[Links]
1. Details and Performance data:
http://code.google.com/p/compcache/wiki/xvMallochttp://code.google.com/p/compcache/wiki/xvMallocPerformance
2. TLSF memory allocator:
home: http://rtportal.upv.es/rtmalloc/
paper: http://rtportal.upv.es/rtmalloc/files/MRBC_2008.pdf
Signed-off-by: Nitin Gupta <ngupta@vflare.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
The COMEDI_CMDTEST ioctl needs to clear unsupported bits in the
struct comedi_cmd's convert_src and other *_src members. This
needs fixing in the pcl816 driver's AI cmdtest.
Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
The i8253_cascade_ns_to_timer_2div() function (and
i8253_cascade_ns_to_timer macro) checks the old values *d1 and *d2
for correctness as a heuristic before calculating new values. Don't
call the function with uninitialized values in *d1 and *d2.
Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
512 bytes of stack can be saved in serial_2002_open() by modifying
'struct config_t'. A short int suffices for the 'kind' and 'bits'
members. (Actually, a char would suffice, but wouldn't save any more
stack than a short int.)
Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
I've fixed a bug in the USBDUX driver which caused timeouts while
sending commands to the boards. This was mainly because of one bulk
transfer which had a timeout of 1ms (!). I've now set all timeouts to
1000ms.
From: Bernd Porr <BerndPorr@f2s.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
add KERN_ facility to printk (mostly KERN_INFO, some KERN_WARNING)
I think I found a bug - commented on it but didn't change as it's just
in a printk (off by 1 error in output)
Signed-off-by: Dirk Hohndel <hohndel@infradead.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
No code changes - left some 80 char violations alone as
folding those lines would have made code less readable
Signed-off-by: Dirk Hohndel <hohndel@infradead.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
no code changes, just fixing white space, line length, etc
Signed-off-by: Dirk Hohndel <hohndel@infradead.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Style cleanup in staging based on Greg's tutorial / checkpatch
Fix 80 char line length (where useful) - includes two changes to code
to make it more logical / readable
Remove {} around single line blocks
Signed-off-by: Dirk Hohndel <hohndel@infradead.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This patch fixes all warnings as issued by checkpatch.pl.
Note that I had to modify some of the logging messages to make that possible.
Signed-off-by: Klaas van Gend <klaas.van.gend@mvista.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This patch fixes all warnings as issued by checkpatch.pl.
Signed-off-by: Klaas van Gend <klaas.van.gend@mvista.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
The variables are unsigned so the test `>= 0' is always true,
In these cases the other part of the test catch wrapped values.
Signed-off-by: Roel Kluin <roel.kluin@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Add KERN_ to printk statements to reduce the number of warnings
shown by checkpatch.pl.
Signed-off-by: Klaas van Gend <klaas.van.gend@mvista.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Remove braces in if statements to make the file exhibit less warnings
when checked using checkpatch.pl.
Signed-off-by: Klaas van Gend <klaas.van.gend@mvista.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
All new kernels have support for compat_ioctl so remove the check and support
for older kernels.
Signed-off-by: Shawn Bohrer <shawn.bohrer@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
All new kernels have unlocked_ioctl so we don't need to check.
Signed-off-by: Shawn Bohrer <shawn.bohrer@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
something-bility is spelled as something-blity so a grep for 'blit'
would find these lines
this is so trivial that I didn't split it by subsystem / copy additional
maintainers - all changes are to comments The only purpose is to get
fewer false positives when grepping around the kernel sources.
Signed-off-by: Dirk Hohndel <hohndel@infradead.org>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Clean up the printk's in this driver.
Signed-off-by: Bruce Jones <brucej@linux.com>
Cc: Joe Perches <joe@perches.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Clean up formatting of a struct initializer, as per the
standard conventions.
Signed-off-by: Bruce Jones <brucej@linux.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Fix improper use of printks in this driver. Most are
debug messages under a DEBUG #ifdef, a few are info/warnings
that should get logged for driver error conditions.
Signed-off-by: Bruce Jones <brucej@linux.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Turn spaces into tabs to keep scripts/checkpatch.pl happy. The
actual changes here are in a comment, so the script is just
being silly.
Signed-off-by: Bruce Jones <brucej@linux.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Fix improper use of braces in drivers/staging/comedi/drivers/ni_atmio16d.c
Signed-off-by: Bruce Jones <brucej@linux.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Correct formatting errors - in this case line length and spaces before
parens.
Signed-off-by: Bruce Jones <brucej@linux.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
The line was too long, used braces on single line for loop body.
Signed-off-by: Allison Randal <allison@parrot.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>