Re: powerpc64/pmap.c trouble report
George Koehler <[email protected]> Sat, 1 Jun 2024 00:25:51 -0400
| Newsgroups | gmane.os.openbsd.ppc,gmane.os.openbsd.bugs |
|---|---|
| Message-ID | <[email protected]> |
On Thu, 30 May 2024 13:11:41 -0700 Eric Grosse <[email protected]> wrote: > ddb{7}> show panic > > cpu6: kernel diagnostic assertion "((flags & PGO_LOCKED) != 0 && rw_lock_held( > uobj->vmobjlock)) || (flags & PGO_LOCKED) == 0" failed: file "/sys/uvm/uvm_vnod > e.c", line 953 > > *cpu7: assertwaitok: non-zero mutex count: 1 This kernel diff might or might not help. It changes some memory barriers from "isync" to "sync". I had a problem with corrupt memory. I had 2 mounts of the same nfs filesystem; the same file was good in one mount and corrupt in the other mount, as if something corrupted the cached file in memory. I failed to reproduce the problem, so I never learned whether or not the memory barrier affected it. --gkoehler Index: arch/powerpc64/include/atomic.h =================================================================== RCS file: /cvs/src/sys/arch/powerpc64/include/atomic.h,v diff -u -p -r1.3 atomic.h --- arch/powerpc64/include/atomic.h 29 Aug 2022 02:01:18 -0000 1.3 +++ arch/powerpc64/include/atomic.h 8 Mar 2024 18:06:58 -0000 @@ -276,10 +276,10 @@ _atomic_addic_long_nv(volatile unsigned #define __membar(_f) do { __asm volatile(_f ::: "memory"); } while (0) #if defined(MULTIPROCESSOR) || !defined(_KERNEL) -#define membar_enter() __membar("isync") +#define membar_enter() __membar("sync") #define membar_exit() __membar("sync") #define membar_producer() __membar("sync") -#define membar_consumer() __membar("isync") +#define membar_consumer() __membar("sync") #define membar_sync() __membar("sync") #else #define membar_enter() __membar("")