Hello community, here is the log from the commit of package procps for openSUSE:Factory checked in at Sat Aug 29 01:09:22 CEST 2009. -------- --- procps/procps.changes 2009-08-13 11:27:26.000000000 +0200 +++ procps/procps.changes 2009-08-24 13:37:28.000000000 +0200 @@ -1,0 +2,5 @@ +Wed Aug 19 14:45:52 CEST 2009 - werner@suse.de + +- Be aware that on XEN and VMware systems Div can become zero (bnc#529981) + +------------------------------------------------------------------- calling whatdependson for head-i586 New: ---- procps-3.2.6-xen.dif ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ procps.spec ++++++ --- /var/tmp/diff_new_pack.IRujUE/_old 2009-08-29 01:08:26.000000000 +0200 +++ /var/tmp/diff_new_pack.IRujUE/_new 2009-08-29 01:08:26.000000000 +0200 @@ -27,7 +27,7 @@ PreReq: %fillup_prereq %insserv_prereq AutoReqProv: on Version: 3.2.8 -Release: 3 +Release: 4 Summary: ps utilities for /proc Provides: ps Obsoletes: ps @@ -61,6 +61,7 @@ Patch25: procps-3.2.7-cgroups_flag.diff Patch26: procps-3.2.8-pgrep_coption.dif Patch27: procps-3.2.7-terabyte.dif +Patch28: procps-3.2.6-xen.dif BuildRoot: %{_tmppath}/%{name}-%{version}-build %description @@ -116,6 +117,7 @@ %patch25 -p1 %patch26 %patch27 +%patch28 %build make CFLAGS="-Wall -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 $RPM_OPT_FLAGS -pipe" \ ++++++ procps-3.2.6-xen.dif ++++++ --- vmstat.c +++ vmstat.c 2009-08-19 12:37:57.000000000 +0000 @@ -184,7 +184,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(); @@ -203,6 +203,8 @@ 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), @@ -242,16 +244,18 @@ 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, unitConvert(kb_swap_used),unitConvert(kb_main_free), ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... -- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org