[SSI] openssi/kernel/include/cluster/ssi/cfs cfs_fs.h, 1.19, 1.20 cfs_fs_i.h, 1.20, 1.21 cfs_page.h, 1.11, 1.12

Roger Tsang <[email protected]> Fri, 05 Mar 2010 05:23:59 +0000
Newsgroups gmane.linux.cluster.ssic.cvs
Message-ID <[email protected]>
Update of /cvsroot/ssic-linux/openssi/kernel/include/cluster/ssi/cfs
In directory sfp-cvsdas-3.v30.ch3.sourceforge.com:/tmp/cvs-serv25466/include/cluster/ssi/cfs

Modified Files:
      Tag: OPENSSI-FC
	cfs_fs.h cfs_fs_i.h cfs_page.h 
Log Message:
* CFS (#ifdef CFS_ASYNC_LOCAL_SYNC):
- Optimize away unnecesary initialization in cfs_read_rpcsetup(),
  cfs_write_rpcsetup().

* CFS (#ifdef CFS_CHARD_SYNC_FIX):
- Fix unstable data could have been lost due to server migrated or failover.
  Unstable data is flushed again (to the new server) in cfs_reflush_inode().
- Fix downed pages were not properly coalesced. Coalesce downed pages on per
  inode basis to reduce contention during failover.

* CFS (#ifdef CFS_PAGEVEC):
- Optimize away unnecesary initialization in cfs_commit_rpcsetup().

 cluster/ssi/cfs/inode.c            |    5 
 cluster/ssi/cfs/read.c             |   28 ++++
 cluster/ssi/cfs/write.c            |  170 +++++++++++++++++++++++++----
 include/cluster/ssi/cfs/cfs_fs.h   |    3 
 include/cluster/ssi/cfs/cfs_fs_i.h |   10 +
 include/cluster/ssi/cfs/cfs_page.h |    4 
 include/linux/config.h             |   10 +
 7 files changed, 206 insertions(+), 24 deletions(-)


Index: cfs_fs_i.h
===================================================================
RCS file: /cvsroot/ssic-linux/openssi/kernel/include/cluster/ssi/cfs/cfs_fs_i.h,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -d -r1.20 -r1.21
--- cfs_fs_i.h	2 Feb 2010 04:31:46 -0000	1.20
+++ cfs_fs_i.h	5 Mar 2010 05:23:57 -0000	1.21
@@ -190,6 +190,12 @@
 	off64_t		c_nextw;	/* Next write offset */
 #endif
 	struct list_head c_ilists[CFS_MAX_LISTS];/* Process cnode lists */
+#ifdef CFS_CHARD_SYNC_FIX
+	struct list_head	c_down_list; /* entry in struct cfs_server
+					      * ->dirty_down or ->read_down */
+	struct list_head	c_dirty_down; /* List of downed dirty pages */
+	struct list_head	c_read_down; /* List of downed unread pages */
+#endif
 #ifdef CFS_ZAP_CACHES
 	wait_queue_head_t	c_i_wait;
 #endif
@@ -277,6 +283,10 @@
 #define	ctofh(cnode)	(&((cnode)->c_fh))
 #define	itocfh(inode)	(ctofh(itoc(inode)))
 
+#ifdef CFS_CHARD_SYNC_FIX
+#define itoc_down(ip) (&itoc(ip)->c_down_list)
+#endif
+
 #ifdef SSI_CFS_SKIP
 /*
  * Lock and unlock cnodes.

Index: cfs_fs.h
===================================================================
RCS file: /cvsroot/ssic-linux/openssi/kernel/include/cluster/ssi/cfs/cfs_fs.h,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -d -r1.19 -r1.20
--- cfs_fs.h	27 Oct 2009 03:18:30 -0000	1.19
+++ cfs_fs.h	5 Mar 2010 05:23:57 -0000	1.20
@@ -273,6 +273,9 @@
 extern int  cfs_sync_inode(struct inode *, unsigned long, unsigned int, int);
 extern int  cfs_flush_inode(struct inode *, unsigned long, unsigned int, int);
 extern int  cfs_flush_list(struct list_head *, unsigned int, int);
+#ifdef CFS_CHARD_SYNC_FIX
+extern int cfs_reflush_inode(struct inode *, unsigned long, unsigned int, int);
+#endif
 #ifndef KERNEL2613
 extern int  cfs_commit_inode(struct inode *, unsigned long, unsigned int, int);
 #else

Index: cfs_page.h
===================================================================
RCS file: /cvsroot/ssic-linux/openssi/kernel/include/cluster/ssi/cfs/cfs_page.h,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -d -r1.11 -r1.12
--- cfs_page.h	2 Nov 2009 03:44:37 -0000	1.11
+++ cfs_page.h	5 Mar 2010 05:23:57 -0000	1.12
@@ -30,7 +30,7 @@
  */
 #define CFS_PAGE_TAG_DIRTY	0
 #define CFS_PAGE_TAG_WRITEBACK	1
-#endif
+#endif /* KERNEL2616_53 */
 
 /*
  * Valid flags for a dirty buffer
@@ -40,7 +40,9 @@
 #define PG_NEED_COMMIT		1
 #define PG_NEED_RESCHED		2
 #endif
+#ifndef CFS_ASYNC_QUEUE
 #define	PG_DOWN			3
+#endif
 
 struct cfs_page {
 	struct list_head	wb_list,	/* Defines state of page: */


------------------------------------------------------------------------------
Download Intel&#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev