diff mbox series

[net-next,7/9] net: openvswitch: add likely in flow_lookup

Message ID 1569777006-7435-8-git-send-email-xiangxia.m.yue@gmail.com
State Changes Requested
Delegated to: David Miller
Headers show
Series optimize openvswitch flow looking up | expand

Commit Message

Tonghao Zhang Sept. 29, 2019, 5:10 p.m. UTC
From: Tonghao Zhang <xiangxia.m.yue@gmail.com>

The most case *index < ma->max, we add likely for performance.

Signed-off-by: Tonghao Zhang <xiangxia.m.yue@gmail.com>
---
 net/openvswitch/flow_table.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Pravin Shelar Oct. 2, 2019, 2:11 a.m. UTC | #1
On Sun, Sep 29, 2019 at 7:09 PM <xiangxia.m.yue@gmail.com> wrote:
>
> From: Tonghao Zhang <xiangxia.m.yue@gmail.com>
>
> The most case *index < ma->max, we add likely for performance.
>
> Signed-off-by: Tonghao Zhang <xiangxia.m.yue@gmail.com>
> ---
>  net/openvswitch/flow_table.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/net/openvswitch/flow_table.c b/net/openvswitch/flow_table.c
> index c8e79c1..c21fd52 100644
> --- a/net/openvswitch/flow_table.c
> +++ b/net/openvswitch/flow_table.c
> @@ -526,7 +526,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)) {

After changes from patch 5, ma->count is the limit for mask array. so
why not use ma->count here.


>                 mask = rcu_dereference_ovsl(ma->masks[*index]);
>                 if (mask) {
>                         flow = masked_flow_lookup(ti, key, mask, n_mask_hit);
> --
> 1.8.3.1
>
Tonghao Zhang Oct. 8, 2019, 3:21 a.m. UTC | #2
On Wed, Oct 2, 2019 at 10:07 AM Pravin Shelar <pshelar@ovn.org> wrote:
>
> On Sun, Sep 29, 2019 at 7:09 PM <xiangxia.m.yue@gmail.com> wrote:
> >
> > From: Tonghao Zhang <xiangxia.m.yue@gmail.com>
> >
> > The most case *index < ma->max, we add likely for performance.
> >
> > Signed-off-by: Tonghao Zhang <xiangxia.m.yue@gmail.com>
> > ---
> >  net/openvswitch/flow_table.c | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/net/openvswitch/flow_table.c b/net/openvswitch/flow_table.c
> > index c8e79c1..c21fd52 100644
> > --- a/net/openvswitch/flow_table.c
> > +++ b/net/openvswitch/flow_table.c
> > @@ -526,7 +526,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)) {
>
> After changes from patch 5, ma->count is the limit for mask array. so
> why not use ma->count here.
because we will check the mask is valid, so use the ma->count and
ma->max are ok.
but i will use the ma->count in v2.
>
> >                 mask = rcu_dereference_ovsl(ma->masks[*index]);
> >                 if (mask) {
> >                         flow = masked_flow_lookup(ti, key, mask, n_mask_hit);
> > --
> > 1.8.3.1
> >
diff mbox series

Patch

diff --git a/net/openvswitch/flow_table.c b/net/openvswitch/flow_table.c
index c8e79c1..c21fd52 100644
--- a/net/openvswitch/flow_table.c
+++ b/net/openvswitch/flow_table.c
@@ -526,7 +526,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);