History log of /freebsd-10-stable/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c
Revision Date Author Comments
# 314667 04-Mar-2017 avg

MFC r283291: don't use CALLOUT_MPSAFE with callout_init()

The main purpose of this MFC is to reduce conflicts for other merges.
Parts of the original change have already "trickled down" via individual MFCs.


# 313486 09-Feb-2017 ngie

MFC r258903,r264487,r271699,r288415:

r258903 (by markj):

Enable some previously-disabled DTrace tests for umod, ufunc and usym. They
expect the installed ksh binary to be named "ksh", which is not the case
when it's installed on FreeBSD via the shells/ksh93 port. Allow for it to be
"ksh93" as well so that the tests can actually pass.

r264487 (by markj):

Replace a few Solarisisms with their corresponding FreeBSDisms to make a few
printf tests pass.

r271699 (by markj):

Implement a workaround to allow this test program to be compiled with clang.
It seems that if a pragma is used to define a weak alias for a local
function, the pragma must appear after the function is defined.

PR: 193056

r288415 (by markj):

MFV r288408:
6266 harden dtrace_difo_chunksize() with respect to malicious DIF

illumos/illumos-gate@395c7a3dcfc66b8b671dc4b3c4a2f0ca26449922

Author: Bryan Cantrill <bryan@joyent.com>


# 302909 15-Jul-2016 markj

MFC r302507:
Avoid truncating the return value of DTrace predicates.


# 299277 09-May-2016 markj

MFC r298589:
Allow DOF sections with excessively long probe function components.

PR: 207735


# 297077 20-Mar-2016 mav

MFC r277300 (by smh): Mechanically convert cddl sun #ifdef's to illumos

Since the upstream for cddl code is now illumos not sun, mechanically
convert all sun #ifdef's to illumos #ifdef's which have been used in all
newer code for some time.

Also do a manual pass to correct the use if #ifdef comments as per style(9)
as well as few uses of #if defined(__FreeBSD__) vs #ifndef illumos.


# 287230 27-Aug-2015 markj

MFC r286167:
Avoid dereferencing curthread->td_proc->p_cred in DTrace probe context.


# 284138 07-Jun-2015 pfg

MFC r278167, MFV r266995:

4767 dtrace_probe() always has the timestamp

Reference:
https://illumos.org/issues/4767

Obtained from: Illumos


# 284136 07-Jun-2015 pfg

MFC r278166, MFV r266993:

4469 DTrace helper tracing should be dynamic

Reference:
https://illumos.org/issues/4469

Obtained from: Illumos
Phabric: D1551
Reviewed by: markj


# 284134 07-Jun-2015 markj

MFC r278136, r278137, r278370:
Diff reduction with illumos, in preparation for merging r266993 from the
vendor branch. No functional change.


# 283676 29-May-2015 markj

MFC r281915:
Make vpanic() externally visible.

MFC r281916:
Fix DTrace's panic() action.


# 282748 11-May-2015 avg

MFC r275576: remove opensolaris cyclic code, replace with high-precision callouts


# 277547 22-Jan-2015 delphij

MFC r275562: MFV r275535:

Unexpand ISP2() and MSEC2NSEC().

Illumos issue:
5255 uts shouldn't open-code ISP2


# 273110 14-Oct-2014 pfg

MFC r267851:

Continue the crusade towards a dev_clone()-free kernel, removing its
usage from dtrace. The dtrace code already uses cdevpriv(9) since FreeBSD
8, so this change is quite harmless.

Originally by: davide
Reviewed by: markj


# 270294 21-Aug-2014 markj

MFC r269525:
Return 0 for the PPID of threads in process 0, as process 0 doesn't have a
parent process.


# 269520 04-Aug-2014 markj

MFC r256571:
Add a function, memstr, which can be used to convert a buffer of
null-separated strings to a single string. This can be used to print the
full arguments of a process using execsnoop (from the DTrace toolkit) or
with the following one-liner:

dtrace -n 'syscall::execve:return {trace(curpsinfo->pr_psargs);}'

Note that this relies on the process arguments being cached via the struct
proc, which means that it will not work for argvs longer than
kern.ps_arg_cache_limit. However, the following rather non-portable
script can be used to extract any argv at exec time:

fbt::kern_execve:entry
{
printf("%s", memstr(args[1]->begin_argv, ' ',
args[1]->begin_envv - args[1]->begin_argv));
}

