[SSI] openssi/kernel/include/cluster/ssi/ipc shm.h,1.14,1.15
Roger Tsang <[email protected]> Mon, 29 Mar 2010 06:17:02 +0000
| Newsgroups | gmane.linux.cluster.ssic.cvs |
|---|---|
| Message-ID | <[email protected]> |
Update of /cvsroot/ssic-linux/openssi/kernel/include/cluster/ssi/ipc
In directory sfp-cvsdas-3.v30.ch3.sourceforge.com:/tmp/cvs-serv16378/kernel/include/cluster/ssi/ipc
Modified Files:
Tag: OPENSSI-FC
shm.h
Log Message:
IPC:
- Optimize away redundant initialization in newseg() and do_ssi_shm_noclients().
- Initialize shm_node inside newseg(). Optimize away shm_un/lock() dance.
- Test shm_sem_owned() shm_ids.sem semaphore in ssi_shm_noclients().
- Fix shmctl(IPC_RMID) was not setting SHM_DEST flag on other clients in the cluster.
- Fix IPC id 0 race. ipc_get_locks() / ipc_drop_locks() skipped id 0.
IPC (#ifdef IPC_SHM_RACE_FIX):
- Fix shm_svr_addid() array bounds violation when /proc/sys/kernel/shmmni is greater than 4096 (SHMNMI).
- Fix dereferencing invalid shm_kernel_svr structure after calling ssi_shm_noclients().
- Fix do_ssi_shm_noclients() remote clients did not wait for server to failover.
cluster/ssi/ipc/ipcmsg_svr.c | 4
cluster/ssi/ipc/ipcsem_svr.c | 4
cluster/ssi/ipc/ipcshm_svr.c | 114 +++++++------
cluster/ssi/ipc/namesvr_func.c | 8
include/cluster/ssi/ipc/shm.h | 3
ipc/shm.c | 281 ++++++++++++++++++---------------
ipc/util.c | 9 -
ipc/util.h | 2
8 files changed, 235 insertions(+), 190 deletions(-)
Index: shm.h
===================================================================
RCS file: /cvsroot/ssic-linux/openssi/kernel/include/cluster/ssi/ipc/shm.h,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -d -r1.14 -r1.15
--- shm.h 21 Mar 2010 05:33:50 -0000 1.14
+++ shm.h 29 Mar 2010 06:17:00 -0000 1.15
@@ -35,7 +35,7 @@
extern int is_shm_mmap(struct dentry *, int);
extern int is_shmem_inode(struct inode *);
extern struct dentry * ssi_shm_setup(clusternode_t, long, int, key_t);
-extern int ssi_shm_noclients(struct shmid_kernel *, int, int, int);
+extern int ssi_shm_noclients(struct shmid_kernel *, int);
extern int ssi_shm_cleanup(clusternode_t, int, clusternode_t);
extern int shm_svr_create(struct shmid_kernel *, int, size_t, key_t, int);
extern void shm_svr_unregister(int, clusternode_t);
@@ -57,6 +57,7 @@
extern struct shmid_kernel_svr * shm_svr_lock(int);
extern void shm_svr_unlock(struct shmid_kernel_svr *);
#endif
+extern int shm_sem_owned(void);
extern struct shmid_kernel_svr * shm_svr_get(int);
extern struct shmid_kernel * shm_cli_get(int);
extern int ipcname_failover_create(key_t, int, int, clusternode_t, int);
------------------------------------------------------------------------------
Download Intel® 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