If kernel built with DEVICE_POLLING, keep one CPU always in active state

to handle it.
This commit is contained in:
Alexander Motin 2010-09-22 05:32:37 +00:00
parent 0069293b2b
commit 9dfc483c4a

View File

@ -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)