- if (read(kmem, &mbstat, sizeof (mbstat)) == sizeof (mbstat))
- printf(
- " mbufs %d mbfree %d clusters %d clfree %d drops %d\n",
- mbstat.m_mbufs, mbstat.m_mbfree,
- mbstat.m_clusters, mbstat.m_clfree, mbstat.m_drops);
+ if (read(kmem, &mbstat, sizeof (mbstat)) != sizeof (mbstat)) {
+ printf("mbstat: bad read\n");
+ return;
+ }
+ printf("\t%d/%d mbufs in use\n", mbstat.m_mbufs - mbstat.m_mbfree,
+ mbstat.m_mbufs);
+ printf("\t%d/%d mapped pages in use\n",
+ mbstat.m_clusters - mbstat.m_clfree, mbstat.m_clusters);
+ printf("\t%d requests for memory denied\n", mbstat.m_drops);
+ totmem = mbstat.m_mbufs * MSIZE + mbstat.m_clusters * CLBYTES;
+ totfree = mbstat.m_mbfree * MSIZE + mbstat.m_clusters * CLBYTES;
+ printf("\t%dKbytes allocated to network (%d%% in use)\n",
+ totmem / 1024,
+ (totmem - totfree + totmem - 1) / totmem);