summaryrefslogtreecommitdiffstats
path: root/sys/cddl/dev/dtrace/dtrace_debug.c
Commit message (Collapse)AuthorAgeFilesLines
* Correct a series of errors in the hand-rolled locking for drace_debug.c:rstone2012-12-231-44/+54
| | | | | | | | | | | | | | | | | | | | | - 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
* Define dtrace_cmpset_long in terms of atomic_cmpset_longmarcel2011-10-161-43/+3
| | | | | and not by virtue of inline assembly. Now this file compiles on all supported architectures.
* Update several places that iterate over CPUs to use CPU_FOREACH().jhb2010-06-111-8/+2
|
* Custom DTrace kernel module files plus FreeBSD-specific DTrace providers.jb2008-05-231-0/+596
OpenPOWER on IntegriCloud