Hey Ethan, On 6 March 2014 13:33, Joe Stringer <joestrin...@nicira.com> 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 dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev