freebsd-ports/sysutils/xperfmon3/files/patch-bc
Lars Koeller f5c1a46665 Update to Version 3.1 this includes several bugfixes:
o Fix compiler -Wall warnings
 o Calc etime correct for multi CPU machines
 o Show disk stats for "ad" disk devices, too
 o Count number of network in/out packets correctly
 o Get free swapspace only every 10 time intervals to
   limit CPU usage.
2001-04-10 20:43:11 +00:00

377 lines
9.8 KiB
Plaintext

*** ../xperfmon++/system.h Wed Jul 27 22:29:34 1994
--- ./system.h Tue Apr 10 21:49:11 2001
***************
*** 1,4 ****
--- 1,11 ----
/*
+ * Enhancement and error correction for FreeBSD-3.X
+ * COPYRIGHT 1998 by Lars Köller <Lars.Koeller@Uni-Bielefeld.de>
+ *
+ * $Id: system.h,v 3.5 2001/04/10 19:48:22 lkoeller Exp lkoeller $
+ */
+
+ /*
* $XConsortium: system.h,v 1.4 89/09/19 14:43:58 jim Exp $
*
* Perfmon Performance Monitor
***************
*** 20,26 ****
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL PCS
* BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
! * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
* CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*
* Original Author: Emanuel Jay Berkenbilt, MIT Project Athena
--- 27,33 ----
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL PCS
* BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
! * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
* CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*
* Original Author: Emanuel Jay Berkenbilt, MIT Project Athena
***************
*** 32,38 ****
* documentation for any purpose and without fee is hereby granted, provided that
* the above copyright notice appear in all copies and that both that
* copyright notice and this permission notice appear in supporting
! * documentation, and that the name of NASA and Sterling Software (collectively
* or individually) are not be used in advertising or
* publicity pertaining to distribution of the software without specific,
* written prior permission. NASA and Sterling Software makes no representations about the
--- 39,45 ----
* documentation for any purpose and without fee is hereby granted, provided that
* the above copyright notice appear in all copies and that both that
* copyright notice and this permission notice appear in supporting
! * documentation, and that the name of NASA and Sterling Software (collectively
* or individually) are not be used in advertising or
* publicity pertaining to distribution of the software without specific,
* written prior permission. NASA and Sterling Software makes no representations about the
***************
*** 43,49 ****
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL NASA & STERLING SOFTWARE
* BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
! * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
* CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*
* 1994 Revision
--- 50,56 ----
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL NASA & STERLING SOFTWARE
* BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
! * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
* CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*
* 1994 Revision
***************
*** 55,61 ****
/* This file information needed by both system.c and Perfmon.c */
! #define NUM_POSSIBLE_STATS 11
#define MAX_STATS NUM_POSSIBLE_STATS + 1
#define LINES_PER_LABEL 2
--- 62,75 ----
/* This file information needed by both system.c and Perfmon.c */
! #include <time.h>
! #include <unistd.h>
!
! #if __FreeBSD_version >= 300000
! # define NUM_POSSIBLE_STATS 25
! #else
! # define NUM_POSSIBLE_STATS 11
! #endif
#define MAX_STATS NUM_POSSIBLE_STATS + 1
#define LINES_PER_LABEL 2
***************
*** 77,93 ****
for (stat = 0; stat < num_stats; stat++)
#define NO_STAT -1
! #define USER_CPU_PERCENTAGE 0
! #define SYSTEM_CPU_PERCENTAGE 1
! #define IDLE_CPU_PERCENTAGE 2
! #define FREE_MEM 3
! #define DISK_TRANSFERS 4
! #define INTERRUPTS 5
! #define INPUT_PACKETS 6
! #define OUTPUT_PACKETS 7
! #define COLLISION_PACKETS 8
#define NFS_CLIENT_CALLS 9
#define NFS_SERVER_CALLS 10
struct statistic {
int min_val, max_val;
--- 91,137 ----
for (stat = 0; stat < num_stats; stat++)
#define NO_STAT -1
! #if __FreeBSD_version >= 300000
! #define LOAD 0
! #define USER_CPU_PERCENTAGE 1
! #define NICE_CPU_PERCENTAGE 2
! #define SYSTEM_CPU_PERCENTAGE 3
! #define INTER_CPU_PERCENTAGE 4
! #define IDLE_CPU_PERCENTAGE 5
! #define TTY_CHARS_IN 6
! #define TTY_CHARS_OUT 7
! #define INTERRUPTS 8
! #define FREE_MEM 9
! /* Refresh swap only every FREE_MEM_INT intervals */
! #define FREE_MEM_INT 10
! #define DISK_TRANSFERS 10
! #define DISK_MB 11
! #define TAPE_TRANSFERS 12
! #define TAPE_MB 13
! #define CDROM_TRANSFERS 14
! #define CDROM_MB 15
! #define INPUT_PACKETS 16
! #define OUTPUT_PACKETS 17
! #define COLLISION_PACKETS 18
! #define NFS_SERVER_CALLS 19
! #define NFS_SERVER_HIT 20
! #define NFS_SERVER_MIS 21
! #define NFS_CLIENT_CALLS 22
! #define NFS_CLIENT_HIT 23
! #define NFS_CLIENT_MIS 24
! #else
! #define USER_CPU_PERCENTAGE 0
! #define SYSTEM_CPU_PERCENTAGE 1
! #define IDLE_CPU_PERCENTAGE 2
! #define FREE_MEM 3
! #define DISK_TRANSFERS 4
! #define INTERRUPTS 5
! #define INPUT_PACKETS 6
! #define OUTPUT_PACKETS 7
! #define COLLISION_PACKETS 8
#define NFS_CLIENT_CALLS 9
#define NFS_SERVER_CALLS 10
+ #endif
struct statistic {
int min_val, max_val;
***************
*** 113,118 ****
--- 157,202 ----
#define VALID_UPDATE(x) ((x <= MAX_TIME) && (x > 0))
+ #if __FreeBSD_version >= 300000
+
+ /*
+ * This is a dirty but easy hack to display and scale floating point numbers
+ * in the graphs. The original version of xperfmon++ can only scale integers
+ * above 1.
+ */
+ #define SCALE_HACK 100.0
+
+ #define SYS_LOAD 0
+ #define USR_CPU 1
+ #define NICE_CPU 2
+ #define SYS_CPU 3
+ #define INT_CPU 4
+ #define IDL_CPU 5
+ #define TTY_IN 6
+ #define TTY_OUT 7
+ #define INTRPTS 8
+ #define FRE_MEM 9
+ #define DA_XFR 10
+ #define DA_MB 11
+ #define SA_XFR 12
+ #define SA_MB 13
+ #define CD_XFR 14
+ #define CD_MB 15
+ #define INP_PKT 16
+ #define OUT_PKT 17
+ #define COL_PKT 18
+ #define NFS_SRV 19
+ #define NFS_SRV_HIT 20
+ #define NFS_SRV_MIS 21
+ #define NFS_CLT 22
+ #define NFS_CLT_HIT 23
+ #define NFS_CLT_MIS 24
+ #define LAST_ITEM NFS_CLT_MIS /* must equal last item above */
+
+ #else
+
+ #define SCALE_HACK 1
+
#define USR_CPU 0
#define SYS_CPU 1
#define IDL_CPU 2
***************
*** 125,130 ****
--- 209,215 ----
#define NFS_CLT 9
#define NFS_SRV 10
#define LAST_ITEM NFS_SRV /* must equal last item above */
+ #endif
#define NUM_GRAPHS LAST_ITEM+1
/* data structure for custom application resources */
***************
*** 146,177 ****
}AppData, *AppDataPtr;
static char *topNames[] = {
"User",
"System",
"Idle",
"Free",
"Disk",
! "Interrupts",
"Input",
"Output",
! "Collision",
! "NFS Client",
! "NFS Server",
! };
! static char *widgetLabels[] = {
"User",
"System",
"Idle",
"Free",
"Disk",
! "Intrpts",
"Input",
"Output",
"Collision",
! "NFSClient",
! "NFSServer",
};
static char *botNames[] = {
"CPU",
"CPU",
"CPU",
--- 231,304 ----
}AppData, *AppDataPtr;
static char *topNames[] = {
+ #if __FreeBSD_version >= 300000
+ "System",
"User",
+ "Nice",
"System",
+ "Intrpt",
"Idle",
+ "TTY",
+ "TTY",
+ "Inter-",
"Free",
"Disk",
! "Disk IO",
! "Tape",
! "Tape IO",
! "CDRom",
! "CDRom IO",
"Input",
"Output",
! "Collis",
! "NFS Srv",
! "NFS Srv",
! "NFS Srv",
! "NFS Clt",
! "NFS Clt",
! "NFS Clt",
! #else
"User",
"System",
"Idle",
"Free",
"Disk",
! "Interrupts",
"Input",
"Output",
"Collision",
! "NFS Client",
! "NFS Server",
! #endif
};
static char *botNames[] = {
+ #if __FreeBSD_version >= 300000
+ "Load",
+ "CPU (%)",
+ "CPU (%)",
+ "CPU (%)",
+ "CPU (%)",
+ "CPU (%)",
+ "in (Char/s)",
+ "out (Char/s)",
+ "rupts/s",
+ "Swap (%)",
+ "Trsf/s",
+ "(MByte/s)",
+ "Trsf/s",
+ "(MByte/s)",
+ "Trsf/s",
+ "(MByte/s)",
+ "Packets/s",
+ "Packets/s",
+ "Packets/s",
+ "Calls/s",
+ "Cache-Hits",
+ "Cache-Miss",
+ "Calls/s",
+ "Cache-Hits",
+ "Cache-Miss",
+ #else
"CPU",
"CPU",
"CPU",
***************
*** 183,186 ****
--- 310,356 ----
"Packets",
"Calls",
"Calls",
+ #endif
+ };
+
+ static char *widgetLabels[] = {
+ #if __FreeBSD_version >= 300000
+ "Load",
+ "User",
+ "Nice",
+ "System",
+ "Inter",
+ "Idle",
+ "Ttyin",
+ "Ttyout",
+ "Intrpts",
+ "Swap",
+ "DiskXfr",
+ "DiskMB",
+ "TapeXfr",
+ "TapeMB",
+ "CDRomXfr",
+ "CDRomMB",
+ "Input",
+ "Output",
+ "Collision",
+ "NFSServerCalls",
+ "NFSServerHits",
+ "NFSServerMisses",
+ "NFSClientCalls",
+ "NFSClientHits",
+ "NFSClientMisses",
+ #else
+ "User",
+ "System",
+ "Idle",
+ "Free",
+ "Disk",
+ "Intrpts",
+ "Input",
+ "Output",
+ "Collision",
+ "NFSClient",
+ "NFSServer",
+ #endif
};