diff options
author | mav <mav@FreeBSD.org> | 2009-05-02 12:20:43 +0000 |
---|---|---|
committer | mav <mav@FreeBSD.org> | 2009-05-02 12:20:43 +0000 |
commit | baf55d1d06ec21028f521e2a0594294a49bc3bce (patch) | |
tree | f18d346c3109119beca341888aa2edfe43eac759 /sys/amd64/amd64/mp_machdep.c | |
parent | a5dcb177014ca524da48b6cd1ecdbde4e6b42789 (diff) | |
download | FreeBSD-src-baf55d1d06ec21028f521e2a0594294a49bc3bce.zip FreeBSD-src-baf55d1d06ec21028f521e2a0594294a49bc3bce.tar.gz |
Add support for using i8254 and rtc timers as event sources for amd64 SMP
system. Redistribute hard-/stat-/profclock events to other CPUs using IPIs.
Diffstat (limited to 'sys/amd64/amd64/mp_machdep.c')
-rw-r--r-- | sys/amd64/amd64/mp_machdep.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/sys/amd64/amd64/mp_machdep.c b/sys/amd64/amd64/mp_machdep.c index ffda046..7a93023 100644 --- a/sys/amd64/amd64/mp_machdep.c +++ b/sys/amd64/amd64/mp_machdep.c @@ -57,6 +57,7 @@ __FBSDID("$FreeBSD$"); #include <vm/vm_extern.h> #include <machine/apicreg.h> +#include <machine/clock.h> #include <machine/cputypes.h> #include <machine/cpufunc.h> #include <machine/md_var.h> @@ -1124,6 +1125,15 @@ ipi_bitmap_handler(struct trapframe frame) sched_preempt(curthread); /* Nothing to do for AST */ + + if (ipi_bitmap & (1 << IPI_HARDCLOCK)) + hardclockintr(&frame); + + if (ipi_bitmap & (1 << IPI_STATCLOCK)) + statclockintr(&frame); + + if (ipi_bitmap & (1 << IPI_PROFCLOCK)) + profclockintr(&frame); } /* |