All of lore.kernel.org
 help / color / mirror / Atom feed
* Subject: [PATCH V6 1/4] mm: frontswap: swap data structure changes
@ 2011-08-08 20:45 ` Dan Magenheimer
  0 siblings, 0 replies; 16+ messages in thread
From: Dan Magenheimer @ 2011-08-08 20:45 UTC (permalink / raw)
  To: linux-kernel, linux-mm, jeremy, hughd, ngupta, konrad.wilk,
	JBeulich, kurt.hackel, npiggin, akpm, riel, hannes, matthew,
	chris.mason, dan.magenheimer, sjenning, jackdachef

From: Dan Magenheimer <dan.magenheimer@oracle.com>
Subject: [PATCH V6 1/4] mm: frontswap: swap data structure changes

This first patch of four in the frontswap series makes available core
swap data structures (swap_lock, swap_list and swap_info) that are
needed by frontswap.c but we don't need to expose them to the dozens
of files that include swap.h so we create a new swapfile.h just to
extern-ify these.

Also add frontswap-related elements to swap_info_struct.  Frontswap_map
points to vzalloc'ed one-bit-per-swap-page metadata that indicates
whether the swap page is in frontswap or in the device and frontswap_pages
counts how many pages are in frontswap.  We don't tie these to
CONFIG_FRONTSWAP to avoid unnecessary clutter around various frontswap
hooks.

[v6: rebase to 3.0-rc1]
[v5: no change from v4]
[v4: rebase to 2.6.39]
Signed-off-by: Dan Magenheimer <dan.magenheimer@oracle.com>
Reviewed-by: Konrad Wilk <konrad.wilk@oracle.com>
Acked-by: Seth Jennings <sjenning@linux.vnet.ibm.com>
Cc: Jeremy Fitzhardinge <jeremy@goop.org>
Cc: Hugh Dickins <hughd@google.com>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Cc: Nitin Gupta <ngupta@vflare.org>
Cc: Matthew Wilcox <matthew@wil.cx>
Cc: Chris Mason <chris.mason@oracle.com>
Cc: Jan Beulich <JBeulich@novell.com>
Cc: Rik Riel <riel@redhat.com>
Cc: Andrew Morton <akpm@linux-foundation.org>

--- linux/include/linux/swapfile.h	1969-12-31 17:00:00.000000000 -0700
+++ frontswap/include/linux/swapfile.h	2011-08-08 08:59:03.951694506 -0600
@@ -0,0 +1,13 @@
+#ifndef _LINUX_SWAPFILE_H
+#define _LINUX_SWAPFILE_H
+
+/*
+ * these were static in swapfile.c but frontswap.c needs them and we don't
+ * want to expose them to the dozens of source files that include swap.h
+ */
+extern spinlock_t swap_lock;
+extern struct swap_list_t swap_list;
+extern struct swap_info_struct *swap_info[];
+extern int try_to_unuse(unsigned int, bool, unsigned long);
+
+#endif /* _LINUX_SWAPFILE_H */
--- linux/include/linux/swap.h	2011-08-08 08:19:25.880690134 -0600
+++ frontswap/include/linux/swap.h	2011-08-08 08:59:03.952691415 -0600
@@ -194,6 +194,8 @@ struct swap_info_struct {
 	struct block_device *bdev;	/* swap device or bdev of swap file */
 	struct file *swap_file;		/* seldom referenced */
 	unsigned int old_block_size;	/* seldom referenced */
+	unsigned long *frontswap_map;	/* frontswap in-use, one bit per page */
+	unsigned int frontswap_pages;	/* frontswap pages in-use counter */
 };
 
 struct swap_list_t {

^ permalink raw reply	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2011-08-23  6:53 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-08-08 20:45 Subject: [PATCH V6 1/4] mm: frontswap: swap data structure changes Dan Magenheimer
2011-08-08 20:45 ` Dan Magenheimer
2011-08-09 12:24 ` Jan Beulich
2011-08-09 12:24   ` Jan Beulich
2011-08-09 15:03   ` Dan Magenheimer
2011-08-09 15:03     ` Dan Magenheimer
2011-08-09 16:18     ` Jan Beulich
2011-08-09 16:18       ` Jan Beulich
2011-08-09 17:43       ` Dan Magenheimer
2011-08-09 17:43         ` Dan Magenheimer
2011-08-10  6:47         ` Jan Beulich
2011-08-10  6:47           ` Jan Beulich
2011-08-22 17:08       ` Dan Magenheimer
2011-08-22 17:08         ` Dan Magenheimer
2011-08-23  6:33         ` Jan Beulich
2011-08-23  6:33           ` Jan Beulich

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.