cvs commit: src/sys/kern sched_ule.c

Pascal Hofstee caelian at gmail.com
Sat Nov 6 03:22:58 GMT 2004


On Sat, 30 Oct 2004 07:35:53 +0000 (UTC), Jeff Roberson
<jeff at freebsd.org> wrote:
> jeff        2004-10-30 07:35:53 UTC
> 
>   FreeBSD src repository
> 
>   Modified files:
>     sys/kern             sched_ule.c
>   Log:
>    - In sched_prio() check to see if the kse is assigned to a runq as the
>      check for TD_ON_RUNQ() no longer means the thread is really on a run-
>      queue.  I suspect this state should be re-evaluated as it must mean
>      something else now.  This fixes ULE+KSE+PREEMPTION on UP x86.

Hi Jeff,

I decided to take this commit as a good moment to give SCHED_ULE +
PREEMPTION a shot again in the hope of triggering potential bugs to
further improve SCHED_ULE. And i must say ... without
INVARIANTS/WITNESS ... SCED_ULE + PREEMPTION == SOLID ... No Panics
for well over 2 days during general desktop usage and compilation.

I then decided to give it a real stress-test and decided to also
enable WITNESS, INVARIANTS and FULL_PREEMPTION. This combination
seemed just as stable at first ... untill i decided to shutdown
Firefox .. which caused a system panic with the famous "Negative nice
count" KASSERT from kern/sched_ule.c

I did some additional testing and so far it seems that Every threaded
application seems to exhibit this panic upon exit. I don't have an
actual kerneldump at the moment ... but i should be able to generate
one and provide additional information  and/or a backtrace if desired.

To reproduce simply exit a multi-threaded application ... firefox,
ogg123 and apache-worker all caused the same panic.

This is on a UP P2-400 MHz running 6.0-CURRENT as of November 3rd or 4th,


With kind regard,
  Pascal Hofstee


More information about the cvs-src mailing list