git: 152db36446b9 - main - sysutils/blockio: New port: Display block device activity as a map of the address space

From: Jimmy Olgeni <olgeni_at_FreeBSD.org>
Date: Fri, 04 Sep 2026 14:09:44 UTC
The branch main has been updated by olgeni:

URL: https://cgit.FreeBSD.org/ports/commit/?id=152db36446b93e2ffdd668877fcc711de0a11097

commit 152db36446b93e2ffdd668877fcc711de0a11097
Author:     Jimmy Olgeni <olgeni@FreeBSD.org>
AuthorDate: 2026-09-04 13:02:14 +0000
Commit:     Jimmy Olgeni <olgeni@FreeBSD.org>
CommitDate: 2026-09-04 14:09:41 +0000

    sysutils/blockio: New port: Display block device activity as a map of the address space
---
 sysutils/Makefile          |  1 +
 sysutils/blockio/Makefile  | 22 ++++++++++++++++++++++
 sysutils/blockio/distinfo  |  5 +++++
 sysutils/blockio/pkg-descr | 13 +++++++++++++
 4 files changed, 41 insertions(+)

diff --git a/sysutils/Makefile b/sysutils/Makefile
index 0c2d6970aed2..2ec7588d0e2a 100644
--- a/sysutils/Makefile
+++ b/sysutils/Makefile
@@ -131,6 +131,7 @@
     SUBDIR += bksh
     SUBDIR += bkt
     SUBDIR += blisp
+    SUBDIR += blockio
     SUBDIR += bmd
     SUBDIR += bmd-plugin-avahi
     SUBDIR += bmd-plugin-hookcmd
diff --git a/sysutils/blockio/Makefile b/sysutils/blockio/Makefile
new file mode 100644
index 000000000000..1f41e0dde2bb
--- /dev/null
+++ b/sysutils/blockio/Makefile
@@ -0,0 +1,22 @@
+PORTNAME=	blockio
+DISTVERSIONPREFIX=	v
+DISTVERSION=	1.1.0
+CATEGORIES=	sysutils
+
+MAINTAINER=	olgeni@FreeBSD.org
+COMMENT=	Display block device activity as a map of the address space
+WWW=		https://github.com/olgeni/blockio
+
+LICENSE=	BSD2CLAUSE
+LICENSE_FILE=	${WRKSRC}/LICENSE
+
+USES=		go:modules
+GO_MODULE=	github.com/olgeni/blockio
+
+PLIST_FILES=	bin/blockio \
+		share/man/man8/blockio.8.gz
+
+post-install:
+	${INSTALL_MAN} ${WRKSRC}/blockio.8 ${STAGEDIR}${PREFIX}/share/man/man8/
+
+.include <bsd.port.mk>
diff --git a/sysutils/blockio/distinfo b/sysutils/blockio/distinfo
new file mode 100644
index 000000000000..952bce962ca9
--- /dev/null
+++ b/sysutils/blockio/distinfo
@@ -0,0 +1,5 @@
+TIMESTAMP = 1788526768
+SHA256 (go/sysutils_blockio/blockio-v1.1.0/v1.1.0.mod) = 5702120327dfa6af606376bf8c24dbfb32350d8786de245855312a132152842a
+SIZE (go/sysutils_blockio/blockio-v1.1.0/v1.1.0.mod) = 1620
+SHA256 (go/sysutils_blockio/blockio-v1.1.0/v1.1.0.zip) = 3e58ad8e3b7aa48715acb4556e01572f73e97bfed01e298f5e3ba4445346bc4d
+SIZE (go/sysutils_blockio/blockio-v1.1.0/v1.1.0.zip) = 145581
diff --git a/sysutils/blockio/pkg-descr b/sysutils/blockio/pkg-descr
new file mode 100644
index 000000000000..0f06ce751049
--- /dev/null
+++ b/sysutils/blockio/pkg-descr
@@ -0,0 +1,13 @@
+blockio is a terminal front-end to whatever the kernel will say about block
+I/O: on FreeBSD it drives the DTrace io provider and diskinfo(8). It draws
+one pane per device and one cell per slice of the address space, green for
+reads, red for writes and amber for TRIM, so a resilver or a scrub shows up
+as a bright head marching across the map while scattered metadata writes
+speckle it.
+
+Each cell carries an activity layer that fades in milliseconds and a dimmer
+trail that fades over a minute, showing both what the disk is doing now and
+where the head has been.
+
+It needs root, and on FreeBSD it needs the DTrace modules loaded
+(kldload dtraceall). A demo mode draws synthetic devices without root.