[SSI] openssi/kernel/include/cluster/ssi unix.h,1.17,1.18
Roger Tsang <[email protected]> Fri, 05 Mar 2010 06:20:48 +0000
| Newsgroups | gmane.linux.cluster.ssic.cvs |
|---|---|
| Message-ID | <[email protected]> |
Update of /cvsroot/ssic-linux/openssi/kernel/include/cluster/ssi
In directory sfp-cvsdas-3.v30.ch3.sourceforge.com:/tmp/cvs-serv7491/kernel/include/cluster/ssi
Modified Files:
Tag: OPENSSI-FC
unix.h
Log Message:
RMTUNIX (#ifdef IPC_STALE_RMTUNIX_CACHE_FIX):
- Optimize away rsk_spinlock in rmtunix_socket_info struct reference counting
code. Use atomic_test_and_add().
RMTUNIX (#ifdef RMTUNIX_SOCK_INFO_CACHE):
- Regression:
- rmtunixsvr_stream_connect_callback() error path calling kfree() on
kmem_cache object.
- ssi_unix_find_socket_byinode() error path calling kfree() on kmem_cache
object.
- ssi_unix_find_socket_byname() error path calling kfree() on kmem_cache
object.
cluster/ssi/ipc/rmtunix.c | 19 +++++++--------
include/cluster/ssi/ipc/unixnm.h | 39 +++++++------------------------
include/cluster/ssi/unix.h | 16 +++++++++++-
3 files changed, 32 insertions(+), 42 deletions(-)
Index: unix.h
===================================================================
RCS file: /cvsroot/ssic-linux/openssi/kernel/include/cluster/ssi/unix.h,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -d -r1.17 -r1.18
--- unix.h 27 Oct 2009 03:18:30 -0000 1.17
+++ unix.h 5 Mar 2010 06:20:46 -0000 1.18
@@ -383,7 +383,11 @@
unixnm_put(sock);
}
-static inline unix_socket *
+#ifdef RMTUNIX_SOCK_INFO_CACHE
+extern void rmtunix_free(struct rcu_head *);
+#endif
+
+static unix_socket *
ssi_unix_find_socket_byinode(struct inode *i, int type, int *error)
{
struct rmtunix_socket_info *info;
@@ -402,13 +406,17 @@
return (unix_socket *)info;
free_fail:
+#ifdef RMTUNIX_SOCK_INFO_CACHE
+ rmtunix_free(&info->rhead);
+#else
kfree(info);
+#endif
fail:
*error = err;
return NULL;
}
-static inline unix_socket *
+static unix_socket *
ssi_unix_find_socket_byname(struct sockaddr_un *sunname,
int len, int type, unsigned hash,
int *error)
@@ -430,7 +438,11 @@
return (unix_socket *)info;
free_fail:
+#ifdef RMTUNIX_SOCK_INFO_CACHE
+ rmtunix_free(&info->rhead);
+#else
kfree(info);
+#endif
fail:
*error = err;
return NULL;
------------------------------------------------------------------------------
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