Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 18 Jul 2007 11:19:29 +0900
From:      "YAMAMOTO, Taku" <taku@tackymt.homeip.net>
To:        freebsd-current@freebsd.org
Subject:   critical_exit(), td_owepreempt and SW_PREEMPT
Message-ID:  <20070718111929.22bf3eb3.taku@tackymt.homeip.net>

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

[-- Attachment #1 --]
Greetings,

I had found that critical_exit() calls mi_switch() without SW_PREEMPT
when td_owepreempt is set.

Should the first argument at that line be SW_INVOL|SW_PREEMPT?


-- 
YAMAMOTO, Taku <taku@tackymt.homeip.net>

[-- Attachment #2 --]
--- sys/kern/kern_switch.c.orig	2007-06-13 04:50:31.000000000 +0900
+++ sys/kern/kern_switch.c	2007-07-18 10:21:09.000000000 +0900
@@ -192,7 +192,7 @@ critical_exit(void)
 			thread_lock(td);
 			td->td_critnest--;
 			SCHED_STAT_INC(switch_owepreempt);
-			mi_switch(SW_INVOL, NULL);
+			mi_switch(SW_INVOL|SW_PREEMPT, NULL);
 			thread_unlock(td);
 		}
 	} else

Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20070718111929.22bf3eb3.taku>