Add the mp_watchdog hooks, although it locks up my SMP test box. It might
be useable to somebody.
This commit is contained in:
parent
1d9abdbe78
commit
43365c0b41
@ -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");
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user