1 /*
2 * Copyright (c) 2012, 2016 SAP SE. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation.
8 *
9 * This code is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12 * version 2 for more details (a copy is included in the LICENSE file that
13 * accompanied this code).
14 *
15 * You should have received a copy of the GNU General Public License version
16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 *
925 u_longlong_t pool_idle_time; /* pool idle time = number of clock tics a processor in the shared pool was idle */
926 u_longlong_t pcpu_tics_user; /* raw number of physical processor tics in user mode */
927 u_longlong_t pcpu_tics_sys; /* raw number of physical processor tics in system mode */
928 u_longlong_t pcpu_tics_idle; /* raw number of physical processor tics idle */
929 u_longlong_t pcpu_tics_wait; /* raw number of physical processor tics waiting for I/O */
930
931 u_longlong_t true_memory; /* True Memory Size in 4KB pages */
932 u_longlong_t expanded_memory; /* Expanded Memory Size in 4KB pages */
933 u_longlong_t target_memexp_factr; /* Target Memory Expansion Factor scaled by 100 */
934 u_longlong_t current_memexp_factr; /* Current Memory Expansion Factor scaled by 100 */
935 u_longlong_t cmcs_total_time; /* Total CPU time spent due to active memory expansion */
936 };
937
938 // Result struct for get_cpuinfo().
939 struct cpuinfo_t {
940 char description[IDENTIFIER_LENGTH]; // processor description (type/official name)
941 u_longlong_t processorHZ; // processor speed in Hz
942 int ncpus; // number of active logical processors
943 double loadavg[3]; // (1<<SBITS) times the average number of runnables processes during the last 1, 5 and 15 minutes.
944 // To calculate the load average, divide the numbers by (1<<SBITS). SBITS is defined in <sys/proc.h>.
945 char version[20]; // processor version from _system_configuration (sys/systemcfg.h)
946 unsigned long long user_clock_ticks; // raw total number of clock ticks spent in user mode
947 unsigned long long sys_clock_ticks; // raw total number of clock ticks spent in system mode
948 unsigned long long idle_clock_ticks; // raw total number of clock ticks spent idle
949 unsigned long long wait_clock_ticks; // raw total number of clock ticks spent waiting for I/O
950 };
951
952 // Result struct for get_wparinfo().
953 struct wparinfo_t {
954 char name[MAXCORRALNAMELEN+1]; /* name of the Workload Partition */
955 unsigned short wpar_id; /* workload partition identifier */
956 unsigned app_wpar :1; /* Application WPAR */
957 unsigned cpu_rset :1; /* WPAR restricted to CPU resource set */
958 unsigned cpu_xrset:1; /* WPAR restricted to CPU Exclusive resource set */
959 unsigned cpu_limits :1; /* CPU resource limits enforced */
960 unsigned mem_limits :1; /* Memory resource limits enforced */
961 int cpu_limit; /* CPU limit in 100ths of % - 1..10000 */
962 int mem_limit; /* Memory limit in 100ths of % - 1..10000 */
963 };
964
965 static bool get_partitioninfo(partitioninfo_t* ppi);
966 static bool get_cpuinfo(cpuinfo_t* pci);
967 static bool get_wparinfo(wparinfo_t* pwi);
968
969 };
970
971 #endif // OS_AIX_VM_LIBPERFSTAT_AIX_HPP
|
1 /*
2 * Copyright (c) 2012, 2018 SAP SE. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation.
8 *
9 * This code is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12 * version 2 for more details (a copy is included in the LICENSE file that
13 * accompanied this code).
14 *
15 * You should have received a copy of the GNU General Public License version
16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 *
925 u_longlong_t pool_idle_time; /* pool idle time = number of clock tics a processor in the shared pool was idle */
926 u_longlong_t pcpu_tics_user; /* raw number of physical processor tics in user mode */
927 u_longlong_t pcpu_tics_sys; /* raw number of physical processor tics in system mode */
928 u_longlong_t pcpu_tics_idle; /* raw number of physical processor tics idle */
929 u_longlong_t pcpu_tics_wait; /* raw number of physical processor tics waiting for I/O */
930
931 u_longlong_t true_memory; /* True Memory Size in 4KB pages */
932 u_longlong_t expanded_memory; /* Expanded Memory Size in 4KB pages */
933 u_longlong_t target_memexp_factr; /* Target Memory Expansion Factor scaled by 100 */
934 u_longlong_t current_memexp_factr; /* Current Memory Expansion Factor scaled by 100 */
935 u_longlong_t cmcs_total_time; /* Total CPU time spent due to active memory expansion */
936 };
937
938 // Result struct for get_cpuinfo().
939 struct cpuinfo_t {
940 char description[IDENTIFIER_LENGTH]; // processor description (type/official name)
941 u_longlong_t processorHZ; // processor speed in Hz
942 int ncpus; // number of active logical processors
943 double loadavg[3]; // (1<<SBITS) times the average number of runnables processes during the last 1, 5 and 15 minutes.
944 // To calculate the load average, divide the numbers by (1<<SBITS). SBITS is defined in <sys/proc.h>.
945 unsigned long long user_clock_ticks; // raw total number of clock ticks spent in user mode
946 unsigned long long sys_clock_ticks; // raw total number of clock ticks spent in system mode
947 unsigned long long idle_clock_ticks; // raw total number of clock ticks spent idle
948 unsigned long long wait_clock_ticks; // raw total number of clock ticks spent waiting for I/O
949 };
950
951 // Result struct for get_wparinfo().
952 struct wparinfo_t {
953 char name[MAXCORRALNAMELEN+1]; /* name of the Workload Partition */
954 unsigned short wpar_id; /* workload partition identifier */
955 unsigned app_wpar :1; /* Application WPAR */
956 unsigned cpu_rset :1; /* WPAR restricted to CPU resource set */
957 unsigned cpu_xrset:1; /* WPAR restricted to CPU Exclusive resource set */
958 unsigned cpu_limits :1; /* CPU resource limits enforced */
959 unsigned mem_limits :1; /* Memory resource limits enforced */
960 int cpu_limit; /* CPU limit in 100ths of % - 1..10000 */
961 int mem_limit; /* Memory limit in 100ths of % - 1..10000 */
962 };
963
964 static bool get_partitioninfo(partitioninfo_t* ppi);
965 static bool get_cpuinfo(cpuinfo_t* pci);
966 static bool get_wparinfo(wparinfo_t* pwi);
967 };
968
969 #endif // OS_AIX_VM_LIBPERFSTAT_AIX_HPP
|