Bug 204270 - panic: rendezvous action changed td_owepreempt running callout histogram script
Summary: panic: rendezvous action changed td_owepreempt running callout histogram script
Status: Closed FIXED
Alias: None
Product: Base System
Classification: Unclassified
Component: kern (show other bugs)
Version: CURRENT
Hardware: arm64 Any
: --- Affects Only Me
Assignee: Andrew Turner
URL:
Keywords:
Depends on:
Blocks: 203349
  Show dependency treegraph
 
Reported: 2015-11-03 21:37 UTC by Ed Maste
Modified: 2016-05-29 21:15 UTC (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Ed Maste freebsd_committer freebsd_triage 2015-11-03 21:37:51 UTC
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
Comment 1 commit-hook freebsd_committer freebsd_triage 2016-05-27 12:02:59 UTC
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