[SSI] openssi/kernel/cluster/ssi/util rmtfb.c, 1.25, 1.26 rmtsock.c, 1.24, 1.25 ssidev.c, 1.29, 1.30

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

Modified Files:
      Tag: OPENSSI-FC
	rmtfb.c rmtsock.c ssidev.c 
Log Message:
* RMTFB:
- Allocate from slab rmtfb_cli / rmtfb_svr structs. (#ifdef RMTFB_KMEM_CACHE)
- rmtfb_remote_tty_ino() is no longer inlined. (#ifdef
  REOP_EXPORT_PATH_SVRNODE)
- Rename cluster/ssi/util/rmtfb.c:hash() to rfbhash(). Use Linux hashing
  routine.
- Split rmtfb_set_bit() into itself and rmtfb_clear_bit().

* RMTFB (#ifdef RMTFB_HASH_LOCKLESS):
- Implement lockless rfb_hash list traversal. Remove locks in various rmtfb_*
  code paths. Reduce latency in pipes, etc.
- Fix file struct leak on server when client lost race with another
  rmtfb_newcli().

* RMTFB (#ifdef RMTFB_REFCNT_FIX):
- Consolidate rfb_refcnt in rmtfb_cli / rmtfb_svr structs into rmtfb_cmn
  struct.

 cluster/ssi/util/rmtfb.c         |  629 +++++++++++++++++++++++++++----
 cluster/ssi/util/rmtsock.c       |    4 
 cluster/ssi/util/ssidev.c        |    2 
 cluster/ssi/vproc/dvp_pvpops.c   |    2 
 fs/fifo.c                        |   13 
 include/cluster/ssi/util/rmtfb.h |   31 -
 include/linux/config.h           |    7 
 7 files changed, 594 insertions(+), 94 deletions(-)


Index: rmtsock.c
===================================================================
RCS file: /cvsroot/ssic-linux/openssi/kernel/cluster/ssi/util/rmtsock.c,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -d -r1.24 -r1.25
--- rmtsock.c	13 Feb 2010 14:52:25 -0000	1.24
+++ rmtsock.c	5 Mar 2010 05:44:39 -0000	1.25
@@ -438,7 +438,9 @@
 		goto out_fput;
 	}
 	rmtfb_putsvr(rfb);
-	put_filp(file); /* the rmtfb server has it held */
+
+	/* the rmtfb server has it held via implicit rmtfb_set_bit() */
+	put_filp(file);
 
 	newsock->file = file;
 	file->f_vfsmnt = mntget(sock_mnt);

Index: rmtfb.c
===================================================================
RCS file: /cvsroot/ssic-linux/openssi/kernel/cluster/ssi/util/rmtfb.c,v
retrieving revision 1.25
retrieving revision 1.26
diff -u -d -r1.25 -r1.26
--- rmtfb.c	17 Dec 2009 06:43:51 -0000	1.25
+++ rmtfb.c	5 Mar 2010 05:44:39 -0000	1.26
@@ -27,6 +27,7 @@
 #include <asm/system.h>
 #include <linux/cluster.h>
 #include <linux/fs.h>
+#include <linux/hash.h>
 #include <linux/kernel.h>
 #include <linux/limits.h>
 #include <linux/list.h>
@@ -51,12 +52,29 @@
 
 #define ERFB_RELEASE	700
 
[...1106 lines suppressed...]
 	LOCK_EXCL_RW_LOCK(&rmtfb_clitbl_lock);
 	list_del(&rfb->common.rfb_hash);
@@ -1267,7 +1744,7 @@
 	int ctr;
 
 	printk("server (0x%p)\n", (void *) rfb);
-	printk(TAB "hash(ino) = 0x%x\n", (unsigned int) hash(ino));
+	printk(TAB "rfbhash(ino) = 0x%x\n", (unsigned int) rfbhash(ino));
 	printk(TAB "rfb_file = 0x%p\n", (void *) file);
 	printk(TAB TAB "ino = %d\n", (int) ino);
 	printk(TAB "rfb_id = %lu\n", id);
@@ -1291,7 +1768,7 @@
 		return;
 
 	printk("client (0x%p)\n", (void *) rfb);
-	printk(TAB "hash(id) = 0x%x\n", (unsigned int) hash(id));
+	printk(TAB "rfbhash(id) = 0x%x\n", (unsigned int) rfbhash(id));
 	printk(TAB "rfb_file = 0x%p\n", (void *) file);
 	printk(TAB "rfb_id = %lu\n", id);
 	printk(TAB "rfb_magic = 0x%x\n", (unsigned int) rfb->rfb_magic);

Index: ssidev.c
===================================================================
RCS file: /cvsroot/ssic-linux/openssi/kernel/cluster/ssi/util/ssidev.c,v
retrieving revision 1.29
retrieving revision 1.30
diff -u -d -r1.29 -r1.30
--- ssidev.c	2 Feb 2010 05:23:55 -0000	1.29
+++ ssidev.c	5 Mar 2010 05:44:39 -0000	1.30
@@ -1359,7 +1359,9 @@
 			sfdp->pf_file = NULL;
 		} else {
 			sfdp->pf_file = rfb->common.rfb_file;
+#if 0
 			SSI_ASSERT(sfdp->pf_file != NULL);
+#endif
 			get_file(sfdp->pf_file);
 			rmtfb_putsvr(rfb);
 		}


------------------------------------------------------------------------------
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