opnsense-src/sys/cddl/dev/dtrace
Ryan Stone 6969ef6656 Correct a series of errors in the hand-rolled locking for drace_debug.c:
- Use spinlock_enter()/spinlock_exit() to prevent a thread holding a
  debug lock from being preempted to prevent other threads waiting
  on that lock from starvation.

- Handle the possibility of CPU migration in between the fetch of curcpu
  and the call to spinlock_enter() by saving curcpu in a local variable.

- Use memory barriers to prevent reordering of loads and stores of the
  data protected by the lock outside of the critical section

- Eliminate false sharing of the locks by moving them into the structures
  that they protect and aligning them to a cacheline boundary.

- Record the owning thread in the lock to make debugging future problems
  easier.

Reviewed by:	rpaulo (initial version)
MFC after:	2 weeks
2012-12-23 15:50:37 +00:00
..
amd64 Change UL to ULL since time is 32 bits. 2012-07-17 14:36:40 +00:00
i386 Change UL to ULL since time is 32 bits. 2012-07-17 14:36:40 +00:00
mips - For o32 ABI get arguments from the stack 2012-03-26 21:47:06 +00:00
powerpc Implement DTrace for PowerPC. This includes both 32-bit and 64-bit. 2012-11-07 23:45:09 +00:00
dtrace_anon.c
dtrace_cddl.h Add more compatibility structure members needed by the upcoming fasttrap 2010-08-22 11:04:43 +00:00
dtrace_clone.c
dtrace_debug.c Correct a series of errors in the hand-rolled locking for drace_debug.c: 2012-12-23 15:50:37 +00:00
dtrace_hacks.c
dtrace_ioctl.c Properly cast 64-bit dofhp_dof to pointer. 2012-03-26 21:22:51 +00:00
dtrace_load.c Make the /dev/dtrace/helper node have the mode 0660. This allows 2010-09-01 12:08:32 +00:00
dtrace_modevent.c
dtrace_sysctl.c
dtrace_test.c
dtrace_unload.c Destroy the helper device when unloading. 2010-08-22 11:05:37 +00:00
dtrace_vtime.c