I'd always assumed that the exponentially weighted moving average code in
timeval was enough rate-limiting, but I actually encountered a pathological
case some time ago that forced this coverage information to print once a
second or so, which seems too often.
Signed-off-by: Ben Pfaff <blp@nicira.com>
void
coverage_log(enum vlog_level level, bool suppress_dups)
{
+ static struct vlog_rate_limit rl = VLOG_RATE_LIMIT_INIT(1, 3);
size_t n_never_hit;
uint32_t hash;
size_t i;
- if (!vlog_is_enabled(THIS_MODULE, level)) {
+ if (suppress_dups
+ ? !vlog_is_enabled(THIS_MODULE, level)
+ : vlog_should_drop(THIS_MODULE, level, &rl)) {
return;
}