commit | 9a5fac9a36341542bf6b658a41a0a1319c360ce4 | [log] [tgz] |
---|---|---|
author | Deepak Kamat <dkamat@nvidia.com> | Wed Mar 26 10:29:29 2025 +0530 |
committer | Deepak Kamat <dkamat@nvidia.com> | Fri May 02 08:20:56 2025 +0000 |
tree | 146007d169203a989af4fca05e873363179a3723 | |
parent | 73cec52d519c4697df8495244da39279a7c7ed8e [diff] |
Dreport: Add SoftIRQ Information Collection Add functionality to collect softIRQ statistics as part of the debug data collection process. The new file will contain: - softIRQs: Software interrupt statistics including counts and processing details Including this information in debug reports will enhance troubleshooting capabilities for system performance and resource utilization in OpenBMC based systems. It provides a snapshot of software interrupt processing activity at the time of report generation. This addition will help identify potential bottlenecks and excessive softIRQ activity that may impact system performance or stability, particularly for network stack processing, timers, and tasklet execution analysis. Tested on the qemuarm platform. ''' Dump size: 82k Untar Dump Size: 936K Added File Size: 282 bytes Time for the Dump Completion: 15sec Time for the command to run: 0.038s Data can be used like Network Analysis (NET_RX/NET_TX) NET_RX: 170 suggests: 170 packets received via network interfaces during collection Potential issues if: Counts increase without traffic Asymmetry between NET_RX and actual received packets (ifconfig/ethtool) root@qemuarm:~# busctl call xyz.openbmc_project.Dump.Manager /xyz/openbmc_project/dump/bmc xyz.openbmc_project.Dump.Create CreateDump a{sv} 1 "i" i 1234 root@qemuarm:~# journalctl -f -u xyz.openbmc_project.Dump.Manager ... Mar 26 04:09:34 qemuarm phosphor-dump-manager[220]: OriginatorId is not provided Mar 26 04:09:34 qemuarm phosphor-dump-manager[220]: OriginatorType is not provided. Replacing the string with the default value Mar 26 04:09:34 qemuarm phosphor-dump-manager[220]: Initiating new BMC dump with type: user path: ... Mar 26 04:09:49 qemuarm phosphor-dump-manager[304]: Wed Mar 26 04:09:49 UTC 2025 Report is available in /var/lib/phosphor-debug-collector/dumps/1 Mar 26 04:09:49 qemuarm phosphor-dump-manager[304]: Wed Mar 26 04:09:49 UTC 2025 Successfully completed Mar 26 04:09:49 qemuarm phosphor-dump-manager[220]: User initiated dump completed, resetting flag root@qemuarm:~# time cat /proc/softirqs ... real 0m0.038s user 0m0.021s sys 0m0.002s root@qemuarm:~# ls -lrth obmcdump_1_1742962174.tar.xz -rw-r--r-- 1 dkamat domain-users 82K Mar 26 10:16 obmcdump_1_1742962174.tar.xz ls -lrth obmcdump_1_1742962174/ total 936K -rw-r--r-- 1 dkamat domain-users 223 Mar 26 09:39 summary.log ... -rw-r--r-- 1 dkamat domain-users 282 Mar 26 09:39 softIRQs.log cat obmcdump_1_1742962174/softIRQs.log | head CPU0 HI: 0 TIMER: 4457 NET_TX: 3 NET_RX: 170 BLOCK: 0 IRQ_POLL: 0 TASKLET: 1 SCHED: 0 HRTIMER: 0 ''' Change-Id: I154e9a4ddfad4099ea57d31fb689ac9eefdda8e7 Signed-off-by: Deepak Kamat <dkamat@nvidia.com>
Phosphor Debug Collector provides mechanisms to collect various log files and system parameters. Used to troubleshoot problems in OpenBMC based systems.
One such mechanism is dreport, a script that collects debug data and packages it into an archive file.
To build this package with meson, do the following steps:
1. meson builddir 2. ninja -C builddir
To clean the built files run ninja -C builddir clean
.
Tests can be run in the CI docker container, refer local-ci-build
or with an OpenBMC x86 sdk(see below for x86 steps).
meson -Dtests=enabled build ninja -C build test