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