X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=lib%2Fcoverage.c;h=8b5e9d9c63ac7d0c4c1eacbdb1050ce567561e78;hb=0fec26b00be202f828193a66ed35c842389588f4;hp=6f805e9eacd44b2c9be0fe825708d5629e55bcc7;hpb=67ca9e6d90808f22332cf475ad01e01bf5d46c4f;p=openvswitch diff --git a/lib/coverage.c b/lib/coverage.c index 6f805e9e..8b5e9d9c 100644 --- a/lib/coverage.c +++ b/lib/coverage.c @@ -30,7 +30,8 @@ static unsigned int epoch; static void -coverage_unixctl_log(struct unixctl_conn *conn, const char *args UNUSED) +coverage_unixctl_log(struct unixctl_conn *conn, const char *args UNUSED, + void *aux UNUSED) { coverage_log(VLL_WARN, false); unixctl_command_reply(conn, 200, NULL); @@ -39,7 +40,7 @@ coverage_unixctl_log(struct unixctl_conn *conn, const char *args UNUSED) void coverage_init(void) { - unixctl_command_register("coverage/log", coverage_unixctl_log); + unixctl_command_register("coverage/log", coverage_unixctl_log, NULL); } /* Sorts coverage counters in descending order by count, within equal counts @@ -122,7 +123,10 @@ coverage_log_counter(enum vlog_level level, const struct coverage_counter *c) } /* Logs the coverage counters at the given vlog 'level'. If - * 'suppress_dups' is true, then duplicate events are not displayed. */ + * 'suppress_dups' is true, then duplicate events are not displayed. + * Care should be taken in the value used for 'level'. Depending on the + * configuration, syslog can write changes synchronously, which can + * cause the coverage messages to take several seconds to write. */ void coverage_log(enum vlog_level level, bool suppress_dups) { @@ -134,8 +138,8 @@ coverage_log(enum vlog_level level, bool suppress_dups) return; } + hash = coverage_hash(); if (suppress_dups) { - hash = coverage_hash(); if (coverage_hit(hash)) { VLOG(level, "Skipping details of duplicate event coverage for " "hash=%08"PRIx32" in epoch %u", hash, epoch);