From nobody Tue Feb 11 18:23:53 2025 X-Original-To: dev-commits-src-main@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 4YsqZx5shgz5mTkP; Tue, 11 Feb 2025 18:23:53 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4YsqZx43Zdz3mVf; Tue, 11 Feb 2025 18:23:53 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1739298233; 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=KjlWAX42yg0HTpwWErvUPHB4mkc/v+K27r0FuanJlRE=; b=QrvyMet5JSs67CjcJ8sJUBMQeMD5iA+4ZwLbIASRgOFwyMyprN5Bg/pPka1vNWHiCK1Ubm 0FyOdDbrJi7GPQTXC1YQvg3gWEquVeMppeZyzeLYIBkeZmM6X/w2caOnQafSbsA+lJVKa5 wD4yOXpeU+RXMYouED9tJ0NPFWxK35aqmsK7WfOUwAcZUHXKVuweFjuKdk1l9rDObj80vm TQo/f4IRbDfx0Sh/TNXwZ7IksVAfT46lSOnzZj3ZKpl/AP6etYvGKb5CE6G+UWPHsubL+M DNGyv6/O2U3+2RKZrco+xBb7KlRS1Lfz2L0uAuuw0hKZHvdK03Ca+EkX8F92UA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1739298233; 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=KjlWAX42yg0HTpwWErvUPHB4mkc/v+K27r0FuanJlRE=; b=Dr67kQIHW0ke9p9sDb/HqBXoBISKR8RGuyEgqpbPnNpO5DrXKcHzEue9LFfgmUgGGiFwB0 3F/9VBgjrHnT4GxJb8h9IoftcjsF8IJF+pcdoLVQQ4x4EJfrm4Aome73gHlwVmtFxas8tB qZ/AYI4GMTRcQP8TNo59H6TUc4O7JOc86rk6x6xUvtmXDDSt31WkkxY77dL3bxmf6MLKRv JPrzr7qc2yFwLcdc3oMd4GFrlHxcEDplmqAjnzR6hAkuM/KH1aSfZ8q9UkOv/+HhE8tsWl OMl55DxCwRiF5++h+cZhbuI8HEKyxZxWXXmUN0jvfZVmeFUAzGfAVdCUOaxOqg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1739298233; a=rsa-sha256; cv=none; b=RHaDMc3NIY5ve8ZuhegxUHaiCUe71c5cIzX2uentpH2IzZx9ne9ViXZYGcX7JLKupz6Zlw Eff3vVS+TZ3iLrDQYYq0F0BJWF9cL7OuCXiLzqUUnLVJj0OTIGb9Hqz0NKNIwsFylgq/e0 +MeEcVw6H8idJsaCE51bV0QKoFhqhFqU9KpbsLJND08qda782S0rNbAkBfgi3DzHuKboJ9 z8fZgAWgz1vJQdMLz1x5nWJrfEmJLvEtZr810yImtyVko2NZNCV4qx+SHvPElDsP6zI0aX smL8Ze7HtNrbvC9FlpMfgdpz1N5Ew1FbU7/2QGMs0Jq8bgb3d80rCUjPF/iLKA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4YsqZx3fknz8WT; Tue, 11 Feb 2025 18:23:53 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 51BINr1F027271; Tue, 11 Feb 2025 18:23:53 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 51BINrMw027268; Tue, 11 Feb 2025 18:23:53 GMT (envelope-from git) Date: Tue, 11 Feb 2025 18:23:53 GMT Message-Id: <202502111823.51BINrMw027268@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Gleb Smirnoff Subject: git: 9f55128fecb5 - main - sockstat: with -A print pcb addresses, just like netstat(1) List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: glebius X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 9f55128fecb5b5eb8e8fffa5b65d38255762d176 Auto-Submitted: auto-generated The branch main has been updated by glebius: URL: https://cgit.FreeBSD.org/src/commit/?id=9f55128fecb5b5eb8e8fffa5b65d38255762d176 commit 9f55128fecb5b5eb8e8fffa5b65d38255762d176 Author: Gleb Smirnoff AuthorDate: 2025-02-11 18:23:15 +0000 Commit: Gleb Smirnoff CommitDate: 2025-02-11 18:23:15 +0000 sockstat: with -A print pcb addresses, just like netstat(1) --- usr.bin/sockstat/sockstat.1 | 7 +++++-- usr.bin/sockstat/sockstat.c | 20 +++++++++++++++----- 2 files changed, 20 insertions(+), 7 deletions(-) diff --git a/usr.bin/sockstat/sockstat.1 b/usr.bin/sockstat/sockstat.1 index ca486a088b13..b13c6afdd9c0 100644 --- a/usr.bin/sockstat/sockstat.1 +++ b/usr.bin/sockstat/sockstat.1 @@ -25,7 +25,7 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.Dd October 15, 2024 +.Dd February 6, 2025 .Dt SOCKSTAT 1 .Os .Sh NAME @@ -33,7 +33,7 @@ .Nd list open sockets .Sh SYNOPSIS .Nm -.Op Fl 46CcfIiLlnqSsUuvw +.Op Fl 46ACcfIiLlnqSsUuvw .Op Fl j Ar jail .Op Fl p Ar ports .Op Fl P Ar protocols @@ -54,6 +54,9 @@ Show Show .Dv AF_INET6 (IPv6) sockets. +.It Fl A +Show the address of a protocol control block (PCB) associated with a socket; +used for debugging. .It Fl C Display the congestion control module, if applicable. This is currently only implemented for TCP. diff --git a/usr.bin/sockstat/sockstat.c b/usr.bin/sockstat/sockstat.c index 6283f600b322..e1a52c57b3d1 100644 --- a/usr.bin/sockstat/sockstat.c +++ b/usr.bin/sockstat/sockstat.c @@ -81,6 +81,7 @@ static bool opt_4; /* Show IPv4 sockets */ static bool opt_6; /* Show IPv6 sockets */ +static bool opt_A; /* Show kernel address of pcb */ static bool opt_C; /* Show congestion control */ static bool opt_c; /* Show connected sockets */ static bool opt_f; /* Show FIB numbers */ @@ -771,6 +772,7 @@ gather_inet(int proto) if ((faddr = calloc(1, sizeof *faddr)) == NULL) err(1, "malloc()"); sock->socket = so->xso_so; + sock->pcb = so->so_pcb; sock->splice_socket = so->so_splice_so; sock->proto = proto; sock->inp_gencnt = xip->inp_gencnt; @@ -1206,10 +1208,13 @@ displaysock(struct sock *s, int pos) default: abort(); } + while (pos < offset) + pos += xprintf(" "); + if (opt_A) { + pos += xprintf("0x%16lx", s->pcb); + offset += 18; + } if (opt_f) { - do - pos += xprintf(" "); - while (pos < offset); pos += xprintf("%d", s->fibnum); offset += 7; } @@ -1346,6 +1351,8 @@ display(void) "USER", "COMMAND", "PID", "FD", "PROTO", opt_w ? 45 : 21, "LOCAL ADDRESS", opt_w ? 45 : 21, "FOREIGN ADDRESS"); + if (opt_A) + printf(" %-18s", "PCB KVA"); if (opt_f) /* RT_MAXFIBS is 65535. */ printf(" %-6s", "FIB"); @@ -1477,7 +1484,7 @@ static void usage(void) { errx(1, - "usage: sockstat [-46CcfIiLlnqSsUuvw] [-j jid] [-p ports] [-P protocols]"); + "usage: sockstat [-46ACcfIiLlnqSsUuvw] [-j jid] [-p ports] [-P protocols]"); } int @@ -1491,7 +1498,7 @@ main(int argc, char *argv[]) int o, i; opt_j = -1; - while ((o = getopt(argc, argv, "46CcfIij:Llnp:P:qSsUuvw")) != -1) + while ((o = getopt(argc, argv, "46ACcfIij:Llnp:P:qSsUuvw")) != -1) switch (o) { case '4': opt_4 = true; @@ -1499,6 +1506,9 @@ main(int argc, char *argv[]) case '6': opt_6 = true; break; + case 'A': + opt_A = true; + break; case 'C': opt_C = true; break;