Hey Ethan,
On 6 March 2014 13:33, Joe Stringer <[email protected]> wrote:
> static void
> -revalidate_udumps(struct revalidator *revalidator, struct list *udumps)
> +revalidate(struct revalidator *revalidator)
> {
> struct udpif *udpif = revalidator->udpif;
>
> struct dump_op ops[REVALIDATE_MAX_BATCH];
> - struct udpif_flow_dump *udump, *next_udump;
> - size_t n_ops, n_flows;
> + const struct nlattr *key, *mask, *actions;
> + size_t key_len, mask_len, actions_len;
> + const struct dpif_flow_stats *stats;
> + long long int now;
> unsigned int flow_limit;
> - long long int max_idle;
> - bool must_del;
> + size_t n_ops;
> + void *state;
>
> + n_ops = 0;
> + now = time_msec();
> atomic_read(&udpif->flow_limit, &flow_limit);
>
> - n_flows = udpif_get_n_flows(udpif);
> -
> - must_del = false;
> - max_idle = MAX_IDLE;
> - if (n_flows > flow_limit) {
> - must_del = n_flows > 2 * flow_limit;
> - max_idle = 100;
> - }
> -
> - n_ops = 0;
> - LIST_FOR_EACH_SAFE (udump, next_udump, list_node, udumps) {
> - long long int used, now;
> + dpif_flow_dump_state_init(udpif->dpif, &state);
> + while (dpif_flow_dump_next(&udpif->dump, state, &key, &key_len, &mask,
> + &mask_len, &actions, &actions_len,
> &stats)) {
>
Above, the current version of this "Remove the flow dumper thread" patch
removes the code to modify the flow limit and max_idle. I was trying to
remember why this is---whether it was a deliberate omission or perhaps I've
introduced it along the way as I rebased.
I don't have access to a test setup right now, so can't easily observe the
behaviour with/without this snippet. I suspect it would change the
behaviour significantly when around the flow_limit, but it's not obvious to
me that the behaviour is more desirable with this limit/idle code, or
without. I believe that all of my previous testing would have been without.
Do you remember why this is removed?
_______________________________________________
dev mailing list
[email protected]
http://openvswitch.org/mailman/listinfo/dev