Running the script under "Measure total time spent in each callout handler over 1-second intervals" from https://wiki.freebsd.org/DTrace/Examples on the Cavium ThunderX: panic: rendezvous action changed td_owepreempt cpuid = 0 KDB: stack backtrace: db_trace_self() at db_trace_self_wrapper+0x28 pc = 0xffffff80004d6254 lr = 0xffffff800006d888 sp = 0xffffff850dcd4580 fp = 0xffffff850dcd46a0 db_trace_self_wrapper() at vpanic+0x170 pc = 0xffffff800006d888 lr = 0xffffff800025abd0 sp = 0xffffff850dcd46b0 fp = 0xffffff850dcd4730 vpanic() at kassert_panic+0x160 pc = 0xffffff800025abd0 lr = 0xffffff800025aa5c sp = 0xffffff850dcd4740 fp = 0xffffff850dcd4800 kassert_panic() at ipi_handler+0xd4 pc = 0xffffff800025aa5c lr = 0xffffff80004dfbe8 sp = 0xffffff850dcd4810 fp = 0xffffff850dcd4820 ipi_handler() at intr_event_handle+0x80 pc = 0xffffff80004dfbe8 lr = 0xffffff8000226b5c sp = 0xffffff850dcd4830 fp = 0xffffff850dcd4880 intr_event_handle() at arm_dispatch_intr+0x54 pc = 0xffffff8000226b5c lr = 0xffffff80004dca54 sp = 0xffffff850dcd4890 fp = 0xffffff850dcd48b0 arm_dispatch_intr() at gic_v3_dispatch+0x20 pc = 0xffffff80004dca54 lr = 0xffffff80004d8c94 sp = 0xffffff850dcd48c0 fp = 0xffffff850dcd48d0 gic_v3_dispatch() at arm_cpu_intr+0x5c pc = 0xffffff80004d8c94 lr = 0xffffff80004dcb70 sp = 0xffffff850dcd48e0 fp = 0xffffff850dcd48f0 arm_cpu_intr() at handle_el1h_irq+0x5c pc = 0xffffff80004dcb70 lr = 0xffffff80004d7118 sp = 0xffffff850dcd4900 fp = 0xffffff850dcd4aa0 handle_el1h_irq() at sched_idletd+0x360 pc = 0xffffff80004d7118 lr = 0xffffff800028251c sp = 0xffffff850dcd4ab0 fp = 0xffffff850dcd4b70 sched_idletd() at fork_exit+0x7c pc = 0xffffff800028251c lr = 0xffffff8000223f5c sp = 0xffffff850dcd4b80 fp = 0xffffff850dcd4bb0 fork_exit() at fork_trampoline+0x10 pc = 0xffffff8000223f5c lr = 0xffffff80004e6c8c sp = 0xffffff850dcd4bc0 fp = 0x0000000000000000 KDB: enter: panic
A commit references this bug: Author: andrew Date: Fri May 27 12:02:12 UTC 2016 New revision: 300850 URL: https://svnweb.freebsd.org/changeset/base/300850 Log: Fix dtrace_interrupt_disable and dtrace_interrupt_enable by having the former return the current status for the latter to use. Without this we could enable interrupts when they shouldn't be. It's still not quite right as it should only update the bits we care about, bit should be good enough until the correct fix can be tested. PR: 204270 Obtained from: ABT Systems Ltd Sponsored by: The FreeBSD Foundation Changes: head/sys/cddl/dev/dtrace/aarch64/dtrace_asm.S