Add the mp_watchdog hooks, although it locks up my SMP test box. It might

be useable to somebody.
This commit is contained in:
peter 2004-08-30 23:33:33 +00:00
parent 1d9abdbe78
commit 43365c0b41
3 changed files with 11 additions and 0 deletions

View File

@ -29,6 +29,7 @@ __FBSDID("$FreeBSD$");
#include "opt_cpu.h"
#include "opt_kstack_pages.h"
#include "opt_mp_watchdog.h"
#include <sys/param.h>
#include <sys/systm.h>
@ -56,6 +57,7 @@ __FBSDID("$FreeBSD$");
#include <machine/apicreg.h>
#include <machine/clock.h>
#include <machine/md_var.h>
#include <machine/mp_watchdog.h>
#include <machine/pcb.h>
#include <machine/psl.h>
#include <machine/smp.h>
@ -1067,8 +1069,15 @@ int
mp_grab_cpu_hlt(void)
{
u_int mask = PCPU_GET(cpumask);
#ifdef MP_WATCHDOG
u_int cpuid = PCPU_GET(cpuid);
#endif
int retval;
#ifdef MP_WATCHDOG
ap_watchdog(cpuid);
#endif
retval = mask & hlt_cpus_mask;
while (mask & hlt_cpus_mask)
__asm __volatile("sti; hlt" : : : "memory");

View File

@ -79,6 +79,7 @@ amd64/amd64/locore.S standard no-obj
amd64/amd64/machdep.c standard
amd64/amd64/mem.c optional mem
amd64/amd64/mp_machdep.c optional smp
amd64/amd64/mp_watchdog.c optional mp_watchdog smp
amd64/amd64/mpboot.S optional smp
amd64/amd64/mptable.c optional mptable
amd64/amd64/mptable_pci.c optional mptable pci

View File

@ -6,6 +6,7 @@ AUTO_EOI_2 opt_auto_eoi.h
MAXMEM
PERFMON opt_perfmon.h
PMAP_SHPGPERPROC opt_pmap.h
MP_WATCHDOG opt_mp_watchdog.h
# Options for emulators. These should only be used at config time, so
# they are handled like options for static filesystems