PERFORCE change 127476 for review
Marko Zec
zec at FreeBSD.org
Sat Oct 13 05:58:08 PDT 2007
http://perforce.freebsd.org/chv.cgi?CH=127476
Change 127476 by zec at zec_tpx32 on 2007/10/13 12:57:17
Simplify previous change - there's no need for sched_lock
mtx to be visible outside of kern/sched_4bsd.c.
Affected files ...
.. //depot/projects/vimage/src/sys/kern/kern_exit.c#10 edit
.. //depot/projects/vimage/src/sys/kern/kern_vimage.c#42 edit
.. //depot/projects/vimage/src/sys/kern/sched_4bsd.c#14 edit
.. //depot/projects/vimage/src/sys/sys/sched.h#7 edit
Differences ...
==== //depot/projects/vimage/src/sys/kern/kern_exit.c#10 (text+ko) ====
@@ -414,13 +414,11 @@
LIST_REMOVE(p, p_list);
LIST_INSERT_HEAD(&zombproc, p, p_list);
LIST_REMOVE(p, p_hash);
-#if defined(VIMAGE) && defined(SCHED_4BSD)
+#if defined(VIMAGE) && defined(SCHED_4BSD) /* XXX what about ULE? */
if (p->p_ucred->cr_vimage->v_procg !=
p->p_pptr->p_ucred->cr_vimage->v_procg) {
- mtx_lock_spin(&sched_lock);
sched_load_reassign(p->p_ucred->cr_vimage->v_procg,
p->p_pptr->p_ucred->cr_vimage->v_procg);
- mtx_unlock_spin(&sched_lock);
}
#endif
sx_xunlock(&allproc_lock);
==== //depot/projects/vimage/src/sys/kern/kern_vimage.c#42 (text+ko) ====
@@ -530,14 +530,8 @@
sx_xlock(&allproc_lock);
oldcred->cr_vimage->v_procg->nprocs--;
p->p_ucred->cr_vimage->v_procg->nprocs++;
-#if defined(VIMAGE) && defined(SCHED_4BSD)
- mtx_lock_spin(&sched_lock);
-#endif
sched_load_reassign(oldcred->cr_vimage->v_procg,
newcred->cr_vimage->v_procg);
-#if defined(VIMAGE) && defined(SCHED_4BSD)
- mtx_unlock_spin(&sched_lock);
-#endif
sx_xunlock(&allproc_lock);
crfree(oldcred);
break;
==== //depot/projects/vimage/src/sys/kern/sched_4bsd.c#14 (text+ko) ====
@@ -104,7 +104,7 @@
((ts)->ts_runq != 0 && (ts)->ts_runq != &runq)
static struct td_sched td_sched0;
-struct mtx sched_lock;
+static struct mtx sched_lock;
#ifndef VIMAGE
static int sched_tdcnt; /* Total runnable threads in the system. */
@@ -255,9 +255,10 @@
void
sched_load_reassign(struct vprocg *old, struct vprocg *new)
{
- /* XXX locking? */
+ mtx_lock_spin(&sched_lock);
old->_sched_tdcnt--;
new->_sched_tdcnt++;
+ mtx_unlock_spin(&sched_lock);
}
#endif
==== //depot/projects/vimage/src/sys/sys/sched.h#7 (text+ko) ====
@@ -179,8 +179,6 @@
#define SCHED_STAT_INC(var)
#endif
-extern struct mtx sched_lock;
-
/* temporarily here */
void schedinit(void);
void sched_newproc(struct proc *p, struct thread *td);
More information about the p4-projects
mailing list