ck/aarch64: Specify output operands for ck_pr_md_store_*This is a backport of upstream commit d1e9f03b89: ck_pr/aarch64: Specify output operands for ck_pr_md_store_* As in commit 2f9acab,
ck/aarch64: Specify output operands for ck_pr_md_store_*This is a backport of upstream commit d1e9f03b89: ck_pr/aarch64: Specify output operands for ck_pr_md_store_* As in commit 2f9acab, we want to specify output operand widths so that MSAN compiler instrumentation correctly updates the shadow map. In particular, LLVM's implementation depends on having type information for output operands, even when that's not otherwise necessary. Without it, KMSAN in FreeBSD generates false positives on aarch64.Reviewed by: cognetMFC after: 2 weeksSponsored by: Klara, Inc.Sponsored by: Juniper Networks, Inc.
show more ...
Merge commit 'ce929fe84f9c453263af379f3b255ff8eca01d48'Import CK as of commit 2265c7846f4ce667f5216456afe2779b23c3e5f7.
ck: Correct asm output operand widths in amd64 pointer intrinsicsThis does not appear to change generated code with the defaulttoolchain. However, KMSAN makes use of output operand specifications
ck: Correct asm output operand widths in amd64 pointer intrinsicsThis does not appear to change generated code with the defaulttoolchain. However, KMSAN makes use of output operand specifications toinstrument inline asm, and with incorrect specifications we get falsepositives in code that uses the CK_(S)LIST macros.This was submitted upstream:https://github.com/concurrencykit/ck/pull/175The commit applies the same change locally to make KMSAN usable untilsomething equivalent is merged upstream.MFC after: 1 weekSponsored by: The FreeBSD Foundation
Remove FreeBSD/armv4 specific bits from CK.Now that armv4/v5 is gone, remove the bits that implemented atomic operationsby disabling interrupts.Those were specific to FreeBSD and never reached up
Remove FreeBSD/armv4 specific bits from CK.Now that armv4/v5 is gone, remove the bits that implemented atomic operationsby disabling interrupts.Those were specific to FreeBSD and never reached upstream.
Import CK as of 21d3e319407d19dece16ee317c757ffc54a452bc, which makes itssparcv9 atomics compatible with the FreeBSD kernel by using instructionswhich access the appropriate address space.Atomic o
Import CK as of 21d3e319407d19dece16ee317c757ffc54a452bc, which makes itssparcv9 atomics compatible with the FreeBSD kernel by using instructionswhich access the appropriate address space.Atomic operations within the kernel must access the nucleus address spaceinstead of the default primary one. Without this change but the increaseduse of CK in the kernel, machines started to panic after some minutes ofuptime due to an unresolvable fault in ck_pr_cas_64_value().
Import CK as of commit 08813496570879fbcc2adcdd9ddc0a054361bfde, mostlyto avoid using lwsync on ppc32.
MFV CK@r336629: Import CK as of commit 1c1f9901c2dea7a883342cd03d3906a1bc482583This adds CK_SLIST_INSERT_PREVPTR and CK_SLIST_REMOVE_PREVPTR macrosas well as ck_pr_dec_is_zero family of functions.
MFV CK@r336629: Import CK as of commit 1c1f9901c2dea7a883342cd03d3906a1bc482583This adds CK_SLIST_INSERT_PREVPTR and CK_SLIST_REMOVE_PREVPTR macrosas well as ck_pr_dec_is_zero family of functions.MFC after: 3 weeks
Import CK as of commit b19ed4c6a56ec93215ab567ba18ba61bf1cfbac8It 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
Import CK as of commit b19ed4c6a56ec93215ab567ba18ba61bf1cfbac8It 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, andmake sure we don't rely on gcc builtins that can lead to calls tolibatomic when linked with -O0.MFC after: 1 week
Merge CK as of commit 255a47553aa5e8d0bb5f8eec63acac7f4c25a6d8, mostlyto make sure we don't use any FP instruction.
Add FreeBSD-specific files.
Import Concurrency Kit in the kernel.CK is a toolkit providing different lockfree algorithms/data structures.More information can be found here : www.concurrencykit.org