summaryrefslogtreecommitdiffstats
path: root/usr.bin/netstat/mbuf.c
diff options
context:
space:
mode:
authormarkj <markj@FreeBSD.org>2016-01-07 07:21:37 +0000
committermarkj <markj@FreeBSD.org>2016-01-07 07:21:37 +0000
commit513e9b690f5bb0abdec4b77b4ab0de8385608740 (patch)
tree9d5b6667dd8dc576e2873ba33b97fbaf2f5a4ea1 /usr.bin/netstat/mbuf.c
parent7e512433ae5da8eb21b09cbeee9d63820e41199d (diff)
downloadFreeBSD-src-513e9b690f5bb0abdec4b77b4ab0de8385608740.zip
FreeBSD-src-513e9b690f5bb0abdec4b77b4ab0de8385608740.tar.gz
MFC r287649:
Use a common subroutine to fetch and zero protocol stats instead of duplicating roughly similar code for each protocol.
Diffstat (limited to 'usr.bin/netstat/mbuf.c')
-rw-r--r--usr.bin/netstat/mbuf.c33
1 files changed, 14 insertions, 19 deletions
diff --git a/usr.bin/netstat/mbuf.c b/usr.bin/netstat/mbuf.c
index ebd843f..74c2285 100644
--- a/usr.bin/netstat/mbuf.c
+++ b/usr.bin/netstat/mbuf.c
@@ -294,25 +294,20 @@ mbpr(void *kvmd, u_long mbaddr)
"(%juk/9k/16k)\n", jumbop_failures, jumbo9_failures,
jumbo16_failures, jumbop_size / 1024);
- if (live) {
- mlen = sizeof(nsfbufs);
- if (!sysctlbyname("kern.ipc.nsfbufs", &nsfbufs, &mlen, NULL,
- 0) &&
- !sysctlbyname("kern.ipc.nsfbufsused", &nsfbufsused,
- &mlen, NULL, 0) &&
- !sysctlbyname("kern.ipc.nsfbufspeak", &nsfbufspeak,
- &mlen, NULL, 0))
- printf("%d/%d/%d sfbufs in use (current/peak/max)\n",
- nsfbufsused, nsfbufspeak, nsfbufs);
- mlen = sizeof(sfstat);
- if (sysctlbyname("kern.ipc.sfstat", &sfstat, &mlen, NULL, 0)) {
- warn("kern.ipc.sfstat");
- goto out;
- }
- } else {
- if (kread_counters(mbaddr, (char *)&sfstat, sizeof sfstat) != 0)
- goto out;
- }
+ mlen = sizeof(nsfbufs);
+ if (live &&
+ sysctlbyname("kern.ipc.nsfbufs", &nsfbufs, &mlen, NULL, 0) == 0 &&
+ sysctlbyname("kern.ipc.nsfbufsused", &nsfbufsused, &mlen,
+ NULL, 0) == 0 &&
+ sysctlbyname("kern.ipc.nsfbufspeak", &nsfbufspeak, &mlen,
+ NULL, 0) == 0)
+ printf("%d/%d/%d sfbufs in use (current/peak/max)\n",
+ nsfbufsused, nsfbufspeak, nsfbufs);
+
+ if (fetch_stats("kern.ipc.sfstat", mbaddr, &sfstat, sizeof(sfstat),
+ kread_counters) != 0)
+ goto out;
+
printf("%ju requests for sfbufs denied\n",
(uintmax_t)sfstat.sf_allocfail);
printf("%ju requests for sfbufs delayed\n",
OpenPOWER on IntegriCloud