[ovs-dev] [PATCH v3] lib/dpif-netdev: Integrate megaflow classifier.

Alex Wang alexw at nicira.com
Fri Oct 17 06:09:05 UTC 2014


Thx for the revision,


> +/* Removes 'rule' from 'cls', also destructing the 'rule'. */
> +static void
> +dpcls_remove(struct dpcls *cls, struct dpcls_rule *rule)
> +{
> +    struct dpcls_subtable *subtable;
> +
> +    ovs_assert(rule->mask);
> +
> +    INIT_CONTAINER(subtable, rule->mask, mask);
> +
> +    if (cmap_remove(&subtable->rules, &rule->cmap_node, rule->flow.hash)
> +        == 0) {
> +        dpcls_destroy_subtable(cls, subtable);
> +    }
> +
> +    rule->mask = NULL;
> +}
>


The assignment here caused a segfault in test, since there could be pmd
threads referring to the flow when dpcls_remove() is called.  We should not
reset the pointer.


32 UDP flows Spirent test showed no observable improvement but let's
wait for the per-pmd-thread classifier/flow-table~

Otherwise, all tested and looked good~

Acked-by: Alex Wang <alexw at nicira.com>



More information about the dev mailing list