Message ID | 1571135440-24313-8-git-send-email-xiangxia.m.yue@gmail.com |
---|---|
State | Changes Requested |
Headers | show |
Series | optimize openvswitch flow looking up | expand |
On Wed, Oct 16, 2019 at 5:55 AM <xiangxia.m.yue@gmail.com> wrote: > > From: Tonghao Zhang <xiangxia.m.yue@gmail.com> > > 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> > --- LGTM Acked-by: William Tu <u9012063@gmail.com> > net/openvswitch/flow_table.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/net/openvswitch/flow_table.c b/net/openvswitch/flow_table.c > index 3e3d345..5df5182 100644 > --- a/net/openvswitch/flow_table.c > +++ b/net/openvswitch/flow_table.c > @@ -518,7 +518,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); > @@ -533,7 +533,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); > -- > 1.8.3.1 > > _______________________________________________ > dev mailing list > dev@openvswitch.org > https://mail.openvswitch.org/mailman/listinfo/ovs-dev
diff --git a/net/openvswitch/flow_table.c b/net/openvswitch/flow_table.c index 3e3d345..5df5182 100644 --- a/net/openvswitch/flow_table.c +++ b/net/openvswitch/flow_table.c @@ -518,7 +518,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); @@ -533,7 +533,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);