net: openvswitch: add likely in flow_lookup
authorTonghao Zhang <xiangxia.m.yue@gmail.com>
Fri, 1 Nov 2019 14:23:51 +0000 (22:23 +0800)
committerDavid S. Miller <davem@davemloft.net>
Mon, 4 Nov 2019 01:18:03 +0000 (17:18 -0800)
The most case *index < ma->max, and flow-mask is not NULL.
We add un/likely for performance.

Signed-off-by: Tonghao Zhang <xiangxia.m.yue@gmail.com>
Tested-by: Greg Rose <gvrose8192@gmail.com>
Acked-by: William Tu <u9012063@gmail.com>
Acked-by: Pravin B Shelar <pshelar@ovn.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/openvswitch/flow_table.c

index 96757e2..9f5a06e 100644 (file)
@@ -519,7 +519,7 @@ static struct sw_flow *flow_lookup(struct flow_table *tbl,
        struct sw_flow_mask *mask;
        int i;
 
-       if (*index < ma->max) {
+       if (likely(*index < ma->max)) {
                mask = rcu_dereference_ovsl(ma->masks[*index]);
                if (mask) {
                        flow = masked_flow_lookup(ti, key, mask, n_mask_hit);
@@ -534,7 +534,7 @@ static struct sw_flow *flow_lookup(struct flow_table *tbl,
                        continue;
 
                mask = rcu_dereference_ovsl(ma->masks[i]);
-               if (!mask)
+               if (unlikely(!mask))
                        break;
 
                flow = masked_flow_lookup(ti, key, mask, n_mask_hit);