On Fri, Apr 20, 2012 at 02:10:18PM -0700, Ben Pfaff wrote: > I'd always assumed that the EWMA code here was sufficient rate-limiting, > but I actually encountered a pathological case some time ago that forced > this rusage information to print once a second or so, which seems too > often. > > Signed-off-by: Ben Pfaff <b...@nicira.com>
Here's a version of the patch generated with -w to ignore white space changes. It shows how very little actually changed; most of the changes are just re-indenting. From: Ben Pfaff <b...@nicira.com> Date: Fri, 20 Apr 2012 13:43:54 -0700 Subject: [PATCH] timeval: Rate-limit logging rusage information. I'd always assumed that the EWMA code here was sufficient rate-limiting, but I actually encountered a pathological case some time ago that forced this rusage information to print once a second or so, which seems too often. Signed-off-by: Ben Pfaff <b...@nicira.com> --- lib/timeval.c | 11 ++++++++--- 1 files changed, 8 insertions(+), 3 deletions(-) diff --git a/lib/timeval.c b/lib/timeval.c index 3f12b50..9829100 100644 --- a/lib/timeval.c +++ b/lib/timeval.c @@ -463,6 +463,9 @@ log_poll_interval(long long int last_wakeup) /* Warn if we took too much time between polls: at least 50 ms and at least * 8X the mean interval. */ if (n_samples > 10 && interval > mean_interval * 8 && interval > 50 * 16) { + static struct vlog_rate_limit rl = VLOG_RATE_LIMIT_INIT(1, 3); + + if (!VLOG_DROP_WARN(&rl)) { const struct rusage *last_rusage = get_recent_rusage(); struct rusage rusage; @@ -471,8 +474,10 @@ log_poll_interval(long long int last_wakeup) "is over %u times the weighted mean interval %u ms " "(%u samples)", now - last_wakeup, - timeval_diff_msec(&rusage.ru_utime, &last_rusage->ru_utime), - timeval_diff_msec(&rusage.ru_stime, &last_rusage->ru_stime), + timeval_diff_msec(&rusage.ru_utime, + &last_rusage->ru_utime), + timeval_diff_msec(&rusage.ru_stime, + &last_rusage->ru_stime), interval / mean_interval, (mean_interval + 8) / 16, n_samples); if (rusage.ru_minflt > last_rusage->ru_minflt @@ -493,7 +498,7 @@ log_poll_interval(long long int last_wakeup) rusage.ru_nvcsw - last_rusage->ru_nvcsw, rusage.ru_nivcsw - last_rusage->ru_nivcsw); } - + } /* Care should be taken in the value chosen for logging. Depending * on the configuration, syslog can write changes synchronously, * which can cause the coverage messages to take longer to log -- 1.7.2.5 _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev