Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 6 Jul 2004 00:14:21 -0400 (EDT)
From:      Robert Watson <rwatson@freebsd.org>
To:        Thorsten Greiner <thorsten@tgreiner.net>
Cc:        current@freebsd.org
Subject:   Re: Native preemption is the culprit [was Re: today's CURRENT lockups]
Message-ID:  <Pine.NEB.3.96L.1040706001249.2853I-100000@fledge.watson.org>
In-Reply-To: <20040705184940.GA2651@tybalt.greiner.local>

next in thread | previous in thread | raw e-mail | index | archive | help

(This time to more people)

The patch below appears to (brute force) eliminate the crash/hang I'm
experiencing with SCHED_ULE in the post-preemption universe.  However, I
was experiencing it only in the SMP case, not UP, so it could be I'm just
not triggering it timing-wise.  This would be a temporary fix until jhb is
online again post-USENIX to take a look, assuming this works around the
problem for people other than me.

Note that this is probably damaging to interrupt processing latency.

Robert N M Watson             FreeBSD Core Team, TrustedBSD Projects
robert@fledge.watson.org      Principal Research Scientist, McAfee Research

Index: sched_ule.c
===================================================================
RCS file: /data/ncvs/src/sys/kern/sched_ule.c,v
retrieving revision 1.112
diff -u -r1.112 sched_ule.c
--- sched_ule.c	3 Jul 2004 16:57:51 -0000	1.112
+++ sched_ule.c	6 Jul 2004 02:52:18 -0000
@@ -1623,6 +1623,7 @@
         if (td->td_priority < curthread->td_priority)
                 curthread->td_flags |= TDF_NEEDRESCHED;
 
+#if 0
 #ifdef SMP
 	/*
 	 * Only try to preempt if the thread is unpinned or pinned to the
@@ -1632,6 +1633,7 @@
 #endif
 	if (maybe_preempt(td))
 		return;
+#endif
 	ke->ke_ksegrp->kg_runq_kses++;
 	ke->ke_state = KES_ONRUNQ;
 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.NEB.3.96L.1040706001249.2853I-100000>