[SSI] openssi/kernel/cluster/ssi/vproc dvp_vpops.c,1.45,1.46
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/cluster/ssi/vproc
In directory sfp-cvsdas-3.v30.ch3.sourceforge.com:/tmp/cvs-serv2504/cluster/ssi/vproc
Modified Files:
Tag: OPENSSI-FC
dvp_vpops.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: dvp_vpops.c
===================================================================
RCS file: /cvsroot/ssic-linux/openssi/kernel/cluster/ssi/vproc/dvp_vpops.c,v
retrieving revision 1.45
retrieving revision 1.46
diff -u -d -r1.45 -r1.46
--- dvp_vpops.c 21 Mar 2010 05:25:09 -0000 1.45
+++ dvp_vpops.c 25 Oct 2010 05:04:28 -0000 1.46
@@ -407,9 +407,6 @@
pvc->pvp_head_childl = NULL; /* child has no children */
#endif /* !VPROC_PVP_CHILD_LL */
VPROC_UNLOCK_ND_LIST_EXCL(pp, "vpop_fork");
-#ifdef VPROC_LOCKING_CONTEXT_FIX
- VPROC_LOCK_FLAG(vc, "vpop_fork");
-#endif
pvc->pvp_ppid = pp->vp_pid; /* set child's parent id */
pvc->pvp_pgid = pvp->pvp_pgid; /* child's pgrp is parent's */
pvc->pvp_sid = pvp->pvp_sid; /* child's session is parent's */
@@ -462,10 +459,19 @@
pvc->pvp_pgrp_mem_seqno = parent_seqno; /* orig value from parent */
/* Set if thread group leader */
- if (!(local_flags & CLONE_THREAD))
+ if (!(local_flags & CLONE_THREAD)) {
+#ifdef VPROC_LOCKING_CONTEXT_FIX
+ VPROC_LOCK_FLAG(vc, "vpop_fork");
+#endif
pvc->pvp_flag |= PV_IS_TGID;
+#ifdef VPROC_LOCKING_CONTEXT_FIX
+ VPROC_UNLOCK_FLAG(vc, "vpop_fork");
+#endif
+ }
+#ifndef VPROC_LOCKING_CONTEXT_FIX
VPROC_UNLOCK_FLAG(vc, "vpop_fork");
+#endif
if (pvp->pvp_pgid != 0) {
/*
------------------------------------------------------------------------------
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