[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