https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292167

--- Comment #2 from Adrian Chadd <[email protected]> ---
Chatting with jhibbits, it looks like the isync in sched_switch is in the wrong
spot.

```
diff --git a/sys/powerpc/powerpc/swtch64.S b/sys/powerpc/powerpc/swtch64.S
index 5f80751c8a10..ba37274d32bb 100644
--- a/sys/powerpc/powerpc/swtch64.S
+++ b/sys/powerpc/powerpc/swtch64.S
@@ -194,8 +194,8 @@ cpu_switchin:
 blocked_loop:
        ld      %r7,TD_LOCK(%r13)
        cmpd    %r6,%r7 
-       beq-    blocked_loop
        isync
+       beq-    blocked_loop
 #endif

        ld      %r17,TD_PCB(%r13)       /* Get new PCB */
adrian@test-3:/data/1/adrian/freebsd/freebsd-src-ppc64/sys/powerpc % 
```

This seems to fix it. 11 successful boots so far.

i'll put up a review.

-- 
You are receiving this mail because:
You are the assignee for the bug.

Reply via email to