[ovs-dev] [PATCH] datapath: Move flow table rehashing to flow install.

Jesse Gross jesse at nicira.com
Fri Sep 6 21:10:11 UTC 2013


On Fri, Sep 6, 2013 at 1:28 PM, Pravin B Shelar <pshelar at nicira.com> wrote:
> Rather than rehashing flow table in a workqueue, we can safely
> do it at flow install.  This simplify ovs locking and reduces
> dependence on workqueue.
>
> Signed-off-by: Pravin B Shelar <pshelar at nicira.com>

It might also be good to add a comment about the possibility of the
workqueue being blocked during periods of high flow setups.

> diff --git a/datapath/datapath.c b/datapath/datapath.c
> index bb1e282..d342d2e 100644
> --- a/datapath/datapath.c
> +++ b/datapath/datapath.c
> @@ -1291,22 +1289,25 @@ static int ovs_flow_cmd_new_or_set(struct sk_buff *skb, struct genl_info *info)
>         /* Check if this is a duplicate flow */
>         flow = ovs_flow_lookup(table, &key);
>         if (!flow) {
> +               struct flow_table *new_table = ERR_PTR(-ENOMEM);

Using -ENOMEM seems a little misleading to me, maybe we could just set
it to NULL and then check for that as well below?



More information about the dev mailing list