diff --git a/lmon16p.c b/lmon16q.c similarity index 99% rename from lmon16p.c rename to lmon16q.c index 1d39cf2..6b14095 100644 --- a/lmon16p.c +++ b/lmon16q.c @@ -46,7 +46,7 @@ PRE_KERNEL_2_6_18 1 kernel levels before removed the following to the disk stats #define RAW(member) (long)((long)(p->cpuN[i].member) - (long)(q->cpuN[i].member)) #define RAWTOTAL(member) (long)((long)(p->cpu_total.member) - (long)(q->cpu_total.member)) -#define VERSION "16p" +#define VERSION "16q" char version[] = VERSION; static char *SccsId = "nmon " VERSION; @@ -7615,9 +7615,7 @@ I/F Name Recv=KB/s Trans=KB/s packin packout insize outsize Peak->Recv Trans continue; if (strlen(p->dk[i].dk_name) > 8) - str_p = - &p->dk[i]. - dk_name[strlen(p->dk[i].dk_name) - 8]; + str_p = &p->dk[i].dk_name[strlen(p->dk[i].dk_name) - 8]; else str_p = &p->dk[i].dk_name[0]; @@ -7858,9 +7856,9 @@ I/F Name Recv=KB/s Trans=KB/s packin packout insize outsize Peak->Recv Trans total_rbytes += disk_read; total_wbytes += disk_write; total_xfers += disk_xfers; -/* if (!show_all && (disk_read < 1.0 && disk_write < 1.0)) - continue; -*/ + if (!show_all && total_busy < 1) + continue; + if ((disk_read + disk_write) == 0 || disk_xfers == 0) disk_size = 0.0; @@ -7880,7 +7878,10 @@ I/F Name Recv=KB/s Trans=KB/s packin packout insize outsize Peak->Recv Trans mvwprintw(paddg, n + 2, 1, "Groups=%2d TOTALS %3d %5.1f%% %9.1f|%-9.1f %6.1f %9.1f", n, dgroup_total_disks, total_busy / dgroup_total_disks, total_rbytes, total_wbytes, (((double) total_rbytes + (double) total_wbytes)) / 1024, /* in MB */ total_xfers); } - DISPLAY(paddg, 3 + dgroup_total_groups); + wmove(paddg, n + 4, 1); + wclrtobot(paddg); + DISPLAY(paddg, 3 + n); + /*DISPLAY(paddg, 3 + dgroup_total_groups);*/ } else { if (dgroup_loaded == 2) { fprintf(fp, diff --git a/nmon-incrase-cpumax-to-support-2048-cpus.patch b/nmon-incrase-cpumax-to-support-2048-cpus.patch new file mode 100644 index 0000000..763dc1e --- /dev/null +++ b/nmon-incrase-cpumax-to-support-2048-cpus.patch @@ -0,0 +1,17 @@ +From: Seeteena Thoufeek +Subject: [PATCH] lmon16q.c: increase CPUMAX to support up to 2048 CPUs + +nmon currently fails on systems with high CPU counts due to a low CPUMAX setting. +This patch increases the CPUMAX value to support systems with up to 2048 CPUs. + +--- a/lmon16q.c 2025-07-03 16:48:03.567956477 +0530 ++++ b/lmon16q.c 2025-07-03 16:53:33.641940838 +0530 +@@ -1443,7 +1443,7 @@ + + /* Supports up to 780, but not POWER6 595 follow-up with POWER7 */ + /* XXXX needs rework to cope to with fairly rare but interesting higher numbers of CPU machines */ +-#define CPUMAX (192 * 8) /* MAGIC COOKIE WARNING */ ++#define CPUMAX (256 * 8) /* MAGIC COOKIE WARNING */ + + struct data { + struct dsk_stat *dk; diff --git a/nmon.changes b/nmon.changes index f9f655d..923d2d6 100644 --- a/nmon.changes +++ b/nmon.changes @@ -1,3 +1,14 @@ +------------------------------------------------------------------- +Mon Sep 8 12:24:55 UTC 2025 - Dirk Müller + +- add nmon-incrase-cpumax-to-support-2048-cpus.patch (bsc#1247368) + +------------------------------------------------------------------- +Sat Feb 8 21:10:01 UTC 2025 - Dirk Müller + +- update to 16q: + * bugfixes + ------------------------------------------------------------------- Mon Sep 4 10:32:34 UTC 2023 - Dirk Müller @@ -6,7 +17,7 @@ Mon Sep 4 10:32:34 UTC 2023 - Dirk Müller + CLI -B and GUI 'B' to toggle boxes around stats. + CLI -^ and '^' to change units for Disk I/O KB/s -> MB/s -> GB/s. This happen temporarily too if the size of the statistic - will not fit on-scree. + will not fit on-scree. * Code changed to ensure clean compile for GCC 12 ------------------------------------------------------------------- @@ -14,7 +25,7 @@ Sun Apr 10 13:41:59 UTC 2022 - Dirk Müller - update to 16n: * 0 maximum CPUs for the Power10 E1080 (needed for massive Linux running SAP - HAMA servers) and small fixes + HAMA servers) and small fixes ------------------------------------------------------------------- Tue Nov 12 14:18:32 UTC 2019 - Martin Pluskal @@ -57,30 +68,30 @@ Thu Jan 10 13:06:47 UTC 2019 - Martin Pluskal - Update to version 16h: * Internal code changes for robustness malloc() and - snprintf/strncpy. - * POWER pool_capacity now correctly divided by 100. + snprintf/strncpy. + * POWER pool_capacity now correctly divided by 100. * Online view ARM lscpu command column format depends on your hardware * Online view ALL /proc/cpuinfo format depends on your hardware and new lines - like MMU: Hash or MMU: - * Online view POWER Welcome panel on POWER reports the top MHz + * Online view POWER Welcome panel on POWER reports the top MHz - Drop manpage generation ------------------------------------------------------------------- Wed Apr 18 12:39:35 UTC 2018 - aloisio@gmx.com - Update to version 16g - Small changes only: + Small changes only: * Now cope with 192 physical CPU cores with SMT=8 (for POWER8 servers) * Fixed bug reported with NFS automount in data capture mode + Alternatively, completely switch off JFS stats in capture - mode with "-J" + mode with "-J" * Online view: remove File systems that are "not real" to reduce screen space. Hit "j" and then "J" to remove the pointless file systems * Online view: Small clean up of the titles for the Memory - stats (m) + stats (m) ------------------------------------------------------------------- Fri Jul 8 17:32:36 UTC 2016 - mpluskal@suse.com @@ -98,21 +109,21 @@ Sat Jun 18 18:42:06 UTC 2016 - mpluskal@suse.com Fri Apr 8 18:44:06 UTC 2016 - mpluskal@suse.com - Update to 16e (boo#974718) - * Boottime shown online in the Kernel "k" panel - * Utilisation stats: /proc/stat now reports 10 Utilisation stats + * Boottime shown online in the Kernel "k" panel + * Utilisation stats: /proc/stat now reports 10 Utilisation stats including KVM guest VM CPU use = cool. - * Bug caused Seg Faults core dumps fixed while collecting to a + * Bug caused Seg Faults core dumps fixed while collecting to a file including top process stats. - * Fix: Improved memory handling for extreme numbers of processes - (1000's) or rapid exec of processes (100's in a millisecond) - for large Linux servers. We have examples on Intel of 80 CPU + * Fix: Improved memory handling for extreme numbers of processes + (1000's) or rapid exec of processes (100's in a millisecond) + for large Linux servers. We have examples on Intel of 80 CPU cores and POWER 160+ - * Online Dot "." command no longer also changes what is displayed - as users said it was confusing. - * Minor online start-up flash screen text changes to include C - concise CPU stats and U for full Utilisation stats (all 10 of - them) instead of a file. - * Copyright and GPL v3 notice in the code plus online "h" and + * Online Dot "." command no longer also changes what is displayed + as users said it was confusing. + * Minor online start-up flash screen text changes to include C + concise CPU stats and U for full Utilisation stats (all 10 of + them) instead of a file. + * Copyright and GPL v3 notice in the code plus online "h" and nmon -h output - Improve manpage generation @@ -127,30 +138,30 @@ Fri Mar 18 14:46:15 UTC 2016 - mpluskal@suse.com Sat Mar 12 07:54:50 UTC 2016 - mpluskal@suse.com - Update to 16d - * Source code re-indented. - * Fixes for Welcome screen on Mainframe - * Fixed for Curses handling when collecting data to file - big - bug for main frame and x86. + * Source code re-indented. + * Fixes for Welcome screen on Mainframe + * Fixed for Curses handling when collecting data to file - big + bug for main frame and x86. - Changes for 16b - * Fixes for Welcome screen on Mainframe - * Fixed for Curses handling when collecting data to file - big - bug for main frame and x86. + * Fixes for Welcome screen on Mainframe + * Fixed for Curses handling when collecting data to file - big + bug for main frame and x86. - Changes for 16a * Nvidia GPU support - online & saved to file - + You need a S822LC With NVIDIA GPU(s) and Nvidia Library - installed libnvidia-ml.so - * CPU Wide View - online view for up to 192 CPUs - * CPU MHz per Core ratings for machine that allow cores with - different MHz - online & saved to file - * lscpu stats capture - online & to file - * Z experiment mode showing CPU interrupts - Renamed U stats in - version 16b - online only - * Online colourising stats to aid usability - online only - * Massive improvement in help information: nmon -? and nmon -h - * Code change to alphabetic order for getopt() and key input + + You need a S822LC With NVIDIA GPU(s) and Nvidia Library + installed libnvidia-ml.so + * CPU Wide View - online view for up to 192 CPUs + * CPU MHz per Core ratings for machine that allow cores with + different MHz - online & saved to file + * lscpu stats capture - online & to file + * Z experiment mode showing CPU interrupts - Renamed U stats in + version 16b - online only + * Online colourising stats to aid usability - online only + * Massive improvement in help information: nmon -? and nmon -h + * Code change to alphabetic order for getopt() and key input functions - just code clean up - * New nmon logo on flash screen - online only - * Extra kernel stats - online only + * New nmon logo on flash screen - online only + * Extra kernel stats - online only - Drop nmon.1 and genereate manpage during build ------------------------------------------------------------------- diff --git a/nmon.spec b/nmon.spec index 7cf45b7..afa59f6 100644 --- a/nmon.spec +++ b/nmon.spec @@ -1,7 +1,7 @@ # # spec file for package nmon # -# Copyright (c) 2023 SUSE LLC +# Copyright (c) 2025 SUSE LLC and contributors # Copyright (c) 2011-2013 Pascal Bleser # # All modifications and additions to the file contributed by third parties @@ -18,13 +18,14 @@ Name: nmon -Version: 16p +Version: 16q Release: 0 Summary: Performance Monitor License: GPL-3.0-only URL: https://nmon.sourceforge.io/pmwiki.php Source0: https://sourceforge.net/projects/nmon/files/lmon%{version}.c Source1: https://www.gnu.org/licenses/gpl-3.0.txt +Patch1: nmon-incrase-cpumax-to-support-2048-cpus.patch BuildRequires: ncurses-devel Provides: lmon = %{version} @@ -53,6 +54,8 @@ important performance information in one go. It can output the data in two ways %prep %setup -q -T -c %{name}-%{version} +install -m 644 %{SOURCE0} lmon%{version}.c +%autopatch -p1 %build export CFLAGS="%{optflags} \ @@ -64,7 +67,7 @@ export CFLAGS="%{optflags} \ %if !0%{?is_opensuse} -D SLES12 \ %endif - %{SOURCE0}" + lmon%{version}.c" export LDFLAGS="-o nmon \ -lncurses \ -lm \