| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
After r355784 the td_oncpu field is no longer synchronized by the thread
lock, so the stack capture interrupt cannot be delievered precisely.
Fix this using a loop which drops the thread lock and restarts if the
wrong thread was sampled from the stack capture interrupt handler.
Change the implementation to use a regular interrupt instead of an NMI.
Now that we drop the thread lock, there is no advantage to the latter.
Simplify the KPIs. Remove stack_save_td_running() and add a return
value to stack_save_td(). On platforms that do not support stack
capture of running threads, stack_save_td() returns EOPNOTSUPP. If the
target thread is running in user mode, stack_save_td() returns EBUSY.
Reviewed by: kib
Reported by: mjg, pho
Tested by: pho
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D23355
Notes:
svn path=/head/; revision=357334
|
|
|
|
|
|
|
|
|
| |
Reviewed by: cem
Sponsored by: Dell EMC Isilon
Differential Revision: https://reviews.freebsd.org/D12614
Notes:
svn path=/head/; revision=324377
|
|
|
|
|
|
|
| |
MFC after: 1 month
Notes:
svn path=/head/; revision=301719
|
|
|
|
|
|
|
|
|
| |
Reviewed by: wblock
Sponsored by: EMC / Isilon Storage Division
Differential Revision: https://reviews.freebsd.org/D3243
Notes:
svn path=/head/; revision=287646
|
|
|
|
|
|
|
| |
Reviewed by: ed, kib, jhb
Notes:
svn path=/head/; revision=227581
|
|
|
|
| |
Notes:
svn path=/head/; revision=206383
|
|
|
|
|
|
|
|
|
|
| |
stack(9), which generate a more compact rendition of a stack trace
via the kernel's printf.
MFC after: 1 week
Notes:
svn path=/head/; revision=194828
|
|
|
|
|
|
|
|
|
| |
stack_print(9) mlink.
Spotted by: attilio
Notes:
svn path=/head/; revision=177168
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Introduce per-architecture stack_machdep.c to hold stack_save(9).
- Introduce per-architecture machine/stack.h to capture any common
definitions required between db_trace.c and stack_machdep.c.
- Add new kernel option "options STACK"; we will build in stack(9) if it is
defined, or also if "options DDB" is defined to provide compatibility
with existing users of stack(9).
Add new stack_save_td(9) function, which allows the capture of a stacktrace
of another thread rather than the current thread, which the existing
stack_save(9) was limited to. It requires that the thread be neither
swapped out nor running, which is the responsibility of the consumer to
enforce.
Update stack(9) man page.
Build tested: amd64, arm, i386, ia64, powerpc, sparc64, sun4v
Runtime tested: amd64 (rwatson), arm (cognet), i386 (rwatson)
Notes:
svn path=/head/; revision=174195
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
linker interfaces for looking up function names and offsets from
instruction pointers. Create two variants of each call: one that is
"DDB-safe" and avoids locking in the linker, and one that is safe for
use in live kernels, by virtue of observing locking, and in particular
safe when kernel modules are being loaded and unloaded simultaneous to
their use. This will allow them to be used outside of debugging
contexts.
Modify two of three current stack(9) consumers to use the DDB-safe
interfaces, as they run in low-level debugging contexts, such as inside
lockmgr(9) and the kernel memory allocator.
Update man page.
Notes:
svn path=/head/; revision=174137
|
|
|
|
| |
Notes:
svn path=/head/; revision=174078
|
|
|
|
| |
Notes:
svn path=/head/; revision=174017
|
|
MFC after: 1 week
Notes:
svn path=/head/; revision=173979
|