diff options
Diffstat (limited to 'sys/powerpc')
| -rw-r--r-- | sys/powerpc/include/atomic.h | 2 | ||||
| -rw-r--r-- | sys/powerpc/include/cpu.h | 1 | ||||
| -rw-r--r-- | sys/powerpc/powerpc/mp_machdep.c | 6 |
3 files changed, 7 insertions, 2 deletions
diff --git a/sys/powerpc/include/atomic.h b/sys/powerpc/include/atomic.h index 1b3c084db196..c8e1e8447cc7 100644 --- a/sys/powerpc/include/atomic.h +++ b/sys/powerpc/include/atomic.h @@ -510,7 +510,7 @@ atomic_load_acq_##TYPE(volatile u_##TYPE *p) \ u_##TYPE v; \ \ v = *p; \ - mb(); \ + powerpc_lwsync(); \ return (v); \ } \ \ diff --git a/sys/powerpc/include/cpu.h b/sys/powerpc/include/cpu.h index 3573a0a85d20..00f8437c8c49 100644 --- a/sys/powerpc/include/cpu.h +++ b/sys/powerpc/include/cpu.h @@ -128,6 +128,7 @@ get_cyclecount(void) #define cpu_getstack(td) ((td)->td_frame->fixreg[1]) #define cpu_spinwait() __asm __volatile("or 27,27,27") /* yield */ +#define cpu_lock_delay() DELAY(1) extern char btext[]; extern char etext[]; diff --git a/sys/powerpc/powerpc/mp_machdep.c b/sys/powerpc/powerpc/mp_machdep.c index a0a97d4af3f2..49e259ad50b9 100644 --- a/sys/powerpc/powerpc/mp_machdep.c +++ b/sys/powerpc/powerpc/mp_machdep.c @@ -100,7 +100,11 @@ machdep_ap_bootstrap(void) /* Serialize console output and AP count increment */ mtx_lock_spin(&ap_boot_mtx); ap_awake++; - printf("SMP: AP CPU #%d launched\n", PCPU_GET(cpuid)); + if (bootverbose) + printf("SMP: AP CPU #%d launched\n", PCPU_GET(cpuid)); + else + printf("%s%d%s", ap_awake == 2 ? "Launching APs: " : "", + PCPU_GET(cpuid), ap_awake == mp_ncpus ? "\n" : " "); mtx_unlock_spin(&ap_boot_mtx); while(smp_started == 0) |
