Source-Changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

CVS commit: src



Module Name:    src
Committed By:   riastradh
Date:           Sat Sep  6 02:53:23 UTC 2025

Modified Files:
        src/common/lib/libc/arch/i386/atomic: atomic.S
        src/common/lib/libc/arch/sparc/atomic: membar_ops.S
        src/common/lib/libc/arch/sparc64/atomic: membar_ops.S
        src/common/lib/libc/arch/x86_64/atomic: atomic.S
        src/distrib/sets/lists/comp: mi
        src/share/man/man9: Makefile
        src/sys/arch/alpha/alpha: locore.s
        src/sys/arch/amd64/amd64: cpufunc.S
        src/sys/arch/arm/arm: cpu_subr.c
        src/sys/arch/hppa/hppa: support.S
        src/sys/arch/i386/i386: cpufunc.S
        src/sys/arch/mips/mips: cpu_subr.c
        src/sys/arch/riscv/riscv: cpu_subr.c
        src/sys/arch/sparc/sparc: locore.s
        src/sys/arch/sparc64/sparc64: locore.s
        src/sys/arch/virt68k/virt68k: locore.s
Added Files:
        src/share/man/man9: paravirt_membar_sync.9
        src/sys/sys: paravirt_membar.h

Log Message:
paravirt_membar_sync(9): New memory barrier.

For use in paravirtualized drivers which require store-before-load
ordering -- irrespective of whether the kernel is built for a single
processor, or whether the (virtual) machine is booted with a single
processor.

This is even required on architectures that don't even have a
store-before-load ordering barrier, like m68k; adding, e.g., a virtio
bus is _as if_ the architecture has been extended with relaxed memory
ordering when talking with that new bus.  Such architectures need
some way to request the hypervisor enforce that ordering -- on m68k,
that's done by issuing a CASL instruction, which qemu maps to an
atomic r/m/w with sequential consistency ordering in the host.

PR kern/59618: occasional virtio block device lock ups/hangs


To generate a diff of this commit:
cvs rdiff -u -r1.37 -r1.38 src/common/lib/libc/arch/i386/atomic/atomic.S
cvs rdiff -u -r1.8 -r1.9 src/common/lib/libc/arch/sparc/atomic/membar_ops.S
cvs rdiff -u -r1.9 -r1.10 \
    src/common/lib/libc/arch/sparc64/atomic/membar_ops.S
cvs rdiff -u -r1.31 -r1.32 src/common/lib/libc/arch/x86_64/atomic/atomic.S
cvs rdiff -u -r1.2498 -r1.2499 src/distrib/sets/lists/comp/mi
cvs rdiff -u -r1.474 -r1.475 src/share/man/man9/Makefile
cvs rdiff -u -r0 -r1.1 src/share/man/man9/paravirt_membar_sync.9
cvs rdiff -u -r1.144 -r1.145 src/sys/arch/alpha/alpha/locore.s
cvs rdiff -u -r1.69 -r1.70 src/sys/arch/amd64/amd64/cpufunc.S
cvs rdiff -u -r1.5 -r1.6 src/sys/arch/arm/arm/cpu_subr.c
cvs rdiff -u -r1.8 -r1.9 src/sys/arch/hppa/hppa/support.S
cvs rdiff -u -r1.53 -r1.54 src/sys/arch/i386/i386/cpufunc.S
cvs rdiff -u -r1.64 -r1.65 src/sys/arch/mips/mips/cpu_subr.c
cvs rdiff -u -r1.5 -r1.6 src/sys/arch/riscv/riscv/cpu_subr.c
cvs rdiff -u -r1.286 -r1.287 src/sys/arch/sparc/sparc/locore.s
cvs rdiff -u -r1.435 -r1.436 src/sys/arch/sparc64/sparc64/locore.s
cvs rdiff -u -r1.16 -r1.17 src/sys/arch/virt68k/virt68k/locore.s
cvs rdiff -u -r0 -r1.1 src/sys/sys/paravirt_membar.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.




Home | Main Index | Thread Index | Old Index