[ovs-dev] [PATCH] coverage: Time out the coverage hash suppression once a day.

Simon Horman horms at verge.net.au
Sun Feb 5 22:26:26 UTC 2012


On Fri, Feb 03, 2012 at 04:38:58PM -0800, Ben Pfaff wrote:
> Otherwise coverage log messages will eventually get rotated out of the
> system logs and never reappear (before restarting a given daemon).
> 
> Bug #1452.
> Signed-off-by: Ben Pfaff <blp at nicira.com>
> ---
>  lib/coverage.c |   13 +++++++++++--
>  1 files changed, 11 insertions(+), 2 deletions(-)
> 
> diff --git a/lib/coverage.c b/lib/coverage.c
> index c8d8b70..9bf487a 100644
> --- a/lib/coverage.c
> +++ b/lib/coverage.c
> @@ -1,5 +1,5 @@
>  /*
> - * Copyright (c) 2009, 2010, 2011 Nicira Networks.
> + * Copyright (c) 2009, 2010, 2011, 2012 Nicira Networks.
>   *
>   * Licensed under the Apache License, Version 2.0 (the "License");
>   * you may not use this file except in compliance with the License.
> @@ -20,6 +20,7 @@
>  #include <stdlib.h>
>  #include "dynamic-string.h"
>  #include "hash.h"
> +#include "timeval.h"
>  #include "unixctl.h"
>  #include "util.h"
>  #include "vlog.h"
> @@ -123,12 +124,20 @@ coverage_hit(uint32_t hash)
>      static uint32_t hit[HIT_BITS / BITS_PER_WORD];
>      BUILD_ASSERT_DECL(IS_POW2(HIT_BITS));
>  
> +    static long long int next_clear = LLONG_MIN;
> +
>      unsigned int bit_index = hash & (HIT_BITS - 1);
>      unsigned int word_index = bit_index / BITS_PER_WORD;
>      unsigned int word_mask = 1u << (bit_index % BITS_PER_WORD);
>  
> +    /* Expire coverage hash xuppression once a day. */

suppression appears to be misspelt in the comment above

> +    if (time_msec() >= next_clear) {
> +        memset(hit, 0, sizeof hit);
> +        next_clear = time_msec() + 60 * 60 * 24 * 1000LL;
> +    }
> +
>      if (hit[word_index] & word_mask) {
> - return true;
> +        return true;
>      } else {
>          hit[word_index] |= word_mask;
>          return false;



More information about the dev mailing list