The debug.dtrace.memstr_max sysctl limits the maximum argument size to
memstr().


# 268595 13-Jul-2014 pfg

MFC r268290:
Merge from OpenSolaris (24-Jul-2010):

6679140 asymmetric alloc/dealloc activity can induce dynamic variable drops
6679193 dtrace_dynvar walker produces flood of dtrace_dynhash_sink

This finishes a set of merges from the older OpenSolaris releases.
Still the FreeBSD port has many differences that are difficult to
account for but that seems normal given that the kernels are different.

Obtained from: OpenSolaris (through Illumos)


# 268578 12-Jul-2014 rpaulo

MFC 267929, 267937, 267939, 267940, 267941, 267942, 267987, 268006:

2915 DTrace in a zone should see "cpu", "curpsinfo", et al
2916 DTrace in a zone should be able to access fds[]
2917 DTrace in a zone should have limited provider access
4477 DTrace should speak JSON
Add stubs for CTF functions which are not yet implemented.
4474 DTrace Userland CTF Support
4475 DTrace userland Keyword
4476 DTrace tests should be better citizens
4479 pid provider types
4480 dof emulation is missing checks
4471 DTrace count() with histogram
4472 DTrace full width distribution histograms
4473 DTrace frequency trails


# 268572 12-Jul-2014 pfg

MFC r268130, r268224, r268230, r268231:

Various DTrace Merges from OpenSolaris/Illumos:

15-Sep-2008:
6735480 race between probe enabling and provider registration

20-Apr-2008:
6822482 DOF validation needs to handle loadable sections flagged as unloadable

22-Apr-2009:
6823388 DTrace ioctl handlers must validate all structure members

30-Jun-2009:
6851093 system drops to kmdb with anonymous dtrace probes + kmdb

Obtained from: OpenSolaris


# 268323 06-Jul-2014 pfg

MFC r268125:

Small merges from OpenSolaris:

These have no effect on FreeBSD, in fact they are ifdef'ed,
but make easier future merges:

6699767 panic in spec_open()

6718877 crgetzoneid() use can cause problems when forking processes with
USDT providers in a non global zone


# 266667 25-May-2014 markj

MFC r262329:
Define the KM_NORMALPRI flag for kmem_alloc(), as it is used in some
upstream DTrace code.

MFC r262330:
1452 DTrace buffer autoscaling should be less violent

illumos/illumos-gate@6fb4854bed54ce82bd8610896b64ddebcd4af706


# 266102 14-May-2014 markj

MFC r262665:
Expose a few DTrace parameters as sysctls under kern.dtrace and add
descriptions for several existing sysctls.

PR: 187027


# 265234 02-May-2014 pfg

MFC r264040:

4248 dtrace(1M) should never create DOF with empty probes section
4249 Only probes from the first DTrace object file will be included

Illumos Revision: 4a20ab41aadcb81c53e72fc65886e964e9add59

Reference:
https://www.illumos.org/issues/4248
https://www.illumos.org/issues/4249

Obtained from: Illumos


# 264796 23-Apr-2014 markj

MFC r262596:
4478 dtrace_dof_maxsize is far too small

illumos/illumos-gate@d339a29bb4765c4b6883a935cf69b669cd05bca0


# 287230 27-Aug-2015 markj

MFC r286167:
Avoid dereferencing curthread->td_proc->p_cred in DTrace probe context.


# 284138 07-Jun-2015 pfg

MFC r278167, MFV r266995:

4767 dtrace_probe() always has the timestamp

Reference:
https://illumos.org/issues/4767

Obtained from: Illumos


# 284136 07-Jun-2015 pfg

MFC r278166, MFV r266993:

4469 DTrace helper tracing should be dynamic

Reference:
https://illumos.org/issues/4469

Obtained from: Illumos
Phabric: D1551
Reviewed by: markj


# 284134 07-Jun-2015 markj

MFC r278136, r278137, r278370:
Diff reduction with illumos, in preparation for merging r266993 from the
vendor branch. No functional change.


# 283676 29-May-2015 markj

MFC r281915:
Make vpanic() externally visible.

MFC r281916:
Fix DTrace's panic() action.


# 282748 11-May-2015 avg

MFC r275576: remove opensolaris cyclic code, replace with high-precision callouts


# 277547 22-Jan-2015 delphij

MFC r275562: MFV r275535:

Unexpand ISP2() and MSEC2NSEC().

Illumos issue:
5255 uts shouldn't open-code ISP2


