HomeFreeBSD

Cleanup: Make memory barrier definitions consistent across kernels

Description

Cleanup: Make memory barrier definitions consistent across kernels

We inherited membar_consumer() and membar_producer() from OpenSolaris,
but we had replaced membar_consumer() with Linux's smp_rmb() in
zfs_ioctl.c. The FreeBSD SPL consequently implemented a shim for the
Linux-only smp_rmb().

We reinstate membar_consumer() in platform independent code and fix the
FreeBSD SPL to implement membar_consumer() in a way analogous to Linux.

Reviewed-by: Konstantin Belousov <kib@FreeBSD.org>
Reviewed-by: Mateusz Guzik <mjguzik@gmail.com>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: Neal Gompa <ngompa@datto.com>
Reviewed-by: Alexander Motin <mav@FreeBSD.org>
Signed-off-by: Richard Yao <richard.yao@alumni.stonybrook.edu>
Closes #13843

Details

Provenance
Richard Yao <richard.yao@alumni.stonybrook.edu>Authored on Sep 13 2022, 11:59 PM
GitHub <noreply@github.com>Committed on Sep 13 2022, 11:59 PM
Parents
rG8fdc229a9cb6: Fix memory leak in ztest
Branches
Unknown
Tags
Unknown

Event Timeline

GitHub <noreply@github.com> committed rGcf66e7e594fc: Cleanup: Make memory barrier definitions consistent across kernels (authored by Richard Yao <richard.yao@alumni.stonybrook.edu>).Sep 13 2022, 11:59 PM