Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 21 Mar 2017 11:50:04 -0700
From:      Gleb Smirnoff <glebius@FreeBSD.org>
To:        John Baldwin <jhb@freebsd.org>
Cc:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   Re: svn commit: r315662 - in head: contrib/bsnmp/snmp_mibII contrib/ipfilter/ipsend lib/libprocstat sys/netinet sys/sys usr.bin/netstat usr.bin/sockstat usr.bin/systat usr.sbin/tcpdrop usr.sbin/trpt
Message-ID:  <20170321185004.GW23308@FreeBSD.org>
In-Reply-To: <1782817.djIc6TfI1t@ralph.baldwin.cx>
References:  <201703210639.v2L6dnRf055522@repo.freebsd.org> <1782817.djIc6TfI1t@ralph.baldwin.cx>

next in thread | previous in thread | raw e-mail | index | archive | help
  John,

On Tue, Mar 21, 2017 at 10:40:34AM -0700, John Baldwin wrote:
J> First, this is a very good change and long overdue in divorcing the
J> user-facing structure for live system reporting vs the kernel structure.
J> 
J> However, I realize you don't use info from netstat when debugging kernel
J> crash dumps, but other people _do_.  It's ok if the kvm bits of netstat
J> require a matching kernel and thus require recompiling everytime the ABI
J> changes, but it is useful to have them.  Please restore those.

I have very much anticipated this comment from you, John.

I would like to remind you, that we have had this very exact conversation
back when I removed kvm support from netstat/route.c. Let me search the
archives:

https://lists.freebsd.org/pipermail/svn-src-head/2015-April/070480.html

This conversation has had a continuation on IRC, which I don't archive.

AFAIR, first I told that with all my involvement into networking stack,
I never ever had experienced a need to run route stats on a core. The
debugger were the only useful tool. And that opinion was seconded by
other network hackers. Then we discussed that a proper tool chould use
dynamic type parsing and not kvm(3). You said that future gdb has python
scripting and that would work fine. Meanwhile, you insisted that I restore
the functionality. I resisted to put kvm(3) back into netstat/route.c, and
instead I created a gdb script that prints exactly what 'nestat -anr -M core'
prints. And I committed the script just to satisfy your demand:

tools/debugscripts/netstat-anr.gdb

Can you please fairly answer, have you (or anyone else) ever used the
script during these 2 years?

I believe, the inpcb/tcpcb printing from a core functionality has the
same level of real usefulness. I could create the same script for pcbs,
and I am afraid it is going to share fate of netstat-anr.gdb.

Today, I can actually bring yet another point on kvm(3) in netstat,
which I didn't bring in 2015. Now netstat is dependent on libxo, which
has a lot of complex things in it and was never reviewed wrt security
implications. Now netstat has only one last bit of kvm functionality
remaining - UNIX pcbs printing, which also has close to zero level
of usefulness. Once we remove it, we can remove setgid bit and kmem
access from /usr/bin/netstat and sleep better.

-- 
Totus tuus, Glebius.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20170321185004.GW23308>