Thread (8 messages) 8 messages, 2 authors, 2011-08-23

RE: Subject: [PATCH V6 1/4] mm: frontswap: swap data structure changes

From: Dan Magenheimer <hidden>
Date: 2011-08-22 17:09:19
Also in: lkml

From: Jan Beulich [mailto:JBeulich@novell.com]
Sent: Tuesday, August 09, 2011 10:18 AM
To: Dan Magenheimer
Cc: hannes@cmpxchg.org; jackdachef@gmail.com; hughd@google.com; jeremy@goop.org; npiggin@kernel.dk;
linux-mm@kvack.org; akpm@linux-foundation.org; sjenning@linux.vnet.ibm.com; Chris Mason; Konrad Wilk;
Kurt Hackel; riel@redhat.com; ngupta@vflare.org; linux-kernel@vger.kernel.org; matthew@wil.cx
Subject: RE: Subject: [PATCH V6 1/4] mm: frontswap: swap data structure changes
quoted
quoted
quoted
On 09.08.11 at 17:03, Dan Magenheimer [off-list ref] wrote:
--- 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 */
#ifdef CONFIG_FRONTSWAP
quoted
+	unsigned long *frontswap_map;	/* frontswap in-use, one bit per page */
+	unsigned int frontswap_pages;	/* frontswap pages in-use counter */
#endif

(to eliminate any overhead with that config option unset)

Jan
Hi Jan --

Thanks for the review!

As noted in the commit comment, if these structure elements are
not put inside an #ifdef CONFIG_FRONTSWAP, it becomes
unnecessary to clutter the core swap code with several ifdefs.
The cost is one pointer and one unsigned int per allocated
swap device (often no more than one swap device per system),
so the code clarity seemed more important than the tiny
additional runtime space cost.

Do you disagree?
Not necessarily - I just know that in other similar occasions (partly
internally to our company) I was asked to make sure turned off
features would not leave *any* run time foot print whatsoever.

Jan
Hi Jan --

With two extra static inlines in frontswap.h (frontswap_map_get()
and frontswap_map_set(), I've managed to both avoid the extra swap struct
members for frontswap_map and frontswap_pages when CONFIG_FRONTSWAP is
disabled AND avoid the #ifdef CONFIG_FRONTSWAP clutter in swapfile.h.

I'll post a V7 soon... let me know what you think!

Thanks,
Dan

--
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/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help