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)
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to