On Tue, Apr 22, 2014 at 04:54:24PM +1200, Joe Stringer wrote:
> From: Ethan Jackson <et...@nicira.com>
> 
> Previously, we had a separate flow_dumper thread that fetched flows from
> the datapath to distribute to revalidator threads. This patch takes the
> logic for dumping and pushes it into the revalidator threads, resulting
> in simpler code with similar performance to the current code.
> 
> One thread, the "leader", is responsible for beginning and ending each
> flow dump, maintaining the flow_limit, and checking whether the
> revalidator threads need to exit. All revalidator threads dump,
> revalidate, delete datapath flows and garbage collect ukeys.
> 
> Co-authored-by: Joe Stringer <joestrin...@nicira.com>
> Signed-off-by: Joe Stringer <joestrin...@nicira.com>

Here in the definition of struct udpif, I would mention that there are
n_revalidators member of 'ukeys'.  Otherwise the casual reader might
guess that there was only one:
> +    /* During the flow dump phase, revalidators insert into these with a 
> random
> +     * distribution. During the garbage collection phase, each revalidator
> +     * takes care of garbage collecting one of these hmaps. */
> +    struct {
> +        struct ovs_mutex mutex;        /* Guards the following. */
> +        struct hmap hmap OVS_GUARDED;  /* Datapath flow keys. */
> +    } *ukeys;

In the definition of struct udpif_key, the synchronization of most of
the members is pretty clear, except for 'xcache'.

Acked-by: Ben Pfaff <b...@nicira.com>
_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to