[PATCH] for SCHED_ULE & libpthread issue (was Re: I like SCHED_4BSD)

From: Taku YAMAMOTO <taku_at_cent.saitama-u.ac.jp>
Date: Fri, 12 Mar 2004 09:23:47 +0900
On Thu, 11 Mar 2004 14:19:39 -0500
Mike B <meb_at_cinci.rr.com> wrote:
> Conrad Sabatier wrote:
(snip)
> seconds to redraw the screen. This sluggishness isn't exclusive to 
> firefox, opera and openoffice are noticeably laggy under ULE as well. I 
> WANT to like and use ULE but the performance just isn't there.

I think all of those applications are using libpthread, which utilizes
scheduler activation mechanism.

Unfortunately, due to over-optimization in sched_switch(), SCHED_ULE doesn't
give reasonable CPU time to the threads which are using scheduler activation.

Detailed analisis is described in my previous message posted to current_at_:
	"SCHED_ULE sometimes puts P_SA processes into ksq_next unnecessarily"
	<20040213063139.71298ea9.taku_at_cent.saitama-u.ac.jp>
 or
	http://docs.freebsd.org/cgi/mid.cgi?20040213063139.71298ea9.taku
, which didn't get broader audience :(

Until the problem is fully addressed, I will propose following patch
to be applied. (the least intrusive one attached in the former message)

--- sched_ule.c.orig	Fri Feb 13 05:24:48 2004
+++ sched_ule.c	Fri Feb 13 05:37:53 2004
_at__at_ -186,7 +186,7 _at__at_
 #define	SCHED_INTERACTIVE(kg)						\
     (sched_interact_score(kg) < SCHED_INTERACT_THRESH)
 #define	SCHED_CURR(kg, ke)						\
-    (ke->ke_thread->td_priority != kg->kg_user_pri ||			\
+    (ke->ke_thread->td_priority < kg->kg_user_pri ||			\
     SCHED_INTERACTIVE(kg))
 
 /*
_at__at_ -1166,11 +1166,8 _at__at_
 	 */
 	if ((ke->ke_flags & KEF_ASSIGNED) == 0) {
 		if (TD_IS_RUNNING(td)) {
-			if (td->td_proc->p_flag & P_SA) {
-				kseq_load_rem(KSEQ_CPU(ke->ke_cpu), ke);
-				setrunqueue(td);
-			} else 
-				kseq_runq_add(KSEQ_SELF(), ke);
+			kseq_load_rem(KSEQ_CPU(ke->ke_cpu), ke);
+			setrunqueue(td);
 		} else {
 			if (ke->ke_runq) {
 				kseq_load_rem(KSEQ_CPU(ke->ke_cpu), ke);


-- 
-|-__    YAMAMOTO, Taku  <taku_at_cent.saitama-u.ac.jp>
 | __ <
Received on Thu Mar 11 2004 - 15:23:54 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:37:47 UTC