timeval: Only log poll intervals longer than 50 ms.
authorBen Pfaff <blp@nicira.com>
Mon, 28 Mar 2011 20:43:32 +0000 (13:43 -0700)
committerBen Pfaff <blp@nicira.com>
Wed, 30 Mar 2011 18:31:16 +0000 (11:31 -0700)
When poll interval-based logging was introduced a long time, we were
actively interested in looking at almost every long poll interval.  But
these days, with OVS working rather well, with pretty good latency, most
of the messages are red herrings that bother some administrators and
provoke false reports.  So this commit suppresses all but the most
egregious long poll intervals that may in fact be worth looking at.

NIC-366.

lib/timeval.c

index d24ba03f794a57dc4904291f304d6aecee5b6a0b..84c90f36ce09df0247bf1b77e0904ed8fdbaaf81 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2009, 2010 Nicira Networks.
+ * Copyright (c) 2008, 2009, 2010, 2011 Nicira Networks.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -409,8 +409,9 @@ log_poll_interval(long long int last_wakeup, const struct rusage *last_rusage)
     now = time_msec();
     interval = MIN(10000, now - last_wakeup) << 4;
 
-    /* Warn if we took too much time between polls. */
-    if (n_samples > 10 && interval > mean_interval * 8) {
+    /* 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) {
         struct rusage rusage;
 
         getrusage(RUSAGE_SELF, &rusage);