X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=lib%2Fcoverage.c;h=92bc2b891184a34dea01cbbf9698214c63c00390;hb=da0603cf278a9f505dc2988602ec0071c771dd2e;hp=e86aa0299464e4684afda1fbd50fa6bb224b366d;hpb=f5c6854a73cb6242297e3aac02ccf2d6a22876b0;p=openvswitch diff --git a/lib/coverage.c b/lib/coverage.c index e86aa029..92bc2b89 100644 --- a/lib/coverage.c +++ b/lib/coverage.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2009 Nicira Networks. + * Copyright (c) 2009, 2010 Nicira Networks. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -30,24 +30,16 @@ 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 OVS_UNUSED) { coverage_log(VLL_WARN, false); unixctl_command_reply(conn, 200, NULL); } -static void -coverage_unixctl_clear(struct unixctl_conn *conn, const char *args UNUSED) -{ - coverage_clear(); - unixctl_command_reply(conn, 200, NULL); -} - void coverage_init(void) { unixctl_command_register("coverage/log", coverage_unixctl_log); - unixctl_command_register("coverage/clear", coverage_unixctl_clear); } /* Sorts coverage counters in descending order by count, within equal counts @@ -130,7 +122,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) { @@ -142,8 +137,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);