[SSI] openssi/kernel/cluster/ssi/vproc dvp_misc.c, 1.17, 1.18 procfs_subr.c, 1.16, 1.17 vp_subr.c, 1.21, 1.22
Roger Tsang <[email protected]>
| Newsgroups | gmane.linux.cluster.ssic.cvs |
|---|---|
| Message-ID | <[email protected]> |
Update of /cvsroot/ssic-linux/openssi/kernel/cluster/ssi/vproc
In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv32011/kernel/cluster/ssi/vproc
Modified Files:
Tag: OPENSSI-FC
dvp_misc.c procfs_subr.c vp_subr.c
Log Message:
MOSIX:
- Fix acquiring loadinfo_lock without disabling bottom half. Actually in OpenSSI
we don't need to disable bottom half for loadinfo_lock, but we are doing this f
or compatiblity with openMosix code. Eventually we should clean this up for Open
SSI.
- Fix mosix_task->pages_i_bring race.
- Comment unused code.
MOSIX (#ifdef SSI_BALANCE_MEMORY):
- Fix deadlock bug nesting task_lock() in write_lock_irq(&tasklist_lock).
- Remove inappropriate task_lock() for mm_struct->last_memsort, used, swapped.
- New mm_struct->memsort_lock spinlock replaces write_lock_irq(&tasklist_lock);
protects mm_struct->last_memsort, used, swapped.
VPROC:
- New separate spinlock for pvp_comm_de, pvp_comm_mnt deprecates task_lock(). (#
ifdef VPROC_LOCK_PVP_COMM)
Index: procfs_subr.c
===================================================================
RCS file: /cvsroot/ssic-linux/openssi/kernel/cluster/ssi/vproc/procfs_subr.c,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -d -r1.16 -r1.17
--- procfs_subr.c 27 Oct 2009 03:18:30 -0000 1.16
+++ procfs_subr.c 17 Nov 2009 06:09:02 -0000 1.17
@@ -271,6 +271,9 @@
#include <cluster/gen/ics_vproc_protos_gen.h>
#include <cluster/gen/ics_vproc_macros_gen.h>
+/* Called with read_lock on tasklist_lock.
+ * Might release/re-acquire tasklist_lock.
+ */
int
rssi_tty_get_pgrp(clusternode_t to_node, int *rerror, dev_t dev, int *pgrp)
{
Index: vp_subr.c
===================================================================
RCS file: /cvsroot/ssic-linux/openssi/kernel/cluster/ssi/vproc/vp_subr.c,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -d -r1.21 -r1.22
--- vp_subr.c 27 Oct 2009 03:18:30 -0000 1.21
+++ vp_subr.c 17 Nov 2009 06:09:02 -0000 1.22
@@ -127,6 +127,9 @@
VPROC_LOCK_PGRP_LIST_INIT(v);
VPROC_LOCK_SESSION_LIST_INIT(v);
VPROC_LOCK_FLAG_INIT(v);
+#ifdef VPROC_LOCK_PVP_COMM
+ VPROC_LOCK_COMM_INIT(v);
+#endif
VPROC_HOLD_MOVEMENT_INIT(v);
#ifdef LINUX_SSI_EVENT
VPROC_WAIT_EVENT_INIT(v);
Index: dvp_misc.c
===================================================================
RCS file: /cvsroot/ssic-linux/openssi/kernel/cluster/ssi/vproc/dvp_misc.c,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -d -r1.17 -r1.18
--- dvp_misc.c 27 Oct 2009 03:18:29 -0000 1.17
+++ dvp_misc.c 17 Nov 2009 06:09:02 -0000 1.18
@@ -375,17 +375,16 @@
{
struct dentry *de;
struct vfsmount *mnt;
- task_t *p = current;
- struct vproc *vp = p->p_vproc;
+ struct vproc *vp = current->p_vproc;
- task_lock(p);
+ VPROC_LOCK_COMM(vp, "dvp_set_exec");
de = PVP(vp)->pvp_comm_de;
mnt = PVP(vp)->pvp_comm_mnt;
/* set the dentry and mnt ptrs for the executable name */
PVP(vp)->pvp_comm_de = dget(f->f_dentry);
PVP(vp)->pvp_comm_mnt = mntget(f->f_vfsmnt);
- task_unlock(p);
+ VPROC_UNLOCK_COMM(vp, "dvp_set_exec");
dput(de);
mntput(mnt);
@@ -396,22 +395,21 @@
{
struct dentry *de;
struct vfsmount *mnt;
- task_t *p = current;
- struct vproc *vp = p->p_vproc;
+ struct vproc *vp = current->p_vproc;
(void)f;
if (!vp)
return;
- task_lock(p);
+ VPROC_LOCK_COMM(vp, "dvp_clear_exec");
de = PVP(vp)->pvp_comm_de;
mnt = PVP(vp)->pvp_comm_mnt;
/* release and clear the ptrs for the executable name */
PVP(vp)->pvp_comm_de = NULL;
PVP(vp)->pvp_comm_mnt = NULL;
- task_unlock(p);
+ VPROC_UNLOCK_COMM(vp, "dvp_clear_exec");
dput(de);
mntput(mnt);
------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now. http://p.sf.net/sfu/bobj-july