Nuke "systat -mbuf". It was broken since FreeBSD 5, and since there
haven't been any complaints, no one used it.
This commit is contained in:
parent
60f83c2b99
commit
270169f28a
@ -5,7 +5,7 @@
|
||||
|
||||
PROG= systat
|
||||
SRCS= cmds.c cmdtab.c devs.c fetch.c iostat.c keyboard.c main.c \
|
||||
mbufs.c netcmds.c netstat.c pigs.c swap.c icmp.c \
|
||||
netcmds.c netstat.c pigs.c swap.c icmp.c \
|
||||
mode.c ip.c tcp.c \
|
||||
vmstat.c convtbl.c ifcmds.c ifstat.c
|
||||
|
||||
|
@ -46,9 +46,6 @@ struct cmdtab cmdtab[] = {
|
||||
{ "swap", showswap, fetchswap, labelswap,
|
||||
initswap, openswap, closeswap, 0,
|
||||
0, CF_LOADAV },
|
||||
{ "mbufs", showmbufs, fetchmbufs, labelmbufs,
|
||||
initmbufs, openmbufs, closembufs, 0,
|
||||
0, CF_LOADAV },
|
||||
{ "iostat", showiostat, fetchiostat, labeliostat,
|
||||
initiostat, openiostat, closeiostat, cmdiostat,
|
||||
0, CF_LOADAV },
|
||||
|
@ -76,7 +76,6 @@ void closeiostat(WINDOW *);
|
||||
void closeip(WINDOW *);
|
||||
void closeip6(WINDOW *);
|
||||
void closekre(WINDOW *);
|
||||
void closembufs(WINDOW *);
|
||||
void closenetstat(WINDOW *);
|
||||
void closepigs(WINDOW *);
|
||||
void closeswap(WINDOW *);
|
||||
@ -99,7 +98,6 @@ void fetchip(void);
|
||||
void fetchip6(void);
|
||||
void fetchiostat(void);
|
||||
void fetchkre(void);
|
||||
void fetchmbufs(void);
|
||||
void fetchnetstat(void);
|
||||
void fetchpigs(void);
|
||||
void fetchswap(void);
|
||||
@ -113,7 +111,6 @@ int initip(void);
|
||||
int initip6(void);
|
||||
int initiostat(void);
|
||||
int initkre(void);
|
||||
int initmbufs(void);
|
||||
int initnetstat(void);
|
||||
int initpigs(void);
|
||||
int initswap(void);
|
||||
@ -127,7 +124,6 @@ void labelip(void);
|
||||
void labelip6(void);
|
||||
void labeliostat(void);
|
||||
void labelkre(void);
|
||||
void labelmbufs(void);
|
||||
void labelnetstat(void);
|
||||
void labelpigs(void);
|
||||
void labels(void);
|
||||
@ -143,7 +139,6 @@ WINDOW *openip(void);
|
||||
WINDOW *openip6(void);
|
||||
WINDOW *openiostat(void);
|
||||
WINDOW *openkre(void);
|
||||
WINDOW *openmbufs(void);
|
||||
WINDOW *opennetstat(void);
|
||||
WINDOW *openpigs(void);
|
||||
WINDOW *openswap(void);
|
||||
@ -161,7 +156,6 @@ void showip(void);
|
||||
void showip6(void);
|
||||
void showiostat(void);
|
||||
void showkre(void);
|
||||
void showmbufs(void);
|
||||
void shownetstat(void);
|
||||
void showpigs(void);
|
||||
void showswap(void);
|
||||
|
@ -1,193 +0,0 @@
|
||||
/*-
|
||||
* Copyright (c) 1980, 1992, 1993
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 4. Neither the name of the University nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
|
||||
__FBSDID("$FreeBSD$");
|
||||
|
||||
#ifdef lint
|
||||
static const char sccsid[] = "@(#)mbufs.c 8.1 (Berkeley) 6/6/93";
|
||||
#endif
|
||||
|
||||
#include <sys/param.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/mbuf.h>
|
||||
#include <sys/sysctl.h>
|
||||
|
||||
#include <errno.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <paths.h>
|
||||
|
||||
#include "systat.h"
|
||||
#include "extern.h"
|
||||
|
||||
static struct mbstat *mbstat;
|
||||
static long *m_mbtypes;
|
||||
static short nmbtypes;
|
||||
|
||||
static struct mtnames {
|
||||
short mt_type;
|
||||
const char *mt_name;
|
||||
} mtnames[] = {
|
||||
{ MT_DATA, "data"},
|
||||
{ MT_HEADER, "headers"},
|
||||
{ MT_SONAME, "socknames"},
|
||||
{ MT_CONTROL, "control"},
|
||||
{ MT_OOBDATA, "oobdata"}
|
||||
};
|
||||
#define NNAMES (sizeof (mtnames) / sizeof (mtnames[0]))
|
||||
|
||||
WINDOW *
|
||||
openmbufs(void)
|
||||
{
|
||||
return (subwin(stdscr, LINES-3-1, 0, MAINWIN_ROW, 0));
|
||||
}
|
||||
|
||||
void
|
||||
closembufs(WINDOW *w)
|
||||
{
|
||||
if (w == NULL)
|
||||
return;
|
||||
wclear(w);
|
||||
wrefresh(w);
|
||||
delwin(w);
|
||||
}
|
||||
|
||||
void
|
||||
labelmbufs(void)
|
||||
{
|
||||
wmove(wnd, 0, 0); wclrtoeol(wnd);
|
||||
mvwaddstr(wnd, 0, 10,
|
||||
"/0 /5 /10 /15 /20 /25 /30 /35 /40 /45 /50 /55 /60");
|
||||
}
|
||||
|
||||
void
|
||||
showmbufs(void)
|
||||
{
|
||||
int i, j, max, idx;
|
||||
u_long totmbufs;
|
||||
char buf[10];
|
||||
const char *mtname;
|
||||
|
||||
totmbufs = mbstat->m_mbufs;
|
||||
|
||||
/*
|
||||
* Print totals for different mbuf types.
|
||||
*/
|
||||
for (j = 0; j < wnd->_maxy; j++) {
|
||||
max = 0, idx = -1;
|
||||
for (i = 0; i < wnd->_maxy; i++) {
|
||||
if (i == MT_NOTMBUF)
|
||||
continue;
|
||||
if (i >= nmbtypes)
|
||||
break;
|
||||
if (m_mbtypes[i] > max) {
|
||||
max = m_mbtypes[i];
|
||||
idx = i;
|
||||
}
|
||||
}
|
||||
if (max == 0)
|
||||
break;
|
||||
|
||||
mtname = NULL;
|
||||
for (i = 0; i < (int)NNAMES; i++)
|
||||
if (mtnames[i].mt_type == idx)
|
||||
mtname = mtnames[i].mt_name;
|
||||
if (mtname == NULL)
|
||||
mvwprintw(wnd, 1+j, 0, "%10d", idx);
|
||||
else
|
||||
mvwprintw(wnd, 1+j, 0, "%-10.10s", mtname);
|
||||
wmove(wnd, 1 + j, 10);
|
||||
if (max > 60) {
|
||||
snprintf(buf, sizeof(buf), " %d", max);
|
||||
max = 60;
|
||||
while (max--)
|
||||
waddch(wnd, 'X');
|
||||
waddstr(wnd, buf);
|
||||
} else
|
||||
while (max--)
|
||||
waddch(wnd, 'X');
|
||||
wclrtoeol(wnd);
|
||||
m_mbtypes[idx] = 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* Print total number of free mbufs.
|
||||
*/
|
||||
if (totmbufs > 0) {
|
||||
mvwprintw(wnd, 1+j, 0, "%-10.10s", "Mbufs");
|
||||
if (totmbufs > 60) {
|
||||
snprintf(buf, sizeof(buf), " %lu", totmbufs);
|
||||
totmbufs = 60;
|
||||
while(totmbufs--)
|
||||
waddch(wnd, 'X');
|
||||
waddstr(wnd, buf);
|
||||
} else {
|
||||
while(totmbufs--)
|
||||
waddch(wnd, 'X');
|
||||
}
|
||||
wclrtoeol(wnd);
|
||||
j++;
|
||||
}
|
||||
wmove(wnd, 1+j, 0); wclrtobot(wnd);
|
||||
}
|
||||
|
||||
int
|
||||
initmbufs(void)
|
||||
{
|
||||
size_t len;
|
||||
|
||||
len = sizeof *mbstat;
|
||||
if ((mbstat = malloc(len)) == NULL) {
|
||||
error("malloc mbstat failed");
|
||||
return 0;
|
||||
}
|
||||
if (sysctlbyname("kern.ipc.mbstat", mbstat, &len, NULL, 0) < 0) {
|
||||
error("sysctl retrieving mbstat");
|
||||
return 0;
|
||||
}
|
||||
nmbtypes = mbstat->m_numtypes;
|
||||
if ((m_mbtypes = calloc(nmbtypes, sizeof(long *))) == NULL) {
|
||||
error("calloc m_mbtypes failed");
|
||||
return 0;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
void
|
||||
fetchmbufs(void)
|
||||
{
|
||||
size_t len;
|
||||
|
||||
len = sizeof *mbstat;
|
||||
if (sysctlbyname("kern.ipc.mbstat", mbstat, &len, NULL, 0) < 0)
|
||||
printw("sysctl: mbstat: %s", strerror(errno));
|
||||
}
|
@ -28,7 +28,7 @@
|
||||
.\" @(#)systat.1 8.2 (Berkeley) 12/30/93
|
||||
.\" $FreeBSD$
|
||||
.\"
|
||||
.Dd February 20, 2013
|
||||
.Dd July 15, 2013
|
||||
.Dt SYSTAT 1
|
||||
.Os
|
||||
.Sh NAME
|
||||
@ -67,7 +67,6 @@ statistics (a la
|
||||
.Xr iostat 8 ) ,
|
||||
virtual memory statistics (a la
|
||||
.Xr vmstat 8 ) ,
|
||||
network ``mbuf'' utilization,
|
||||
.Tn TCP/IP
|
||||
statistics,
|
||||
and network connections (a la
|
||||
@ -94,7 +93,6 @@ to be one of:
|
||||
.Ic iostat ,
|
||||
.Ic ip ,
|
||||
.Ic ip6 ,
|
||||
.Ic mbufs ,
|
||||
.Ic netstat ,
|
||||
.Ic pigs ,
|
||||
.Ic swap ,
|
||||
@ -280,9 +278,6 @@ the graph shows the percentage of space in use on each partition.
|
||||
If there are more than one swap partition in use,
|
||||
a total line is also shown.
|
||||
Areas known to the kernel, but not in use are shown as not available.
|
||||
.It Ic mbufs
|
||||
Display, in the lower window, the number of mbufs allocated
|
||||
for particular uses, i.e., data, socket structures, etc.
|
||||
.It Ic vmstat
|
||||
Take over the entire display and show a (rather crowded) compendium
|
||||
of statistics related to virtual memory usage, process scheduling,
|
||||
|
Loading…
Reference in New Issue
Block a user