PERFORCE change 166188 for review
Gabor Pali
pgj at FreeBSD.org
Fri Jul 17 01:41:55 UTC 2009
http://perforce.freebsd.org/chv.cgi?CH=166188
Change 166188 by pgj at petymeg-current on 2009/07/17 01:41:04
nettop:
- Add preliminary support for monitoring mbuf(9) statistics.
Affected files ...
.. //depot/projects/soc2009/pgj_libstat/src/usr.bin/nettop/main.c#10 edit
Differences ...
==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/nettop/main.c#10 (text+ko) ====
@@ -37,6 +37,7 @@
static void footer(void);
static void screen_local(void);
static void screen_inet(void);
+static void screen_mbuf(void);
int
main(int argc, char *argv[])
@@ -62,6 +63,10 @@
case 'i':
screen = screen_inet;
break;
+ case 'M':
+ case 'm':
+ screen = screen_mbuf;
+ break;
case 'Q':
case 'q':
running = 0;
@@ -96,7 +101,7 @@
footer(void)
{
attron(A_STANDOUT);
- mvprintw(24, 0, " Q - Quit, L - PF_LOCAL, I - PF_INET ");
+ mvprintw(24, 0, " Q - Quit, L - PF_LOCAL, I - PF_INET, M - MBUF ");
attroff(A_STANDOUT);
}
@@ -181,3 +186,78 @@
netstat_sti_free(stip);
netstat_stl_free(list);
}
+
+void
+screen_mbuf(void)
+{
+ struct mbuf_type *stats;
+ const struct buffer_type *mbuf, *cluster, *packet, *jumbop, *jumbo9,
+ *jumbo16;
+ int row, mbt_flags;
+
+ const char *hfmt = "%-32.32s %-8.8s %-8.8s %-8.8s %-8.8s";
+ const char *fmt2 = "%-32s %-8d %-8d";
+ const char *fmt3 = "%-32s %-8d %-8d %-8d";
+ const char *fmt3x = "%-32s %-8d %-8d %-8d";
+ const char *fmt4 = "%-32s %-8d %-8d %-8d %-8d";
+
+ mbt_flags = 0;
+ stats = netstat_mbt_alloc();
+ netstat_mbuf(stats, mbt_flags, NULL);
+
+ mbuf = netstat_mbt_get_mbuf(stats);
+ cluster = netstat_mbt_get_cluster(stats);
+ packet = netstat_mbt_get_packet(stats);
+ jumbop = netstat_mbt_get_jumbop(stats);
+ jumbo9 = netstat_mbt_get_jumbo9(stats);
+ jumbo16 = netstat_mbt_get_jumbo16(stats);
+
+ attron(A_BOLD);
+ mvprintw(2, 0, "Network memory buffers");
+ mvprintw(3, 0, hfmt, "Value", "Current", "Cache", "Total", "Max");
+ attroff(A_BOLD);
+
+ row = 4;
+
+ mvprintw(row++, 0, fmt3, "mbufs in use",
+ netstat_bt_get_count(mbuf) + netstat_bt_get_count(packet),
+ netstat_bt_get_free(mbuf) + netstat_bt_get_free(packet),
+ netstat_bt_get_count(mbuf) + netstat_bt_get_count(packet) +
+ netstat_bt_get_free(mbuf) + netstat_bt_get_free(packet));
+
+ mvprintw(row++, 0, fmt4, "mbuf clusters in use",
+ netstat_bt_get_count(cluster) - netstat_bt_get_free(packet),
+ netstat_bt_get_free(cluster) + netstat_bt_get_free(packet),
+ netstat_bt_get_count(cluster) + netstat_bt_get_free(cluster),
+ netstat_bt_get_limit(cluster));
+
+ mvprintw(row++, 0, fmt2, "mbuf+clusters in use",
+ netstat_bt_get_count(packet), netstat_bt_get_free(packet));
+
+ mvprintw(row++, 0, fmt4, "4k jumbo clusters in use",
+ netstat_bt_get_count(jumbop), netstat_bt_get_free(jumbop),
+ netstat_bt_get_count(jumbop) + netstat_bt_get_free(jumbop),
+ netstat_bt_get_limit(jumbop), netstat_bt_get_size(jumbop) / 1024);
+
+ mvprintw(row++, 0, fmt4, "9k jumbo clusters in use",
+ netstat_bt_get_count(jumbo9), netstat_bt_get_free(jumbo9),
+ netstat_bt_get_count(jumbo9) + netstat_bt_get_free(jumbo9),
+ netstat_bt_get_limit(jumbo9), netstat_bt_get_size(jumbo9) / 1024);
+
+ mvprintw(row++, 0, fmt4, "16k jumbo clusters in use",
+ netstat_bt_get_count(jumbo16), netstat_bt_get_free(jumbo16),
+ netstat_bt_get_count(jumbo16) + netstat_bt_get_free(jumbo16),
+ netstat_bt_get_limit(jumbo16), netstat_bt_get_size(jumbo16) / 1024);
+
+ mvprintw(row++, 0, fmt3x, "sfbufs in use",
+ netstat_mbt_get_sf_bufs_inuse(stats),
+ netstat_mbt_get_sf_bufs(stats),
+ netstat_mbt_get_sf_bufs_peak(stats));
+
+ mvprintw(row++, 0, fmt3, "KBs allocated to network",
+ netstat_mbt_get_bytes_inuse(stats) / 1024,
+ netstat_mbt_get_bytes_incache(stats) / 1024,
+ netstat_mbt_get_bytes_total(stats) / 1024);
+
+ netstat_mbt_free(stats);
+}
More information about the p4-projects
mailing list