WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

[Xen-devel] [RFC PATCH 1/4] tmem: infrastructure for tmem layer

--- linux-2.6.30/mm/Kconfig     2009-06-09 21:05:27.000000000 -0600
+++ linux-2.6.30-tmem/mm/Kconfig        2009-06-19 09:36:41.000000000 -0600
@@ -253,3 +253,30 @@
          of 1 says that all excess pages should be trimmed.
 
          See Documentation/nommu-mmap.txt for more information.
+
+#
+# support for transcendent memory
+#
+config TMEM
+       bool "Transcendent memory support"
+       depends on XEN # but in future may work without XEN
+       help
+         In a virtualized environment, allows unused and underutilized
+         system physical memory to be made accessible through a narrow
+         well-defined page-copy-based API.  If unsure, say Y.
+
+config PRECACHE
+       bool "Cache clean pages in transcendent memory"
+       depends on TMEM
+       help
+         Allows the transcendent memory pool to be used to store clean
+         page-cache pages which, under some circumstances, will greatly
+         reduce paging and thus improve performance.  If unsure, say Y.
+
+config PRESWAP
+       bool "Swap pages to transcendent memory"
+       depends on TMEM
+       help
+         Allows the transcendent memory pool to be used as a pseudo-swap
+         device which, under some circumstances, will greatly reduce
+         swapping and thus improve performance.  If unsure, say Y.
--- linux-2.6.30/mm/Makefile    2009-06-09 21:05:27.000000000 -0600
+++ linux-2.6.30-tmem/mm/Makefile       2009-06-19 09:33:59.000000000 -0600
@@ -16,6 +16,8 @@
 obj-$(CONFIG_PROC_PAGE_MONITOR) += pagewalk.o
 obj-$(CONFIG_BOUNCE)   += bounce.o
 obj-$(CONFIG_SWAP)     += page_io.o swap_state.o swapfile.o thrash.o
+obj-$(CONFIG_PRESWAP)  += preswap.o
+obj-$(CONFIG_PRECACHE) += precache.o
 obj-$(CONFIG_HAS_DMA)  += dmapool.o
 obj-$(CONFIG_HUGETLBFS)        += hugetlb.o
 obj-$(CONFIG_NUMA)     += mempolicy.o
--- linux-2.6.30/include/linux/tmem.h   1969-12-31 17:00:00.000000000 -0700
+++ linux-2.6.30-tmem/include/linux/tmem.h      2009-06-19 11:21:58.000000000 
-0600
@@ -0,0 +1,22 @@
+/*
+ * linux/tmem.h
+ *
+ * Interface to transcendent memory, used by mm/precache.c and mm/preswap.c
+ *
+ * Copyright (C) 2008,2009 Dan Magenheimer, Oracle Corp.
+ */
+
+struct tmem_ops {
+       int (*new_pool)(u64 uuid_lo, u64 uuid_hi, u32 flags);
+       int (*put_page)(u32 pool_id, u64 object, u32 index, unsigned long gmfn);
+       int (*get_page)(u32 pool_id, u64 object, u32 index, unsigned long gmfn);
+       int (*flush_page)(u32 pool_id, u64 object, u32 index);
+       int (*flush_object)(u32 pool_id, u64 object);
+       int (*destroy_pool)(u32 pool_id);
+};
+
+extern struct tmem_ops *tmem_ops;
+
+/* flags for tmem_ops.new_pool */
+#define TMEM_POOL_PERSIST          1
+#define TMEM_POOL_SHARED           2

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel