43 lines
1.2 KiB
Plaintext
43 lines
1.2 KiB
Plaintext
--- vmstat.c
|
|
+++ vmstat.c 2012-06-01 15:54:39.388411889 +0000
|
|
@@ -244,7 +244,7 @@ static void new_format(void)
|
|
unsigned int intr[2], ctxt[2];
|
|
unsigned int sleep_half;
|
|
unsigned long kb_per_page = sysconf(_SC_PAGESIZE) / 1024ul;
|
|
- int debt = 0; /* handle idle ticks running backwards */
|
|
+ long long debt = 0; /* handle idle ticks running backwards */
|
|
|
|
sleep_half = (sleep_time / 2);
|
|
new_header();
|
|
@@ -261,6 +261,7 @@ static void new_format(void)
|
|
dstl = *cpu_zzz;
|
|
Div = duse + dsys + didl + diow + dstl;
|
|
divo2 = Div / 2UL;
|
|
+ if (Div == 0) Div++;
|
|
printf(format,
|
|
running, blocked,
|
|
unitConvert(kb_swap_used), unitConvert(kb_main_free),
|
|
@@ -305,16 +306,17 @@ static void new_format(void)
|
|
|
|
/* idle can run backwards for a moment -- kernel "feature" */
|
|
if (debt) {
|
|
- didl = (int)didl + debt;
|
|
- debt = 0;
|
|
+ didl = (long long)didl + debt;
|
|
+ debt = 0LL;
|
|
}
|
|
- if ((int)didl < 0) {
|
|
- debt = (int)didl;
|
|
- didl = 0;
|
|
+ if ((long long)didl < 0) {
|
|
+ debt = (long long)didl;
|
|
+ didl = 0ULL;
|
|
}
|
|
|
|
Div = duse + dsys + didl + diow + dstl;
|
|
divo2 = Div / 2UL;
|
|
+ if (Div == 0) continue;
|
|
printf(format,
|
|
running,
|
|
blocked,
|