Hey Ben,

Could you help look at this patch when you are available?

Thx,
Alex Wang,

On Fri, Sep 19, 2014 at 1:32 PM, Alex Wang <al...@nicira.com> wrote:

> This commit adds a log message to notify the excessive backlog
> for jsonrpc.  Expectedly, this message should never be printed.
>
> Signed-off-by: Alex Wang <al...@nicira.com>
>
> ---
> PATCH -> V2:
> - change the log level to INFO and use rate-limiter.
> - avoid calling list_size().
> ---
>  lib/jsonrpc.c |   10 ++++++++++
>  1 file changed, 10 insertions(+)
>
> diff --git a/lib/jsonrpc.c b/lib/jsonrpc.c
> index 0841ad8..a9f6a2a 100644
> --- a/lib/jsonrpc.c
> +++ b/lib/jsonrpc.c
> @@ -47,6 +47,7 @@ struct jsonrpc {
>
>      /* Output. */
>      struct list output;         /* Contains "struct ofpbuf"s. */
> +    size_t output_count;        /* Number of elements in "output". */
>      size_t backlog;
>  };
>
> @@ -124,6 +125,7 @@ jsonrpc_run(struct jsonrpc *rpc)
>              ofpbuf_pull(buf, retval);
>              if (!ofpbuf_size(buf)) {
>                  list_remove(&buf->list_node);
> +                rpc->output_count--;
>                  ofpbuf_delete(buf);
>              }
>          } else {
> @@ -257,8 +259,15 @@ jsonrpc_send(struct jsonrpc *rpc, struct jsonrpc_msg
> *msg)
>      ofpbuf_use(buf, s, length);
>      ofpbuf_set_size(buf, length);
>      list_push_back(&rpc->output, &buf->list_node);
> +    rpc->output_count++;
>      rpc->backlog += length;
>
> +    if (rpc->output_count >= 50) {
> +        VLOG_INFO_RL(&rl, "excessive sending backlog, jsonrpc: %s, num of"
> +                     " msgs: %"PRIuSIZE", backlog: %"PRIuSIZE".",
> rpc->name,
> +                     rpc->output_count, rpc->backlog);
> +    }
> +
>      if (rpc->backlog == length) {
>          jsonrpc_run(rpc);
>      }
> @@ -496,6 +505,7 @@ jsonrpc_cleanup(struct jsonrpc *rpc)
>
>      ofpbuf_list_delete(&rpc->output);
>      rpc->backlog = 0;
> +    rpc->output_count = 0;
>  }
>
>  static struct jsonrpc_msg *
> --
> 1.7.9.5
>
>
_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to