Date: Sat, 28 Aug 2004 00:42:00 GMT From: Peter Wemm <peter@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 60566 for review Message-ID: <200408280042.i7S0g06x082330@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=60566 Change 60566 by peter@peter_melody on 2004/08/28 00:40:59 ok, this seems to fix ule+smp+preemption, clean it up. Affected files ... .. //depot/projects/hammer/sys/kern/sched_ule.c#44 edit Differences ... ==== //depot/projects/hammer/sys/kern/sched_ule.c#44 (text+ko) ==== @@ -1197,20 +1197,9 @@ kse_reassign(ke); } } - if (newtd != NULL) { + if (newtd != NULL) kseq_load_add(KSEQ_SELF(), newtd->td_kse); -#if 0 -/* -05:25 <Jeffr> The runq should be NULL and should stay NULL at that point. -05:25 <Jeffr> If you look a few lines above you see the !TD_IS_RUNNING() case in the else clause. -05:26 <Jeffr> Where it removes the load of a thread if it has a non null runq. -05:26 <Jeffr> In the preemption case I was assigning it to a runq but never adding the load. -05:26 <Jeffr> So this probably caused the counter to hit -1. -*/ - ke->ke_cpu = PCPU_GET(cpuid); - ke->ke_runq = KSEQ_SELF()->ksq_curr; -#endif - } else + else newtd = choosethread(); if (td != newtd) cpu_switch(td, newtd);
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200408280042.i7S0g06x082330>