#
267654 |
|
19-Jun-2014 |
gjb |
Copy stable/9 to releng/9.3 as part of the 9.3-RELEASE cycle.
Approved by: re (implicit) Sponsored by: The FreeBSD Foundation |
#
262049 |
|
17-Feb-2014 |
avg |
MFC r258291: change the ioctl definition so that the fasttrap ioctl handler is responsible for copying in userland data
|
#
259519 |
|
17-Dec-2013 |
asomers |
MFC r258311
opensolaris/uts/common/dtrace/fasttrap.c Fix several problems that can cause panics on kldload and kldunload.
* kproc_create(fasttrap_pid_cleanup_cb, ...) gets called before fasttrap_provs.fth_table gets allocated. This can lead to a panic on module load, because fasttrap_pid_cleanup_cb references fasttrap_provs.fth_table. Move kproc_create down after the point that fasttrap_provs.fth_table gets allocated, and modify the error handling accordingly.
* dtrace_fasttrap_{fork,exec,exit} weren't getting NULLed until after fasttrap_provs.fth_table got freed. That caused panics on module unload because fasttrap_exec_exit calls fasttrap_provider_retire, which references fasttrap_provs.fth_table. NULL those function pointers earlier.
* There wasn't any code to destroy the fasttrap_{tpoints,provs,procs}.fth_table mutexes on module unload, leading to a resource leak when WITNESS is enabled. Destroy those mutexes during fasttrap_unload().
Sponsored by: Spectra Logic Corporation
|
#
255749 |
|
20-Sep-2013 |
markj |
MFC r250953: The fasttrap provider cleans up probes asynchronously when a process with USDT probes exits. This was previously done with a callout; however, it is possible to sleep while holding the DTrace mutexes, so a panic will occur on INVARIANTS kernels if the callout handler can't immediately acquire one of these mutexes. This panic will be frequently triggered on systems where a USDT-enabled program (perl, for instance) is often run.
This revision changes the fasttrap cleanup mechanism so that a dedicated thread is used instead of a callout. The old behaviour is otherwise preserved.
MFC r252493: Be sure to destory the fasttrap cleanup mutex when unloading the fasttrap module. This should be MFCed with r250953.
|
#
253394 |
|
16-Jul-2013 |
avg |
MFC r253079: dtrace/fasttrap: install hook functions only after all data is initialized
Approved by: re (marius)
|
#
250484 |
|
10-May-2013 |
pfg |
MFC r248983: Dtrace: enablings on defunct providers prevent providers from unregistering
Merge change from illumos:
1368 enablings on defunct providers prevent providers from unregistering
Illumos Revision: 13430:8e6add739e38
Reference: https://www.illumos.org/issues/1368
Reviewed by: gnn Tested by: Fabian Keil Obtained from: Illumos
|
#
248248 |
|
13-Mar-2013 |
gibbs |
MFC kernel fixes to userland dtrace support.
r247049 ------- Avoid panic when tearing down the DTrace pid provider for a process that has crashed.
sys/cddl/contrib/opensolaris/uts/common/dtrace/fasttrap.c: In fasttrap_pid_disable(), we cannot PHOLD the proc structure for a process that no longer exists, but we still have other, fasttrap specific, state that must be cleaned up for probes that existed in the dead process. Instead of returning early if the process related to our probes isn't found, conditionalize the locking and carry on with a NULL proc pointer. The rest of the fasttrap code already understands that a NULL proc is possible and does the right things in this case.
r247820 ------- Fix assertion failure when using userland DTrace probes from the pid provider on a kernel compiled with INVARIANTS.
sys/cddl/contrib/opensolaris/uts/intel/dtrace/fasttrap_isa.c: In fasttrap_probe_pid(), attempts to write to the address space of the thread that fired the probe must be performed with the process of the thread held. Use _PHOLD() to ensure this is the case.
In fasttrap_probe_pid(), use proc_write_regs() instead of calling set_regs() directly. proc_write_regs() performs invariant checks to verify the calling environment of set_regs(). PROC_LOCK()/UNLOCK() around the call to proc_write_regs() so that it's invariants are satisfied.
Sponsored by: Spectra Logic Corporation
|
#
225736 |
|
22-Sep-2011 |
kensmith |
Copy head to stable/9 as part of 9.0-RELEASE release cycle.
Approved by: re (implicit)
|
#
212494 |
|
12-Sep-2010 |
rpaulo |
Revamp locking a bit. This fixes three problems: * processes now can't go away while we are inserting probes (fixes a panic) * if a trap happens, we won't be holding the process lock (fixes a hang) * fix a LOR between the process lock and the fasttrap bucket list lock
Thanks to kib for pointing some problems. Sponsored by: The FreeBSD Foundation
|
#
212465 |
|
11-Sep-2010 |
rpaulo |
Avoid a LOR (sleepable after non-sleepable) in fasttrap_tracepoint_enable().
Sponsored by: The FreeBSD Foundation
|
#
212357 |
|
09-Sep-2010 |
rpaulo |
Fix two bugs in DTrace: * when the process exits, remove the associated USDT probes * when the process forks, duplicate the USDT probes.
Sponsored by: The FreeBSD Foundation
|
#
211925 |
|
28-Aug-2010 |
rpaulo |
Replace a memory barrier with a mutex barrier.
Sponsored by: The FreeBSD Foundation
|
#
211745 |
|
24-Aug-2010 |
rpaulo |
Replace a pksignal() call with tdksignal().
Pointed out by: kib
|
#
211738 |
|
24-Aug-2010 |
rpaulo |
Port the fasttrap provider to FreeBSD. This provider is responsible for injecting debugging probes in the userland programs and is the basis for the pid provider and the usdt provider.
Sponsored by: The FreeBSD Foundation
|
#
184698 |
|
05-Nov-2008 |
rodrigc |
Merge latest DTrace changes from Perforce.
|
#
179198 |
|
22-May-2008 |
jb |
FreeBSD changes to vendor source.
|
#
179194 |
|
22-May-2008 |
jb |
This commit was generated by cvs2svn to compensate for changes in r179193, which included commits to RCS files with non-trunk default branches.
|
#
179193 |
|
22-May-2008 |
jb |
Vendor import of the src/sys OpenSolaris bits for DTrace.
|