[SSI] openssi/kernel/fs exec.c,1.17,1.18

Roger Tsang <[email protected]> Mon, 25 Oct 2010 05:04:30 +0000
Newsgroups gmane.linux.cluster.ssic.cvs
Message-ID <[email protected]>
Update of /cvsroot/ssic-linux/openssi/kernel/fs
In directory sfp-cvsdas-3.v30.ch3.sourceforge.com:/tmp/cvs-serv2504/fs

Modified Files:
      Tag: OPENSSI-FC
	exec.c 
Log Message:
VPROC (#ifdef TASK_HOLD_VPROC):
- Optimize away extra is_loadlevelable() call in ssi_do_execve() path. Affects execve(2) and rexecve(2).
- In is_loadlevelable() optimize away vproc_is_loadlevelable() call where applicable.

VPROC (#ifdef VPROC_LOCKING_CONTEXT_FIX):
- Reduce FLAG LOCK critical section in vpop_setup_vproc_relations(). Elements inside FLAG LOCK are already protected by VPROC LOCK. This fix places vproc_is_loadlevelable() outside FLAG LOCK.

 cluster/ssi/util/load_level.c |   34 ++++++++++++++++++++++++----------
 cluster/ssi/vproc/dvp_vpops.c |   14 ++++++++++----
 fs/exec.c                     |   12 +++---------
 3 files changed, 37 insertions(+), 23 deletions(-)


Index: exec.c
===================================================================
RCS file: /cvsroot/ssic-linux/openssi/kernel/fs/exec.c,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -d -r1.17 -r1.18
--- exec.c	25 Oct 2010 04:53:03 -0000	1.17
+++ exec.c	25 Oct 2010 05:04:28 -0000	1.18
@@ -1408,16 +1408,11 @@
 #ifdef CONFIG_SSI
 #ifdef CONFIG_LDLVL
 #ifdef REXEC_LOADTABLE_FAST
-	if (remote_okay && !current->execnode && atomic_read(&loadlevel_on)) {
-		/* First reset pvp_loadlevel */
-		(void) is_loadlevelable(current, filename);
-
-		if (!is_loadlevelable(current, filename))
-			goto local_execve;
+	if (remote_okay && !current->execnode &&
+	    atomic_read(&loadlevel_on) && is_loadlevelable(current, filename)) {
+		clusternode_t node;
 
 		do {
-			clusternode_t node;
-
 			retval = __ssi_choose_node();
 			if (retval < 0)
 				break;
@@ -1428,7 +1423,6 @@
 				goto out_ret;
 		} while (retval == -EREMOTE);
 	}
-local_execve:
 #else
 	if (remote_okay && !current->execnode && atomic_read(&loadlevel_on)) {
 		/* First reset pvp_loadlevel */


------------------------------------------------------------------------------
Nokia and AT&T present the 2010 Calling All Innovators-North America contest
Create new apps & games for the Nokia N8 for consumers in  U.S. and Canada
$10 million total in prizes - $4M cash, 500 devices, nearly $6M in marketing
Develop with Nokia Qt SDK, Web Runtime, or Java and Publish to Ovi Store 
http://p.sf.net/sfu/nokia-dev2dev