cvs commit: src/sys/dev/hwpmc hwpmc_mod.c src/sys/dev/random randomdev_soft.c src/sys/kern kern_intr.c kern_poll.c kern_synch.c kern_thr.c kern_umtx.c sched_4bsd.c subr_taskqueue.c uipc_mqueue.c src/sys/vm vm_zeroidle.c

John Baldwin jhb at freebsd.org
Mon Apr 17 19:15:08 UTC 2006


On Monday 17 April 2006 14:20, John Baldwin wrote:
> jhb         2006-04-17 18:20:38 UTC
> 
>   FreeBSD src repository
> 
>   Modified files:
>     sys/dev/hwpmc        hwpmc_mod.c 
>     sys/dev/random       randomdev_soft.c 
>     sys/kern             kern_intr.c kern_poll.c kern_synch.c 
>                          kern_thr.c kern_umtx.c sched_4bsd.c 
>                          subr_taskqueue.c uipc_mqueue.c 
>     sys/vm               vm_zeroidle.c 
>   Log:
>   Change msleep() and tsleep() to not alter the calling thread's priority
>   if the specified priority is zero.  This avoids a race where the calling
>   thread could read a snapshot of it's current priority, then a different
>   thread could change the first thread's priority, then the original thread
>   would call sched_prio() inside msleep() undoing the change made by the
>   second thread.  I used a priority of zero as no thread that calls msleep()
>   or tsleep() should be specifying a priority of zero anyway.
>   
>   The various places that passed 'curthread->td_priority' or some variant
>   as the priority now pass 0.

This should fix the problem where the first acpi taskq would run with
a bogus priority (the sched_prio() when creating the taskqueue seemed
to be ignored).

-- 
John Baldwin <jhb at FreeBSD.org>  <><  http://www.FreeBSD.org/~jhb/
"Power Users Use the Power to Serve"  =  http://www.FreeBSD.org


More information about the cvs-src mailing list