343494 |
27-Jan-2019 |
marius |
MFC: r333745, r333764, r337533, r339375, r341041
- ck: add support for executing callbacks outside of main poll loop Pull in change from upstream deca119d14bfffd440770eb67cbdbeaf7b57eb7b - Import CK as of commit deca119d14bfffd440770eb67cbdbeaf7b57eb7b. This is mostly a noop, for mergeinfo purpose, because the relevant changes were committed directly. - Import CK as of commit 08813496570879fbcc2adcdd9ddc0a054361bfde, mostly to avoid using lwsync on ppc32. - Import CK as of commit 5221ae2f3722a78c7fc41e47069ad94983d3bccb. This fixes two problems, one where epoch calls could occur before all the readers had exited the epoch section, and one where the epoch calls could be unnecessarily delayed. - Import CK as of 21d3e319407d19dece16ee317c757ffc54a452bc, which makes its sparcv9 atomics compatible with the FreeBSD kernel by using instructions which access the appropriate address space. |
332391 |
10-Apr-2018 |
cognet |
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. |