6969ef6656
- 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 |
||
---|---|---|
.. | ||
amd64 | ||
i386 | ||
mips | ||
powerpc | ||
dtrace_anon.c | ||
dtrace_cddl.h | ||
dtrace_clone.c | ||
dtrace_debug.c | ||
dtrace_hacks.c | ||
dtrace_ioctl.c | ||
dtrace_load.c | ||
dtrace_modevent.c | ||
dtrace_sysctl.c | ||
dtrace_test.c | ||
dtrace_unload.c | ||
dtrace_vtime.c |