# 273110 14-Oct-2014 pfg

MFC r267851:

Continue the crusade towards a dev_clone()-free kernel, removing its
usage from dtrace. The dtrace code already uses cdevpriv(9) since FreeBSD
8, so this change is quite harmless.

Originally by: davide
Reviewed by: markj


# 270294 21-Aug-2014 markj

MFC r269525:
Return 0 for the PPID of threads in process 0, as process 0 doesn't have a
parent process.


# 269520 04-Aug-2014 markj

MFC r256571:
Add a function, memstr, which can be used to convert a buffer of
null-separated strings to a single string. This can be used to print the
full arguments of a process using execsnoop (from the DTrace toolkit) or
with the following one-liner:

dtrace -n 'syscall::execve:return {trace(curpsinfo->pr_psargs);}'

Note that this relies on the process arguments being cached via the struct
proc, which means that it will not work for argvs longer than
kern.ps_arg_cache_limit. However, the following rather non-portable
script can be used to extract any argv at exec time:

fbt::kern_execve:entry
{
printf("%s", memstr(args[1]->begin_argv, ' ',
args[1]->begin_envv - args[1]->begin_argv));
}

The debug.dtrace.memstr_max sysctl limits the maximum argument size to
memstr().


# 268595 13-Jul-2014 pfg

MFC r268290:
Merge from OpenSolaris (24-Jul-2010):

6679140 asymmetric alloc/dealloc activity can induce dynamic variable drops
6679193 dtrace_dynvar walker produces flood of dtrace_dynhash_sink

This finishes a set of merges from the older OpenSolaris releases.
Still the FreeBSD port has many differences that are difficult to
account for but that seems normal given that the kernels are different.

Obtained from: OpenSolaris (through Illumos)


# 268578 12-Jul-2014 rpaulo

MFC 267929, 267937, 267939, 267940, 267941, 267942, 267987, 268006:

2915 DTrace in a zone should see "cpu", "curpsinfo", et al
2916 DTrace in a zone should be able to access fds[]
2917 DTrace in a zone should have limited provider access
4477 DTrace should speak JSON
Add stubs for CTF functions which are not yet implemented.
4474 DTrace Userland CTF Support
4475 DTrace userland Keyword
4476 DTrace tests should be better citizens
4479 pid provider types
4480 dof emulation is missing checks
4471 DTrace count() with histogram
4472 DTrace full width distribution histograms
4473 DTrace frequency trails


# 268572 12-Jul-2014 pfg

MFC r268130, r268224, r268230, r268231:

Various DTrace Merges from OpenSolaris/Illumos:

15-Sep-2008:
6735480 race between probe enabling and provider registration

20-Apr-2008:
6822482 DOF validation needs to handle loadable sections flagged as unloadable

22-Apr-2009:
6823388 DTrace ioctl handlers must validate all structure members

30-Jun-2009:
6851093 system drops to kmdb with anonymous dtrace probes + kmdb

Obtained from: OpenSolaris


# 268323 06-Jul-2014 pfg

MFC r268125:

Small merges from OpenSolaris:

These have no effect on FreeBSD, in fact they are ifdef'ed,
but make easier future merges:

6699767 panic in spec_open()

6718877 crgetzoneid() use can cause problems when forking processes with
USDT providers in a non global zone


# 266667 25-May-2014 markj

MFC r262329:
Define the KM_NORMALPRI flag for kmem_alloc(), as it is used in some
upstream DTrace code.

MFC r262330:
1452 DTrace buffer autoscaling should be less violent

illumos/illumos-gate@6fb4854bed54ce82bd8610896b64ddebcd4af706


# 266102 14-May-2014 markj

MFC r262665:
Expose a few DTrace parameters as sysctls under kern.dtrace and add
descriptions for several existing sysctls.

PR: 187027


# 265234 02-May-2014 pfg

MFC r264040:

4248 dtrace(1M) should never create DOF with empty probes section
4249 Only probes from the first DTrace object file will be included

Illumos Revision: 4a20ab41aadcb81c53e72fc65886e964e9add59

Reference:
https://www.illumos.org/issues/4248
https://www.illumos.org/issues/4249

Obtained from: Illumos


# 264796 23-Apr-2014 markj

MFC r262596:
4478 dtrace_dof_maxsize is far too small

illumos/illumos-gate@d339a29bb4765c4b6883a935cf69b669cd05bca0