From nobody Mon Feb 27 15:03:43 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4PQNzz6CmGz3vD4n; Mon, 27 Feb 2023 15:03:43 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4PQNzz5kJBz3KvD; Mon, 27 Feb 2023 15:03:43 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1677510223; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=R5xrnrNw0/EkWK910uIIXGzselM8niCacxqNAAC3UA0=; b=BeeyPej9Vq7NYHdUbYHL2k/9Qpa5i0B5jevgPHIa/WbbGfG4sIovjx/0V6EphwuqFS7JMv /8rMaNak2wgzSYJWwQGAYnk1h0VyKub27jGZYkcTxUd2LoJ2FsNVnLqevS/TSbNy4UhJ4j Jr4jgw8LfrO2HKInoq6rIN6x5oBJBKLWcdIyO0q6UsPZMm+v+yUkjoAJcvh1+tpdrvc9NH eDnIWL1lHkNEW0PGnJ3qW30zmSDWLFk0w6eJE6cB6RkGIiVIga1MMHsvsXyy4tGmqpvNau zPValDrBYFl6FeD06gLcQAnPmZQhD6b3QKFod2n29UiBGtdfAz51L6AqeE6qwg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1677510223; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=R5xrnrNw0/EkWK910uIIXGzselM8niCacxqNAAC3UA0=; b=Jzt+YUCpi9Low8BMXebAe94N6SjPJpY2VOUEmsmQG8wOevmUJLhEa6U5zuSs9cMgkRBfsJ /USPtnrX+iNcbB7LykmtKTHAr2+wJi+2AFEdrEIHUyduyxTLJmpIUwPN2XqW6KqlF0fzo7 C1diOK6bXQPCs07c5MNKxsgCJc1Pgt53/gCDjVYbYbKiL8IgYNVzl3slkv2/04Gv1CqeaI MTfNpAeGe/LhSH63L3azLFe6prXOztqke4UNUS9lefXAnoSNNcp6QMocY2EiXI1mBYjXwy nXDqUxipS4wBb+e9EgjEeWsU+To8kqua57gvqJrsV4JQ9qzjPMzz7wvm0x7kdg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1677510223; a=rsa-sha256; cv=none; b=cSu8hWJD5W0lqii/xyBwuiKacmipb8JO7Y96iVaHAGvbnHdzP4WpmAD/Ni62RjQjpasVdn GXQiTQO/sd9GkdbFfLlrs6JUZsYGvLh39Sih6Wr8fTMzYPh5Nx0P3umf6oc/JLaDp75KdK Ef4efmEq+egSY9YvCUvXGghzKv+WBbCT/Nlo1m26LCTT5ALUkT5X4uj047LvnBBFBnCTT6 WV7vQQZ60vaaBBf9+l/CF2YunDcvkr0ZBustdG3dY9lj8eAgBlNhWdvWJWB4GgdtMguSTo eMRLU2AFSw81s/x+voh8uvAx+uQuAxmxcrZPLmdGCfF7wHghjoC4YMFIgyVEZA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4PQNzz4pxpzVyq; Mon, 27 Feb 2023 15:03:43 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 31RF3htx019974; Mon, 27 Feb 2023 15:03:43 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 31RF3hDa019973; Mon, 27 Feb 2023 15:03:43 GMT (envelope-from git) Date: Mon, 27 Feb 2023 15:03:43 GMT Message-Id: <202302271503.31RF3hDa019973@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mark Johnston Subject: git: 2d71406a6ff3 - main - dtrace_kinst.4: mention dtrace -l -P kinst, give a more complete example List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: markj X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 2d71406a6ff31b2b8873c236d7b2b1186e2bffb4 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=2d71406a6ff31b2b8873c236d7b2b1186e2bffb4 commit 2d71406a6ff31b2b8873c236d7b2b1186e2bffb4 Author: Christos Margiolis AuthorDate: 2023-02-27 14:44:13 +0000 Commit: Mark Johnston CommitDate: 2023-02-27 15:03:10 +0000 dtrace_kinst.4: mention dtrace -l -P kinst, give a more complete example Reviewed by: markj Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D38801 --- share/man/man4/dtrace_kinst.4 | 32 ++++++++++++++++++-------------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/share/man/man4/dtrace_kinst.4 b/share/man/man4/dtrace_kinst.4 index 48253add6855..0987ba493e55 100644 --- a/share/man/man4/dtrace_kinst.4 +++ b/share/man/man4/dtrace_kinst.4 @@ -24,37 +24,38 @@ .\" .\" $FreeBSD$ .\" -.Dd October 01, 2022 +.Dd February 27, 2023 .Dt DTRACE_KINST 4 .Os .Sh NAME .Nm dtrace_kinst -.Nd a DTrace provider for tracing arbitrary instructions in a given kernel -function. +.Nd a DTrace provider for tracing arbitrary instructions in a given kernel function .Sh SYNOPSIS kinst::: .Sh DESCRIPTION -.Pp The DTrace .Nm kinst provider allows the user to trace any instruction in a given kernel function. corresponds to the function to be traced, and is the offset to the specific instruction, and can be obtained from the function's -disassembly using -.Xr kgdb 1 . +disassembly using kgdb from the gdb package. .Pp .Nm kinst creates probes on-demand, meaning it searches for and parses the function's instructions each time .Xr dtrace 1 -is run, and not at module load time. This is in contrast to FBT's load-time -parsing, since +is run, and not at module load time. +This is in contrast to FBT's load-time parsing, since .Nm kinst can potentially create thousands of probes for just a single function, instead of up to two (entry and return) in the case of FBT. +A result of this is that +.Cm dtrace -l -P kinst +will not match any probes. +.Sh IMPLEMENTATION NOTES +The provider is currently implemented only for amd64. .Sh EXAMPLES -.Pp -Find the offset to the third instruction in +Find the offset corresponding to the third instruction in .Fn vm_fault and trace it: .Bd -literal -offset indent @@ -66,6 +67,12 @@ Dump of assembler code for function vm_fault: 0xffffffff80876df4 <+4>: 41 57 push %r15 # dtrace -n 'kinst::vm_fault:4' + 2 81500 vm_fault:4 + 2 81500 vm_fault:4 + 2 81500 vm_fault:4 + 2 81500 vm_fault:4 + 0 81500 vm_fault:4 + ... .Ed .Pp Trace all instructions in @@ -73,11 +80,8 @@ Trace all instructions in .Bd -literal -offset indent # dtrace -n 'kinst::amd64_syscall:' .Ed -.Sh IMPLEMENTATION NOTES -The provider is currently implemented only for amd64. .Sh SEE ALSO -.Xr dtrace 1 , -.Xr kgdb 1 +.Xr dtrace 1 .Sh HISTORY The .Nm kinst