]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
MFC r329388, r331441 and r331898, to bring the -CURRENT ck version.
authorcognet <cognet@FreeBSD.org>
Tue, 10 Apr 2018 20:22:36 +0000 (20:22 +0000)
committercognet <cognet@FreeBSD.org>
Tue, 10 Apr 2018 20:22:36 +0000 (20:22 +0000)
commitd0e8260dbc359b2b249cc34578d4e6b74f9baec1
tree27f761b8fdef16d3b2bbd20ad3d98660c5a7ea8c
parenta1d9cc9de3644f152ab446c7a76ad15bb090ffc2
MFC r329388, r331441 and r331898, to bring the -CURRENT ck version.
r329388:
Define CK_MD_TSO for the relevant arches (i386, amd64 and sparc64).
Defaulting to CK_MD_RMO has the unfortunate side effect of generating
memory barriers that are useless on those arches, and the even more
unfortunate side effect of generating lfence/sfence/mfence on i386, even
if older CPUs don't support it.
This should fix the panic reported when using IPFW on a Pentium 3.
Note that mfence and sfence might still be used in a few case, but that
shouldn't happen in FreeBSD right now, and should be fixed upstream first.

r331441:
In __sync_bool_compare_and_swap(), return true if the returned value is the
same as the expected one, not the desired one.

r331898:
Import CK as of commit b19ed4c6a56ec93215ab567ba18ba61bf1cfbac8
It should fix ck_pr_[load|store]_ptr on mips and riscv, make sure no
*fence instructions are used on i386, as older cpus don't support it, and
make sure we don't rely on gcc builtins that can lead to calls to
libatomic when linked with -O0.
19 files changed:
sys/contrib/ck/FREEBSD-Xlist
sys/contrib/ck/include/ck_cc.h
sys/contrib/ck/include/ck_hs.h
sys/contrib/ck/include/ck_md.h
sys/contrib/ck/include/ck_pr.h
sys/contrib/ck/include/ck_queue.h
sys/contrib/ck/include/ck_ring.h
sys/contrib/ck/include/gcc/ck_cc.h
sys/contrib/ck/include/gcc/ck_pr.h
sys/contrib/ck/include/gcc/sparcv9/ck_pr.h
sys/contrib/ck/include/gcc/x86/ck_pr.h
sys/contrib/ck/include/gcc/x86_64/ck_pr.h
sys/contrib/ck/include/spinlock/dec.h
sys/contrib/ck/src/ck_hs.c
sys/contrib/ck/src/ck_ht.c
sys/contrib/ck/src/ck_ht_hash.h
sys/contrib/ck/src/ck_internal.h
sys/contrib/ck/src/ck_rhs.c
sys/mips/mips/stdatomic.c