Stuart Henderson wrote:
This updates our symon port to the newer released version, and adds
a patch to support the mbuf cluster pool changes (removes the "symon:
mbuf() failed (flag != 3)" spammed to syslog every 5 seconds).
Ok? Or does anyone have a more elegant fix?
Minimal diff-fix:
- warning("mbuf(%.200s) failed (flag != 3)", st->arg);
+ warning("mbuf(%.200s) failed (flag != 255)", st->arg);
Complete diff follows.
/Alexander
Index: Makefile
===================================================================
RCS file: /store/openbsd/cvs/ports/sysutils/symon/Makefile,v
retrieving revision 1.33
diff -u -p -r1.33 Makefile
--- Makefile 17 Jan 2008 15:21:14 -0000 1.33
+++ Makefile 8 Mar 2009 19:20:00 -0000
@@ -1,7 +1,7 @@
# $OpenBSD: Makefile,v 1.33 2008/01/17 15:21:14 henning Exp $
COMMENT-main= active monitoring tool
-V= 2.78
+V= 2.79
DISTNAME= symon-${V}
PKGNAME-main= ${DISTNAME}
CATEGORIES= sysutils net
@@ -40,6 +40,6 @@ NO_REGRESS= Yes
WRKDIST= ${WRKDIR}/symon
SUBST_VARS= V
-MAKE_ENV= LIBS="-L${X11BASE}/lib"
+MAKE_ENV= LIBS="-L${X11BASE}/lib" MANDIR="man"
.include <bsd.port.mk>
Index: distinfo
===================================================================
RCS file: /store/openbsd/cvs/ports/sysutils/symon/distinfo,v
retrieving revision 1.20
diff -u -p -r1.20 distinfo
--- distinfo 17 Jan 2008 20:05:50 -0000 1.20
+++ distinfo 8 Mar 2009 19:20:00 -0000
@@ -1,5 +1,5 @@
-MD5 (symon-2.78.tar.gz) = RjbpJ3OgSm+0LjgY3VWkpA==
-RMD160 (symon-2.78.tar.gz) = QMphzmh3jeVNWhtUHWxkDdf7R5w=
-SHA1 (symon-2.78.tar.gz) = u+fytY4+0OQvOx2pfqQFHSwc7jQ=
-SHA256 (symon-2.78.tar.gz) = zaBziBVuZqZlxtU9yk/c4+IQ7mooxE5k0kBxWlcrOaw=
-SIZE (symon-2.78.tar.gz) = 102400
+MD5 (symon-2.79.tar.gz) = n/WDE8QgKUXOcxDgS/Osgg==
+RMD160 (symon-2.79.tar.gz) = aTt5jNbFZPTot5xiwXdvWwNqrxo=
+SHA1 (symon-2.79.tar.gz) = ohVm8ykbqqOYBr7DJVDVoooWMhM=
+SHA256 (symon-2.79.tar.gz) = cVewh7maWfOrqaAsN1+xtBHcQylGP3SNIyPDzfPQzYM=
+SIZE (symon-2.79.tar.gz) = 102400
Index: patches/patch-platform_OpenBSD_sm_mbuf_c
===================================================================
RCS file: patches/patch-platform_OpenBSD_sm_mbuf_c
diff -N patches/patch-platform_OpenBSD_sm_mbuf_c
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ patches/patch-platform_OpenBSD_sm_mbuf_c 8 Mar 2009 19:45:34 -0000
@@ -0,0 +1,75 @@
+$OpenBSD$
+--- platform/OpenBSD/sm_mbuf.c.orig Sun Feb 11 21:09:35 2007
++++ platform/OpenBSD/sm_mbuf.c Sun Mar 8 20:26:51 2009
+@@ -77,6 +77,8 @@ get_mbuf(char *symon_buf, int maxlen, struct stream *s
+ int totmem, totused, totmbufs, totpct;
+ u_int32_t stats[15];
+
++ totmem = totused = 0;
++
+ mib[0] = CTL_KERN;
+ mib[1] = KERN_MBSTAT;
+ size = sizeof(mbstat);
+@@ -114,24 +116,55 @@ get_mbuf(char *symon_buf, int maxlen, struct stream *s
+ if (!strcmp(name, "mbpl")) {
+ bcopy(&pool, &mbpool, sizeof(pool));
+ flag |= 1;
+- } else if (!strcmp(name, "mclpl")) {
++ } else if (!strcmp(name, "mcl2k")) {
+ bcopy(&pool, &mclpool, sizeof(pool));
++ totmem += mclpool.pr_npages * page_size;
++ totused += (mclpool.pr_nget - mclpool.pr_nput) * mclpool.pr_size;
+ flag |= 2;
++ } else if (!strcmp(name, "mcl4k")) {
++ bcopy(&pool, &mclpool, sizeof(pool));
++ totmem += mclpool.pr_npages * page_size;
++ totused += (mclpool.pr_nget - mclpool.pr_nput) * mclpool.pr_size;
++ flag |= 4;
++ } else if (!strcmp(name, "mcl8k")) {
++ bcopy(&pool, &mclpool, sizeof(pool));
++ totmem += mclpool.pr_npages * page_size;
++ totused += (mclpool.pr_nget - mclpool.pr_nput) * mclpool.pr_size;
++ flag |= 8;
++ } else if (!strcmp(name, "mcl9k")) {
++ bcopy(&pool, &mclpool, sizeof(pool));
++ totmem += mclpool.pr_npages * page_size;
++ totused += (mclpool.pr_nget - mclpool.pr_nput) * mclpool.pr_size;
++ flag |= 16;
++ } else if (!strcmp(name, "mcl12k")) {
++ bcopy(&pool, &mclpool, sizeof(pool));
++ totmem += mclpool.pr_npages * page_size;
++ totused += (mclpool.pr_nget - mclpool.pr_nput) * mclpool.pr_size;
++ flag |= 32;
++ } else if (!strcmp(name, "mcl16k")) {
++ bcopy(&pool, &mclpool, sizeof(pool));
++ totmem += mclpool.pr_npages * page_size;
++ totused += (mclpool.pr_nget - mclpool.pr_nput) * mclpool.pr_size;
++ flag |= 64;
++ } else if (!strcmp(name, "mcl64k")) {
++ bcopy(&pool, &mclpool, sizeof(pool));
++ totmem += mclpool.pr_npages * page_size;
++ totused += (mclpool.pr_nget - mclpool.pr_nput) * mclpool.pr_size;
++ flag |= 128;
+ }
+- if (flag == 3)
++ if (flag == 255)
+ break;
+ }
+- if (flag != 3) {
+- warning("mbuf(%.200s) failed (flag != 3)", st->arg);
++ if (flag != 255) {
++ warning("mbuf(%.200s) failed (flag != 255)", st->arg);
+ return 0;
+ }
+
+ totmbufs = 0;
+ for (i = 0; i < nmbtypes; ++i)
+ totmbufs += mbstat.m_mtypes[i];
+- totmem = (mbpool.pr_npages + mclpool.pr_npages) * page_size;
+- totused = (mbpool.pr_nget - mbpool.pr_nput) * mbpool.pr_size +
+- (mclpool.pr_nget - mclpool.pr_nput) * mclpool.pr_size;
++ totmem += mbpool.pr_npages * page_size;
++ totused += (mbpool.pr_nget - mbpool.pr_nput) * mbpool.pr_size;
+ totpct = (totmem == 0) ? 0 : ((totused * 100) / totmem);
+
+ stats[0] = totmbufs;
Index: pkg/PLIST-main
===================================================================
RCS file: /store/openbsd/cvs/ports/sysutils/symon/pkg/PLIST-main,v
retrieving revision 1.1
diff -u -p -r1.1 PLIST-main
--- pkg/PLIST-main 25 Nov 2006 08:41:04 -0000 1.1
+++ pkg/PLIST-main 8 Mar 2009 19:20:00 -0000
@@ -1,11 +1,11 @@
@comment $OpenBSD: PLIST-main,v 1.1 2006/11/25 08:41:04 steven Exp $
-...@pkgpath sysutils/symon
@conflict symon-mon-*
@conflict symon-mux-*
+...@pkgpath sysutils/symon
@newgroup _symon:535
@newuser _symon:535:_symon:daemon:symon Account:/var/empty:/sbin/nologin
-libexec/symon
-libexec/symux
+...@bin libexec/symon
+...@bin libexec/symux
@man man/man8/symon.8
@man man/man8/symux.8
share/examples/symon/
@@ -14,9 +14,9 @@ share/examples/symon/symon.conf
share/examples/symon/symux.conf
@sample ${SYSCONFDIR}/symux.conf
share/symon/
-share/symon/c_smrrds.sh
share/symon/c_config.sh
+share/symon/c_smrrds.sh
share/symon/client/
-share/symon/client/getsymonitem.pl
-share/symon/client/SymuxClient.pm
share/symon/client/SymuxClient.0
+share/symon/client/SymuxClient.pm
+share/symon/client/getsymonitem.pl
Index: pkg/PLIST-mon
===================================================================
RCS file: /store/openbsd/cvs/ports/sysutils/symon/pkg/PLIST-mon,v
retrieving revision 1.11
diff -u -p -r1.11 PLIST-mon
--- pkg/PLIST-mon 7 Aug 2005 14:24:45 -0000 1.11
+++ pkg/PLIST-mon 8 Mar 2009 19:20:00 -0000
@@ -2,7 +2,7 @@
@conflict symon-*
@newgroup _symon:535
@newuser _symon:535:_symon:daemon:symon Account:/var/empty:/sbin/nologin
-libexec/symon
+...@bin libexec/symon
@man man/man8/symon.8
share/examples/symon/
share/examples/symon/symon.conf
Index: pkg/PLIST-mux
===================================================================
RCS file: /store/openbsd/cvs/ports/sysutils/symon/pkg/PLIST-mux,v
retrieving revision 1.10
diff -u -p -r1.10 PLIST-mux
--- pkg/PLIST-mux 7 Aug 2005 14:24:45 -0000 1.10
+++ pkg/PLIST-mux 8 Mar 2009 19:20:00 -0000
@@ -1,6 +1,6 @@
@comment $OpenBSD: PLIST-mux,v 1.10 2005/08/07 14:24:45 sturm Exp $
@conflict symon-*
-libexec/symux
+...@bin libexec/symux
@man man/man8/symux.8
share/examples/symon/
share/examples/symon/symux.conf