From: Nitin Gupta <ngupta@vflare.org>
To: Pekka Enberg <penberg@cs.helsinki.fi>,
Hugh Dickins <hugh.dickins@tiscali.co.uk>,
Andrew Morton <akpm@linux-foundation.org>,
Greg KH <greg@kroah.com>,
Dan Magenheimer <dan.magenheimer@oracle.com>,
Rik van Riel <riel@redhat.com>, Avi Kivity <avi@redhat.com>,
Christoph Hellwig <hch@infradead.org>,
Minchan Kim <minchan.kim@gmail.com>,
Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Cc: linux-mm <linux-mm@kvack.org>,
linux-kernel <linux-kernel@vger.kernel.org>
Subject: [PATCH 1/8] Allow sharing xvmalloc for zram and zcache
Date: Fri, 16 Jul 2010 18:07:43 +0530 [thread overview]
Message-ID: <1279283870-18549-2-git-send-email-ngupta@vflare.org> (raw)
In-Reply-To: <1279283870-18549-1-git-send-email-ngupta@vflare.org>
Both zram and zcache use xvmalloc allocator. If xvmalloc
is compiled separately for both of them, we will get linker
error if they are both selected as "built-in".
So, we now compile xvmalloc separately and export its symbols
which are then used by both of zram and zcache.
Signed-off-by: Nitin Gupta <ngupta@vflare.org>
---
drivers/staging/Makefile | 1 +
drivers/staging/zram/Kconfig | 5 +++++
drivers/staging/zram/Makefile | 3 ++-
drivers/staging/zram/xvmalloc.c | 8 ++++++++
4 files changed, 16 insertions(+), 1 deletions(-)
diff --git a/drivers/staging/Makefile b/drivers/staging/Makefile
index 63baeee..6de8564 100644
--- a/drivers/staging/Makefile
+++ b/drivers/staging/Makefile
@@ -40,6 +40,7 @@ obj-$(CONFIG_MRST_RAR_HANDLER) += memrar/
obj-$(CONFIG_DX_SEP) += sep/
obj-$(CONFIG_IIO) += iio/
obj-$(CONFIG_ZRAM) += zram/
+obj-$(CONFIG_XVMALLOC) += zram/
obj-$(CONFIG_WLAGS49_H2) += wlags49_h2/
obj-$(CONFIG_WLAGS49_H25) += wlags49_h25/
obj-$(CONFIG_BATMAN_ADV) += batman-adv/
diff --git a/drivers/staging/zram/Kconfig b/drivers/staging/zram/Kconfig
index 4654ae2..9bf26ce 100644
--- a/drivers/staging/zram/Kconfig
+++ b/drivers/staging/zram/Kconfig
@@ -1,6 +1,11 @@
+config XVMALLOC
+ bool
+ default n
+
config ZRAM
tristate "Compressed RAM block device support"
depends on BLOCK
+ select XVMALLOC
select LZO_COMPRESS
select LZO_DECOMPRESS
default n
diff --git a/drivers/staging/zram/Makefile b/drivers/staging/zram/Makefile
index b2c087a..9900f8b 100644
--- a/drivers/staging/zram/Makefile
+++ b/drivers/staging/zram/Makefile
@@ -1,3 +1,4 @@
-zram-objs := zram_drv.o xvmalloc.o
+zram-objs := zram_drv.o
obj-$(CONFIG_ZRAM) += zram.o
+obj-$(CONFIG_XVMALLOC) += xvmalloc.o
diff --git a/drivers/staging/zram/xvmalloc.c b/drivers/staging/zram/xvmalloc.c
index 3fdbb8a..3f94ef5 100644
--- a/drivers/staging/zram/xvmalloc.c
+++ b/drivers/staging/zram/xvmalloc.c
@@ -10,6 +10,8 @@
* Released under the terms of GNU General Public License Version 2.0
*/
+#include <linux/module.h>
+#include <linux/kernel.h>
#include <linux/bitops.h>
#include <linux/errno.h>
#include <linux/highmem.h>
@@ -320,11 +322,13 @@ struct xv_pool *xv_create_pool(void)
return pool;
}
+EXPORT_SYMBOL_GPL(xv_create_pool);
void xv_destroy_pool(struct xv_pool *pool)
{
kfree(pool);
}
+EXPORT_SYMBOL_GPL(xv_destroy_pool);
/**
* xv_malloc - Allocate block of given size from pool.
@@ -413,6 +417,7 @@ int xv_malloc(struct xv_pool *pool, u32 size, struct page **page,
return 0;
}
+EXPORT_SYMBOL_GPL(xv_malloc);
/*
* Free block identified with <page, offset>
@@ -489,6 +494,7 @@ void xv_free(struct xv_pool *pool, struct page *page, u32 offset)
put_ptr_atomic(page_start, KM_USER0);
spin_unlock(&pool->lock);
}
+EXPORT_SYMBOL_GPL(xv_free);
u32 xv_get_object_size(void *obj)
{
@@ -497,6 +503,7 @@ u32 xv_get_object_size(void *obj)
blk = (struct block_header *)((char *)(obj) - XV_ALIGN);
return blk->size;
}
+EXPORT_SYMBOL_GPL(xv_get_object_size);
/*
* Returns total memory used by allocator (userdata + metadata)
@@ -505,3 +512,4 @@ u64 xv_get_total_size_bytes(struct xv_pool *pool)
{
return pool->total_pages << PAGE_SHIFT;
}
+EXPORT_SYMBOL_GPL(xv_get_total_size_bytes);
--
1.7.1.1
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
next prev parent reply other threads:[~2010-07-16 12:37 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-07-16 12:37 [PATCH 0/8] zcache: page cache compression support Nitin Gupta
2010-07-16 12:37 ` Nitin Gupta [this message]
2010-07-17 18:10 ` [PATCH 1/8] Allow sharing xvmalloc for zram and zcache Rik van Riel
2010-07-16 12:37 ` [PATCH 2/8] Basic zcache functionality Nitin Gupta
2010-07-18 8:14 ` Pekka Enberg
2010-07-18 9:45 ` Nitin Gupta
2010-07-18 8:27 ` Pekka Enberg
2010-07-18 8:44 ` Eric Dumazet
2010-07-18 9:51 ` Nitin Gupta
2010-07-16 12:37 ` [PATCH 3/8] Create sysfs nodes and export basic statistics Nitin Gupta
2010-07-16 12:37 ` [PATCH 4/8] Shrink zcache based on memlimit Nitin Gupta
2010-07-20 23:03 ` Minchan Kim
2010-07-21 4:52 ` Nitin Gupta
2010-07-21 11:32 ` Ed Tomlinson
2010-07-23 19:23 ` Nitin Gupta
2010-07-16 12:37 ` [PATCH 5/8] Eliminate zero-filled pages Nitin Gupta
2010-07-16 12:37 ` [PATCH 6/8] Compress pages using LZO Nitin Gupta
2010-07-16 12:37 ` [PATCH 7/8] Use xvmalloc to store compressed chunks Nitin Gupta
2010-07-18 7:53 ` Pekka Enberg
2010-07-18 8:21 ` Nitin Gupta
2010-07-19 4:36 ` Minchan Kim
2010-07-19 6:48 ` Nitin Gupta
2010-07-16 12:37 ` [PATCH 8/8] Document sysfs entries Nitin Gupta
2010-07-17 21:13 ` [PATCH 0/8] zcache: page cache compression support Ed Tomlinson
2010-07-18 2:23 ` Nitin Gupta
2010-07-18 7:50 ` Pekka Enberg
2010-07-18 8:12 ` Nitin Gupta
2010-07-19 19:57 ` Dan Magenheimer
2010-07-20 13:50 ` Nitin Gupta
2010-07-20 14:28 ` Dan Magenheimer
2010-07-21 4:27 ` Nitin Gupta
2010-07-21 17:37 ` Dan Magenheimer
2010-07-22 19:14 ` Greg KH
2010-07-22 19:54 ` Dan Magenheimer
2010-07-22 21:00 ` Greg KH
2011-01-10 13:16 ` Kirill A. Shutemov
2011-01-18 17:53 ` Dan Magenheimer
2011-01-20 12:33 ` Nitin Gupta
2011-01-20 12:47 ` Christoph Hellwig
2011-01-20 13:16 ` Pekka Enberg
2011-01-20 13:58 ` Nitin Gupta
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1279283870-18549-2-git-send-email-ngupta@vflare.org \
--to=ngupta@vflare.org \
--cc=akpm@linux-foundation.org \
--cc=avi@redhat.com \
--cc=dan.magenheimer@oracle.com \
--cc=greg@kroah.com \
--cc=hch@infradead.org \
--cc=hugh.dickins@tiscali.co.uk \
--cc=konrad.wilk@oracle.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=minchan.kim@gmail.com \
--cc=penberg@cs.helsinki.fi \
--cc=riel@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).