From owner-p4-projects@FreeBSD.ORG Sat Aug 28 00:42:01 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 4307816A4D0; Sat, 28 Aug 2004 00:42:01 +0000 (GMT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 1504B16A4CE for ; Sat, 28 Aug 2004 00:42:01 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 0A6B243D54 for ; Sat, 28 Aug 2004 00:42:01 +0000 (GMT) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i7S0g0TV082335 for ; Sat, 28 Aug 2004 00:42:00 GMT (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i7S0g06x082330 for perforce@freebsd.org; Sat, 28 Aug 2004 00:42:00 GMT (envelope-from peter@freebsd.org) Date: Sat, 28 Aug 2004 00:42:00 GMT Message-Id: <200408280042.i7S0g06x082330@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to peter@freebsd.org using -f From: Peter Wemm To: Perforce Change Reviews Subject: PERFORCE change 60566 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 28 Aug 2004 00:42:01 -0000 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 The runq should be NULL and should stay NULL at that point. -05:25 If you look a few lines above you see the !TD_IS_RUNNING() case in the else clause. -05:26 Where it removes the load of a thread if it has a non null runq. -05:26 In the preemption case I was assigning it to a runq but never adding the load. -05:26 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);