svn commit: r212992 - head/sys/kern

Alexander Motin mav at FreeBSD.org
Wed Sep 22 05:32:38 UTC 2010


Author: mav
Date: Wed Sep 22 05:32:37 2010
New Revision: 212992
URL: http://svn.freebsd.org/changeset/base/212992

Log:
  If kernel built with DEVICE_POLLING, keep one CPU always in active state
  to handle it.

Modified:
  head/sys/kern/kern_clocksource.c

Modified: head/sys/kern/kern_clocksource.c
==============================================================================
--- head/sys/kern/kern_clocksource.c	Wed Sep 22 05:17:18 2010	(r212991)
+++ head/sys/kern/kern_clocksource.c	Wed Sep 22 05:32:37 2010	(r212992)
@@ -34,6 +34,7 @@ __FBSDID("$FreeBSD$");
 /* XEN has own timer routines now. */
 #ifndef XEN
 
+#include "opt_device_polling.h"
 #include "opt_kdtrace.h"
 
 #include <sys/param.h>
@@ -721,7 +722,11 @@ cpu_idleclock(void)
 	struct pcpu_state *state;
 
 	if (idletick || busy ||
-	    (periodic && (timer->et_flags & ET_FLAGS_PERCPU)))
+	    (periodic && (timer->et_flags & ET_FLAGS_PERCPU))
+#ifdef DEVICE_POLLING
+	    || curcpu == CPU_FIRST()
+#endif
+	    )
 		return;
 	state = DPCPU_PTR(timerstate);
 	if (periodic)


More information about the svn-src-head mailing list