[Buildroot] [PATCH 2/4] netatop: new package
Ricardo Martincoski
ricardo.martincoski at datacom.ind.br
Fri Oct 7 20:30:29 UTC 2016
The optional kernel module netatop can be loaded to gather statistics
about the TCP and UDP packets that have been transmitted/received per
process and per thread.
- install only the basic functionality (module and init script).
- use a source file as license file.
Maintainer will add license file to the next version.
- add patch to init script to support busybox ps.
Patch was accepted upstream.
Support for extra functionality can be added by follow-up patches:
- enable daemon that monitors processes that are finished.
Signed-off-by: Ricardo Martincoski <ricardo.martincoski at datacom.ind.br>
---
- Sample output from atop -n with netatop loaded:
ATOP - buildroot 1970/01/01 00:00:37 ------------- 10s elapsed
PRC | sys 2.61s | user 5.63s | #proc 38 | no procacct |
CPU | sys 36% | user 64% | idle 0% | wait 0% |
CPL | avg1 0.28 | avg5 0.06 | csw 8323 | intr 4040 |
MEM | tot 122.2M | free 110.2M | buff 0.2M | slab 1.9M |
SWP | tot 0.0M | free 0.0M | vmcom 7.4M | vmlim 61.1M |
NET | transport | tcpo 3038 | udpi 0 | udpo 0 |
NET | network | ipo 3038 | ipfrw 0 | deliv 3038 |
NET | eth0 0% | pcki 3038 | pcko 3038 | so 389 Kbps |
PID TCPRCV TCPSND UDPSND BANDWI BANDWO NET CMD 1/1
123 3037 3037 0 140 Kbps 398 Kbps 100% dropbear
117 1 1 0 0 Kbps 0 Kbps 0% dropbear
124 0 0 0 0 Kbps 0 Kbps 0% sh
- I first created the patch to fix the init script operation when the
daemon is installed. Then I decided to send the minimal package as
first version and add more functionalities in follow-up commits. But I
noticed the same patch to the init script is needed to make the stop
operation exit cleanly (without message like 'can't kill pid' because
it tries to kill the grep that is looking for the daemon). So I
decided to keep the patch file in these first commits.
---
package/Config.in | 1 +
package/atop/Config.in | 3 +++
...1-Ensure-init-script-stops-the-correct-pid.patch | 21 +++++++++++++++++++++
package/netatop/Config.in | 21 +++++++++++++++++++++
package/netatop/netatop.hash | 2 ++
package/netatop/netatop.mk | 21 +++++++++++++++++++++
6 files changed, 69 insertions(+)
create mode 100644 package/netatop/0001-Ensure-init-script-stops-the-correct-pid.patch
create mode 100644 package/netatop/Config.in
create mode 100644 package/netatop/netatop.hash
create mode 100644 package/netatop/netatop.mk
diff --git a/package/Config.in b/package/Config.in
index a1da86a..5ced012 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -95,6 +95,7 @@ menu "Debugging, profiling and benchmark"
source "package/lttng-tools/Config.in"
source "package/mcelog/Config.in"
source "package/memstat/Config.in"
+ source "package/netatop/Config.in"
source "package/netperf/Config.in"
source "package/netsniff-ng/Config.in"
source "package/oprofile/Config.in"
diff --git a/package/atop/Config.in b/package/atop/Config.in
index d42a201..5bcca0f 100644
--- a/package/atop/Config.in
+++ b/package/atop/Config.in
@@ -15,4 +15,7 @@ config BR2_PACKAGE_ATOP
CPU utilization, memory growth, disk utilization, priority,
username, state, and exit code.
+ In combination with the optional kernel module netatop, it
+ even shows network activity per process/thread.
+
http://www.atoptool.nl
diff --git a/package/netatop/0001-Ensure-init-script-stops-the-correct-pid.patch b/package/netatop/0001-Ensure-init-script-stops-the-correct-pid.patch
new file mode 100644
index 0000000..95784c8
--- /dev/null
+++ b/package/netatop/0001-Ensure-init-script-stops-the-correct-pid.patch
@@ -0,0 +1,21 @@
+Ensure init script stops the correct pid
+
+'ps' from busybox shows the pid of grep.
+Ignore the pid of the grep process, leaving only the pid of the daemon.
+
+Patch status: accepted upstream.
+
+Signed-off-by: Ricardo Martincoski <ricardo.martincoski at datacom.ind.br>
+---
+diff -purN netatop-1.0.orig/netatop.init netatop-1.0/netatop.init
+--- netatop-1.0.orig/netatop.init 2016-07-15 21:22:43.646062649 -0300
++++ netatop-1.0/netatop.init 2016-07-15 21:37:18.378936625 -0300
+@@ -26,7 +26,7 @@ start() {
+ }
+
+ stop() {
+- PID=$(ps -e | grep netatopd | sed -e 's/^ *//' -e 's/ .*//')
++ PID=$(ps -e | grep -v grep | grep netatopd | sed -e 's/^ *//' -e 's/ .*//')
+
+ if [ "$PID" ]
+ then
diff --git a/package/netatop/Config.in b/package/netatop/Config.in
new file mode 100644
index 0000000..f54a55f
--- /dev/null
+++ b/package/netatop/Config.in
@@ -0,0 +1,21 @@
+config BR2_PACKAGE_NETATOP
+ bool "netatop"
+ depends on BR2_USE_MMU # atop
+ depends on BR2_LINUX_KERNEL
+ # kernel headers: >= 2.6.24
+ select BR2_PACKAGE_ATOP # runtime
+ help
+ The optional kernel module netatop can be loaded to gather
+ statistics about the TCP and UDP packets that have been
+ transmitted/received per process and per thread.
+
+ Netatop requires a Linux kernel >= 2.6.24 with the following
+ option enabled:
+
+ - CONFIG_NETFILTER
+
+ http://www.atoptool.nl/netatop.php
+
+comment "netatop needs a Linux kernel >= 2.6.24 to be built"
+ depends on BR2_USE_MMU
+ depends on !BR2_LINUX_KERNEL
diff --git a/package/netatop/netatop.hash b/package/netatop/netatop.hash
new file mode 100644
index 0000000..f721ddd
--- /dev/null
+++ b/package/netatop/netatop.hash
@@ -0,0 +1,2 @@
+# Locally computed:
+sha256 0bdde8315d2c6e4a1d87fd10d27659d76d07949b31f0dc5e81662e67e1d0fdd0 netatop-1.0.tar.gz
diff --git a/package/netatop/netatop.mk b/package/netatop/netatop.mk
new file mode 100644
index 0000000..623bed7
--- /dev/null
+++ b/package/netatop/netatop.mk
@@ -0,0 +1,21 @@
+################################################################################
+#
+# netatop
+#
+################################################################################
+
+NETATOP_VERSION = 1.0
+NETATOP_SITE = http://www.atoptool.nl/download
+NETATOP_LICENSE = GPLv2
+# no license file. It will be added for the next version
+NETATOP_LICENSE_FILES = module/netatop.c
+
+NETATOP_MODULE_SUBDIRS = module
+
+define NETATOP_INSTALL_INIT_SYSV
+ $(INSTALL) -D -m 0755 $(@D)/netatop.init \
+ $(TARGET_DIR)/etc/init.d/S50netatop
+endef
+
+$(eval $(kernel-module))
+$(eval $(generic-package))
--
2.9.3
More information about the buildroot
mailing list