Date: Sat, 13 Oct 2007 12:58:07 GMT From: Marko Zec <zec@FreeBSD.org> To: Perforce Change Reviews <perforce@FreeBSD.org> Subject: PERFORCE change 127476 for review Message-ID: <200710131258.l9DCw7G6012494@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=127476 Change 127476 by zec@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);
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200710131258.l9DCw7G6012494>