[SSI] openssi/kernel/include/cluster/ssi/ipc unixnm.h,1.11,1.12

Roger Tsang <[email protected]>
Newsgroups gmane.linux.cluster.ssic.cvs
Message-ID <[email protected]>
Update of /cvsroot/ssic-linux/openssi/kernel/include/cluster/ssi/ipc
In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv14118/include/cluster/ssi/ipc

Modified Files:
      Tag: OPENSSI-FC
	unixnm.h 
Log Message:
CFS:
- Allocate file_lock structure from stack in cfs_proc_set/getlock_0(), cfs_rb_dolocks().
- Fix possible busy spin forever in cfs_rb_dolocks(); need error handling.
- Optimize away early malloc in svrtok_lookup(). (#ifdef RCU_CFSTOK_TABLE)

IPC:
- Regression:
  - Partially initialized rmtunix_socket_info structure. (#ifdef RMTUNIX_SOCK_INFO_CACHE)

VPROC:
- Regression:
  - pvpop_reclaim_child() livelock in __ptrace_unlink path. (#ifdef VPROC_RW_LOCK)

 cluster/ssi/cfs/cfs_ipcshm.c     |    4 -
 cluster/ssi/cfs/cfsproc.c        |   90 +++++++++++++++++----------------------
 cluster/ssi/cfs/svrcfs.c         |   24 +++-------
 cluster/ssi/ipc/rmtunix.c        |    8 +--
 cluster/ssi/vproc/dvp_pvpops.c   |   10 ++--
 include/cluster/ssi/ipc/unixnm.h |    9 ++-
 include/cluster/ssi/unix.h       |    6 +-
 7 files changed, 69 insertions(+), 82 deletions(-)


Index: unixnm.h
===================================================================
RCS file: /cvsroot/ssic-linux/openssi/kernel/include/cluster/ssi/ipc/unixnm.h,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -d -r1.11 -r1.12
--- unixnm.h	3 Feb 2009 06:18:13 -0000	1.11
+++ unixnm.h	7 Feb 2009 04:19:43 -0000	1.12
@@ -52,6 +52,7 @@
 #ifdef IPC_STALE_RMTUNIX_CACHE_FIX
 	int			rsk_cached;
 	atomic_t		rsk_refcnt;
+	SPIN_LOCK_T		rsk_spinlock;
 #endif
 #ifdef RCU_RMTUNIX_CACHE
 	struct rcu_head		rhead;
@@ -176,14 +177,14 @@
 	list_for_each_entry_rcu(info, &rmtunix_cache_list, list) {
 		if (info->sk == s) {
 #ifdef IPC_STALE_RMTUNIX_CACHE_FIX
-			spin_lock(&s->sk_lock.slock);
+			UNLOCK_SPIN_LOCK(&info->rsk_spinlock);
 			if (!info->rsk_cached) {
-				spin_unlock(&s->sk_lock.slock);
+				UNLOCK_SPIN_LOCK(&info->rsk_spinlock);
 				break;
 			}
 			/* rmtunix_decache_info() is our only caller */
 			info->rsk_cached = 0;
-			spin_unlock(&s->sk_lock.slock);
+			UNLOCK_SPIN_LOCK(&info->rsk_spinlock);
 #endif
 			rcu_read_unlock();
 			return info;
@@ -277,6 +278,7 @@
 
 #ifdef RMTUNIX_SOCK_INFO_CACHE
 	info = kmem_cache_alloc(rmtunix_socket_info_cachep, SLAB_USER);
+	memset(info, 0, sizeof(*info));
 #else
 	info = kzmalloc(sizeof(*info), GFP_USER);
 #endif
@@ -285,6 +287,7 @@
 
 #ifdef IPC_STALE_RMTUNIX_CACHE_FIX
 	atomic_set(&info->rsk_refcnt, 1);
+	INIT_SPIN_LOCK(&info->rsk_spinlock);
 #endif
 #ifdef RCU_RMTUNIX_CACHE
 	INIT_RCU_HEAD(&info->rhead);


------------------------------------------------------------------------------
Create and Deploy Rich Internet Apps outside the browser with Adobe(R)AIR(TM)
software. With Adobe AIR, Ajax developers can use existing skills and code to
build responsive, highly engaging applications that combine the power of local
resources and data with the reach of the web. Download the Adobe AIR SDK and
Ajax docs to start building applications today-http://p.sf.net/sfu/adobe-com
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.