[SSI] openssi/kernel/include/cluster/ssi load_level.h,1.12,1.13

Roger Tsang <[email protected]> Mon, 25 Oct 2010 04:53:05 +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-serv754/include/cluster/ssi

Modified Files:
      Tag: OPENSSI-FC
	load_level.h 
Log Message:
VPROC:
- In ssi_do_execve() optimize away is_loadlevelable() when the chosen node is the current node.

VPROC (#ifdef REXEC_LOADTABLE_FAST):
- In __ssi_do_execve() retry on -EREMOTE. There could be other nodes in cluster that are available.
- Rename __ssi_do_execve() to __ssi_choose_node().
- Convert rexec_loadtable[] array to rexec_loadmap Linux bitmap.
- Do lockless rexec_loadmap update. Reduce contention in exec_balance(), rexecve(2) and execve(2).
- Remove redundant altload() calculations since the results only change during loadinfo_received() or nm_master_send(). Evaluate altload() and store result in altload element in loadinfo structure.

 cluster/ssi/mosixll/balance.c    |   19 +++++
 cluster/ssi/mosixll/load.c       |   13 +++
 cluster/ssi/util/load_level.c    |   78 +++++++++++++----------
 fs/exec.c                        |  102 +++++++++++++++++++------------
 include/cluster/ssi/load_level.h |    7 +-
 5 files changed, 144 insertions(+), 75 deletions(-)


Index: load_level.h
===================================================================
RCS file: /cvsroot/ssic-linux/openssi/kernel/include/cluster/ssi/load_level.h,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -d -r1.12 -r1.13
--- load_level.h	27 Oct 2009 03:18:30 -0000	1.12
+++ load_level.h	25 Oct 2010 04:53:03 -0000	1.13
@@ -30,6 +30,9 @@
 
 struct loadinfo {
 	clusternode_t	node;
+#ifdef REXEC_LOADTABLE_FAST
+	unsigned long 	altload;
+#endif
 	unsigned long	load;
 	int		ncpus;
 	unsigned long	speed;
@@ -80,11 +83,11 @@
 
 #ifdef REXEC_LOADTABLE_RACE_FIX
 #ifdef REXEC_LOADTABLE_FAST
-extern clusternode_t *rexec_loadtable;
+extern DECLARE_BITMAP(rexec_loadmap, NSC_MAX_NODE_VALUE);
 #else
 extern int *rexec_loadtable;
-#endif
 extern struct rw_semaphore rexec_loadtable_sem;
+#endif
 #else
 extern int rexec_loadtable[NSC_MAX_NODE_VALUE + 1];
 #endif


------------------------------------------------------------------------------
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