misc: adapt additional programs to changes, <STAT> api
This patch brings the ps program (very small impact) & that vmstat program (major impact) into agreement with the new <stat> API. In the case of the latter guy, the many separate calls to 'get' should be replaced by one single 'select' call obtaining all data in one stroke. [ but, i was too tired to undertake that enhancement ] Signed-off-by: Jim Warner <james.warner@comcast.net>
This commit is contained in:
parent
6c2b95872f
commit
21360027e5
14
ps/output.c
14
ps/output.c
@ -91,15 +91,11 @@ extern long Hertz;
|
|||||||
|
|
||||||
static void get_boot_time(void)
|
static void get_boot_time(void)
|
||||||
{
|
{
|
||||||
struct procps_stat *sys_info;
|
struct procps_statinfo *stat_info = NULL;
|
||||||
if (procps_stat_new(&sys_info) < 0)
|
if (procps_stat_new(&stat_info) < 0)
|
||||||
xerrx(EXIT_FAILURE,
|
xerrx(EXIT_FAILURE, _("Unable to create NEW ystem stat structure"));
|
||||||
_("Unable to create system stat structure"));
|
boot_time = procps_stat_get(stat_info, PROCPS_STAT_SYS_TIME_OF_BOOT);
|
||||||
if (procps_stat_read(sys_info,0) < 0)
|
procps_stat_unref(&stat_info);
|
||||||
xerrx(EXIT_FAILURE,
|
|
||||||
_("Unable to read system stat information"));
|
|
||||||
boot_time = procps_stat_sys_get(sys_info, PROCPS_STAT_BTIME);
|
|
||||||
procps_stat_unref(&sys_info);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void get_memory_total()
|
static void get_memory_total()
|
||||||
|
112
vmstat.c
112
vmstat.c
@ -206,15 +206,15 @@ static unsigned long unitConvert(unsigned long size)
|
|||||||
static void new_format(void)
|
static void new_format(void)
|
||||||
{
|
{
|
||||||
const char format[] =
|
const char format[] =
|
||||||
"%2u %2u %6lu %6lu %6lu %6lu %4u %4u %5u %5u %4u %4u %2u %2u %2u %2u %2u";
|
"%2lld %2lld %6lu %6lu %6lu %6lu %4u %4u %5u %5u %4u %4u %2u %2u %2u %2u %2u";
|
||||||
const char wide_format[] =
|
const char wide_format[] =
|
||||||
"%2u %2u %12lu %12lu %12lu %12lu %4u %4u %5u %5u %4u %4u %3u %3u %3u %3u %3u";
|
"%2lld %2lld %12lu %12lu %12lu %12lu %4u %4u %5u %5u %4u %4u %3u %3u %3u %3u %3u";
|
||||||
|
|
||||||
unsigned int tog = 0; /* toggle switch for cleaner code */
|
unsigned int tog = 0; /* toggle switch for cleaner code */
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
long hz;
|
long hz;
|
||||||
jiff cpu_use[2], cpu_sys[2], cpu_idl[2], cpu_iow[2], cpu_sto[2];
|
long long cpu_use[2], cpu_sys[2], cpu_idl[2], cpu_iow[2], cpu_sto[2];
|
||||||
jiff duse, dsys, didl, diow, dstl, Div, divo2;
|
long long duse, dsys, didl, diow, dstl, Div, divo2;
|
||||||
unsigned long pgpgin[2], pgpgout[2], pswpin[2] = {0,0}, pswpout[2];
|
unsigned long pgpgin[2], pgpgout[2], pswpin[2] = {0,0}, pswpout[2];
|
||||||
unsigned int intr[2], ctxt[2];
|
unsigned int intr[2], ctxt[2];
|
||||||
unsigned int sleep_half;
|
unsigned int sleep_half;
|
||||||
@ -223,9 +223,9 @@ static void new_format(void)
|
|||||||
struct tm *tm_ptr;
|
struct tm *tm_ptr;
|
||||||
time_t the_time;
|
time_t the_time;
|
||||||
char timebuf[32];
|
char timebuf[32];
|
||||||
struct procps_vmstat *vm_info;
|
struct procps_vmstat *vm_info = NULL;
|
||||||
struct procps_stat *sys_info;
|
struct procps_statinfo *sys_info = NULL;
|
||||||
struct procps_meminfo *mem_info;
|
struct procps_meminfo *mem_info = NULL;
|
||||||
|
|
||||||
sleep_half = (sleep_time / 2);
|
sleep_half = (sleep_time / 2);
|
||||||
hz = procps_hertz_get();
|
hz = procps_hertz_get();
|
||||||
@ -240,9 +240,6 @@ static void new_format(void)
|
|||||||
if (procps_stat_new(&sys_info) < 0)
|
if (procps_stat_new(&sys_info) < 0)
|
||||||
xerrx(EXIT_FAILURE,
|
xerrx(EXIT_FAILURE,
|
||||||
_("Unable to create system stat structure"));
|
_("Unable to create system stat structure"));
|
||||||
if (procps_stat_read(sys_info, 0) < 0)
|
|
||||||
xerrx(EXIT_FAILURE,
|
|
||||||
_("Unable to read system stat information"));
|
|
||||||
if (procps_meminfo_new(&mem_info) < 0)
|
if (procps_meminfo_new(&mem_info) < 0)
|
||||||
xerrx(EXIT_FAILURE, _("Unable to create meminfo structure"));
|
xerrx(EXIT_FAILURE, _("Unable to create meminfo structure"));
|
||||||
if (procps_meminfo_read(mem_info) < 0)
|
if (procps_meminfo_read(mem_info) < 0)
|
||||||
@ -254,16 +251,16 @@ static void new_format(void)
|
|||||||
strftime(timebuf, sizeof(timebuf), "%Y-%m-%d %H:%M:%S", tm_ptr);
|
strftime(timebuf, sizeof(timebuf), "%Y-%m-%d %H:%M:%S", tm_ptr);
|
||||||
}
|
}
|
||||||
/* Do the initial fill */
|
/* Do the initial fill */
|
||||||
cpu_use[tog] = procps_stat_cpu_get(sys_info, PROCPS_CPU_USER) +
|
cpu_use[tog] = procps_stat_get(sys_info, PROCPS_STAT_TIC_USER) +
|
||||||
procps_stat_cpu_get(sys_info, PROCPS_CPU_NICE);
|
procps_stat_get(sys_info, PROCPS_STAT_TIC_NICE);
|
||||||
cpu_sys[tog] = procps_stat_cpu_get(sys_info, PROCPS_CPU_SYSTEM);
|
cpu_sys[tog] = procps_stat_get(sys_info, PROCPS_STAT_TIC_SYSTEM) +
|
||||||
procps_stat_cpu_get(sys_info, PROCPS_CPU_IRQ) +
|
procps_stat_get(sys_info, PROCPS_STAT_TIC_IRQ) +
|
||||||
procps_stat_cpu_get(sys_info, PROCPS_CPU_SIRQ);
|
procps_stat_get(sys_info, PROCPS_STAT_TIC_SOFTIRQ);
|
||||||
cpu_idl[tog] = procps_stat_cpu_get(sys_info, PROCPS_CPU_IDLE);
|
cpu_idl[tog] = procps_stat_get(sys_info, PROCPS_STAT_TIC_IDLE);
|
||||||
cpu_iow[tog] = procps_stat_cpu_get(sys_info, PROCPS_CPU_IOWAIT);
|
cpu_iow[tog] = procps_stat_get(sys_info, PROCPS_STAT_TIC_IOWAIT);
|
||||||
cpu_sto[tog] = procps_stat_cpu_get(sys_info, PROCPS_CPU_STOLEN);
|
cpu_sto[tog] = procps_stat_get(sys_info, PROCPS_STAT_TIC_STOLEN);
|
||||||
intr[tog] = procps_stat_sys_get(sys_info, PROCPS_STAT_INTR);
|
intr[tog] = procps_stat_get(sys_info, PROCPS_STAT_SYS_INTERRUPTS);
|
||||||
ctxt[tog] = procps_stat_sys_get(sys_info, PROCPS_STAT_CTXT);
|
ctxt[tog] = procps_stat_get(sys_info, PROCPS_STAT_SYS_CTX_SWITCHES);
|
||||||
pgpgin[tog] = procps_vmstat_get(vm_info, PROCPS_VMSTAT_PGPGIN);
|
pgpgin[tog] = procps_vmstat_get(vm_info, PROCPS_VMSTAT_PGPGIN);
|
||||||
pgpgout[tog] = procps_vmstat_get(vm_info, PROCPS_VMSTAT_PGPGOUT);
|
pgpgout[tog] = procps_vmstat_get(vm_info, PROCPS_VMSTAT_PGPGOUT);
|
||||||
pswpin[tog] = procps_vmstat_get(vm_info, PROCPS_VMSTAT_PSWPIN);
|
pswpin[tog] = procps_vmstat_get(vm_info, PROCPS_VMSTAT_PSWPIN);
|
||||||
@ -277,8 +274,8 @@ static void new_format(void)
|
|||||||
divo2 = Div / 2UL;
|
divo2 = Div / 2UL;
|
||||||
|
|
||||||
printf(w_option ? wide_format : format,
|
printf(w_option ? wide_format : format,
|
||||||
procps_stat_sys_get(sys_info, PROCPS_STAT_PROCS_RUN),
|
procps_stat_get(sys_info, PROCPS_STAT_SYS_PROC_RUNNING),
|
||||||
procps_stat_sys_get(sys_info, PROCPS_STAT_PROCS_BLK),
|
procps_stat_get(sys_info, PROCPS_STAT_SYS_PROC_BLOCKED),
|
||||||
unitConvert(procps_meminfo_get(mem_info, PROCPS_SWAP_USED)),
|
unitConvert(procps_meminfo_get(mem_info, PROCPS_SWAP_USED)),
|
||||||
unitConvert(procps_meminfo_get(mem_info, PROCPS_MEM_FREE)),
|
unitConvert(procps_meminfo_get(mem_info, PROCPS_MEM_FREE)),
|
||||||
unitConvert(procps_meminfo_get(mem_info, (a_option?PROCPS_MEM_INACTIVE:PROCPS_MEM_BUFFERS))),
|
unitConvert(procps_meminfo_get(mem_info, (a_option?PROCPS_MEM_INACTIVE:PROCPS_MEM_BUFFERS))),
|
||||||
@ -309,23 +306,20 @@ static void new_format(void)
|
|||||||
new_header();
|
new_header();
|
||||||
tog = !tog;
|
tog = !tog;
|
||||||
|
|
||||||
if (procps_stat_read(sys_info,0) < 0)
|
|
||||||
xerrx(EXIT_FAILURE,
|
|
||||||
_("Unable to read system stat information"));
|
|
||||||
if (procps_vmstat_read(vm_info) < 0)
|
if (procps_vmstat_read(vm_info) < 0)
|
||||||
xerrx(EXIT_FAILURE,
|
xerrx(EXIT_FAILURE,
|
||||||
_("Unable to read vmstat information"));
|
_("Unable to read vmstat information"));
|
||||||
|
|
||||||
cpu_use[tog] = procps_stat_cpu_get(sys_info, PROCPS_CPU_USER) +
|
cpu_use[tog] = procps_stat_get(sys_info, PROCPS_STAT_TIC_USER) +
|
||||||
procps_stat_cpu_get(sys_info, PROCPS_CPU_NICE);
|
procps_stat_get(sys_info, PROCPS_STAT_TIC_NICE);
|
||||||
cpu_sys[tog] = procps_stat_cpu_get(sys_info, PROCPS_CPU_SYSTEM);
|
cpu_sys[tog] = procps_stat_get(sys_info, PROCPS_STAT_TIC_SYSTEM) +
|
||||||
procps_stat_cpu_get(sys_info, PROCPS_CPU_IRQ) +
|
procps_stat_get(sys_info, PROCPS_STAT_TIC_IRQ) +
|
||||||
procps_stat_cpu_get(sys_info, PROCPS_CPU_SIRQ);
|
procps_stat_get(sys_info, PROCPS_STAT_TIC_SOFTIRQ);
|
||||||
cpu_idl[tog] = procps_stat_cpu_get(sys_info, PROCPS_CPU_IDLE);
|
cpu_idl[tog] = procps_stat_get(sys_info, PROCPS_STAT_TIC_IDLE);
|
||||||
cpu_iow[tog] = procps_stat_cpu_get(sys_info, PROCPS_CPU_IOWAIT);
|
cpu_iow[tog] = procps_stat_get(sys_info, PROCPS_STAT_TIC_IOWAIT);
|
||||||
cpu_sto[tog] = procps_stat_cpu_get(sys_info, PROCPS_CPU_STOLEN);
|
cpu_sto[tog] = procps_stat_get(sys_info, PROCPS_STAT_TIC_STOLEN);
|
||||||
intr[tog] = procps_stat_sys_get(sys_info, PROCPS_STAT_INTR);
|
intr[tog] = procps_stat_get(sys_info, PROCPS_STAT_SYS_INTERRUPTS);
|
||||||
ctxt[tog] = procps_stat_sys_get(sys_info, PROCPS_STAT_CTXT);
|
ctxt[tog] = procps_stat_get(sys_info, PROCPS_STAT_SYS_CTX_SWITCHES);
|
||||||
pgpgin[tog] = procps_vmstat_get(vm_info, PROCPS_VMSTAT_PGPGIN);
|
pgpgin[tog] = procps_vmstat_get(vm_info, PROCPS_VMSTAT_PGPGIN);
|
||||||
pgpgout[tog] = procps_vmstat_get(vm_info, PROCPS_VMSTAT_PGPGOUT);
|
pgpgout[tog] = procps_vmstat_get(vm_info, PROCPS_VMSTAT_PGPGOUT);
|
||||||
pswpin[tog] = procps_vmstat_get(vm_info, PROCPS_VMSTAT_PSWPIN);
|
pswpin[tog] = procps_vmstat_get(vm_info, PROCPS_VMSTAT_PSWPIN);
|
||||||
@ -361,8 +355,8 @@ static void new_format(void)
|
|||||||
if (!Div) Div = 1, didl = 1;
|
if (!Div) Div = 1, didl = 1;
|
||||||
divo2 = Div / 2UL;
|
divo2 = Div / 2UL;
|
||||||
printf(w_option ? wide_format : format,
|
printf(w_option ? wide_format : format,
|
||||||
procps_stat_sys_get(sys_info, PROCPS_STAT_PROCS_RUN),
|
procps_stat_get(sys_info, PROCPS_STAT_SYS_PROC_RUNNING),
|
||||||
procps_stat_sys_get(sys_info, PROCPS_STAT_PROCS_BLK),
|
procps_stat_get(sys_info, PROCPS_STAT_SYS_PROC_BLOCKED),
|
||||||
unitConvert(procps_meminfo_get(mem_info, PROCPS_SWAP_USED)),
|
unitConvert(procps_meminfo_get(mem_info, PROCPS_SWAP_USED)),
|
||||||
unitConvert(procps_meminfo_get(mem_info, PROCPS_MEM_FREE)),
|
unitConvert(procps_meminfo_get(mem_info, PROCPS_MEM_FREE)),
|
||||||
unitConvert(procps_meminfo_get(mem_info,
|
unitConvert(procps_meminfo_get(mem_info,
|
||||||
@ -721,16 +715,13 @@ static void disksum_format(void)
|
|||||||
|
|
||||||
static void sum_format(void)
|
static void sum_format(void)
|
||||||
{
|
{
|
||||||
struct procps_stat *sys_info;
|
struct procps_statinfo *sys_info = NULL;
|
||||||
struct procps_vmstat *vm_info;
|
struct procps_vmstat *vm_info = NULL;
|
||||||
struct procps_meminfo *mem_info;
|
struct procps_meminfo *mem_info = NULL;
|
||||||
|
|
||||||
if (procps_stat_new(&sys_info) < 0)
|
if (procps_stat_new(&sys_info) < 0)
|
||||||
xerrx(EXIT_FAILURE,
|
xerrx(EXIT_FAILURE,
|
||||||
_("Unable to create system stat structure"));
|
_("Unable to create system stat structure"));
|
||||||
if (procps_stat_read(sys_info,0) < 0)
|
|
||||||
xerrx(EXIT_FAILURE,
|
|
||||||
_("Unable to read system stat information"));
|
|
||||||
if (procps_vmstat_new(&vm_info) < 0)
|
if (procps_vmstat_new(&vm_info) < 0)
|
||||||
xerrx(EXIT_FAILURE,
|
xerrx(EXIT_FAILURE,
|
||||||
_("Unable to create vmstat structure"));
|
_("Unable to create vmstat structure"));
|
||||||
@ -763,24 +754,24 @@ static void sum_format(void)
|
|||||||
mem_info, PROCPS_SWAP_USED)), szDataUnit);
|
mem_info, PROCPS_SWAP_USED)), szDataUnit);
|
||||||
printf(_("%13lu %s free swap\n"), unitConvert(procps_meminfo_get(
|
printf(_("%13lu %s free swap\n"), unitConvert(procps_meminfo_get(
|
||||||
mem_info, PROCPS_SWAP_FREE)), szDataUnit);
|
mem_info, PROCPS_SWAP_FREE)), szDataUnit);
|
||||||
printf(_("%13lld non-nice user cpu ticks\n"), procps_stat_cpu_get(sys_info, PROCPS_CPU_USER));
|
printf(_("%13lld non-nice user cpu ticks\n"), procps_stat_get(sys_info, PROCPS_STAT_TIC_USER));
|
||||||
printf(_("%13lld nice user cpu ticks\n"), procps_stat_cpu_get(sys_info, PROCPS_CPU_NICE));
|
printf(_("%13lld nice user cpu ticks\n"), procps_stat_get(sys_info, PROCPS_STAT_TIC_NICE));
|
||||||
printf(_("%13lld system cpu ticks\n"), procps_stat_cpu_get(sys_info, PROCPS_CPU_SYSTEM));
|
printf(_("%13lld system cpu ticks\n"), procps_stat_get(sys_info, PROCPS_STAT_TIC_SYSTEM));
|
||||||
printf(_("%13lld idle cpu ticks\n"), procps_stat_cpu_get(sys_info, PROCPS_CPU_IDLE));
|
printf(_("%13lld idle cpu ticks\n"), procps_stat_get(sys_info, PROCPS_STAT_TIC_IDLE));
|
||||||
printf(_("%13lld IO-wait cpu ticks\n"), procps_stat_cpu_get(sys_info, PROCPS_CPU_IOWAIT));
|
printf(_("%13lld IO-wait cpu ticks\n"), procps_stat_get(sys_info, PROCPS_STAT_TIC_IOWAIT));
|
||||||
printf(_("%13lld IRQ cpu ticks\n"), procps_stat_cpu_get(sys_info, PROCPS_CPU_IRQ));
|
printf(_("%13lld IRQ cpu ticks\n"), procps_stat_get(sys_info, PROCPS_STAT_TIC_IRQ));
|
||||||
printf(_("%13lld softirq cpu ticks\n"), procps_stat_cpu_get(sys_info, PROCPS_CPU_SIRQ));
|
printf(_("%13lld softirq cpu ticks\n"), procps_stat_get(sys_info, PROCPS_STAT_TIC_SOFTIRQ));
|
||||||
printf(_("%13lld stolen cpu ticks\n"), procps_stat_cpu_get(sys_info, PROCPS_CPU_STOLEN));
|
printf(_("%13lld stolen cpu ticks\n"), procps_stat_get(sys_info, PROCPS_STAT_TIC_STOLEN));
|
||||||
printf(_("%13lld non-nice guest cpu ticks\n"), procps_stat_cpu_get(sys_info, PROCPS_CPU_GUEST));
|
printf(_("%13lld non-nice guest cpu ticks\n"), procps_stat_get(sys_info, PROCPS_STAT_TIC_GUEST));
|
||||||
printf(_("%13lld nice guest cpu ticks\n"), procps_stat_cpu_get(sys_info, PROCPS_CPU_GNICE));
|
printf(_("%13lld nice guest cpu ticks\n"), procps_stat_get(sys_info, PROCPS_STAT_TIC_GUEST_NICE));
|
||||||
printf(_("%13lu pages paged in\n"), procps_vmstat_get(vm_info, PROCPS_VMSTAT_PGPGIN));
|
printf(_("%13lu pages paged in\n"), procps_vmstat_get(vm_info, PROCPS_VMSTAT_PGPGIN));
|
||||||
printf(_("%13lu pages paged out\n"), procps_vmstat_get(vm_info, PROCPS_VMSTAT_PGPGOUT));
|
printf(_("%13lu pages paged out\n"), procps_vmstat_get(vm_info, PROCPS_VMSTAT_PGPGOUT));
|
||||||
printf(_("%13lu pages swapped in\n"), procps_vmstat_get(vm_info, PROCPS_VMSTAT_PSWPIN));
|
printf(_("%13lu pages swapped in\n"), procps_vmstat_get(vm_info, PROCPS_VMSTAT_PSWPIN));
|
||||||
printf(_("%13lu pages swapped out\n"), procps_vmstat_get(vm_info, PROCPS_VMSTAT_PSWPOUT));
|
printf(_("%13lu pages swapped out\n"), procps_vmstat_get(vm_info, PROCPS_VMSTAT_PSWPOUT));
|
||||||
printf(_("%13u interrupts\n"), procps_stat_sys_get(sys_info, PROCPS_STAT_INTR));
|
printf(_("%13lld interrupts\n"), procps_stat_get(sys_info, PROCPS_STAT_SYS_INTERRUPTS));
|
||||||
printf(_("%13u CPU context switches\n"), procps_stat_sys_get(sys_info, PROCPS_STAT_CTXT));
|
printf(_("%13lld CPU context switches\n"), procps_stat_get(sys_info, PROCPS_STAT_SYS_CTX_SWITCHES));
|
||||||
printf(_("%13u boot time\n"), procps_stat_sys_get(sys_info, PROCPS_STAT_BTIME));
|
printf(_("%13lld boot time\n"), procps_stat_get(sys_info, PROCPS_STAT_SYS_TIME_OF_BOOT));
|
||||||
printf(_("%13u forks\n"), procps_stat_sys_get(sys_info, PROCPS_STAT_PROCS));
|
printf(_("%13lld forks\n"), procps_stat_get(sys_info, PROCPS_STAT_SYS_PROC_CREATED));
|
||||||
|
|
||||||
/* Cleanup */
|
/* Cleanup */
|
||||||
procps_stat_unref(&sys_info);
|
procps_stat_unref(&sys_info);
|
||||||
@ -790,16 +781,13 @@ static void sum_format(void)
|
|||||||
|
|
||||||
static void fork_format(void)
|
static void fork_format(void)
|
||||||
{
|
{
|
||||||
struct procps_stat *sys_info;
|
struct procps_statinfo *sys_info = NULL;
|
||||||
|
|
||||||
if (procps_stat_new(&sys_info) < 0)
|
if (procps_stat_new(&sys_info) < 0)
|
||||||
xerrx(EXIT_FAILURE,
|
xerrx(EXIT_FAILURE,
|
||||||
_("Unable to create system stat structure"));
|
_("Unable to create system stat structure"));
|
||||||
if (procps_stat_read(sys_info,0) < 0)
|
|
||||||
xerrx(EXIT_FAILURE,
|
|
||||||
_("Unable to read system stat information"));
|
|
||||||
|
|
||||||
printf(_("%13u forks\n"), procps_stat_sys_get(sys_info, PROCPS_STAT_PROCS));
|
printf(_("%13lld forks\n"), procps_stat_get(sys_info, PROCPS_STAT_SYS_PROC_CREATED));
|
||||||
/* Cleanup */
|
/* Cleanup */
|
||||||
procps_stat_unref(&sys_info);
|
procps_stat_unref(&sys_info);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user