netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: William Tu <u9012063@gmail.com>
To: Pravin Shelar <pshelar@ovn.org>
Cc: Tonghao Zhang <xiangxia.m.yue@gmail.com>,
	ovs dev <dev@openvswitch.org>,
	"David S. Miller" <davem@davemloft.net>,
	Linux Kernel Network Developers <netdev@vger.kernel.org>
Subject: Re: [ovs-dev] [PATCH net-next v6 05/10] net: openvswitch: optimize flow-mask looking up
Date: Mon, 4 Nov 2019 05:59:27 -0800	[thread overview]
Message-ID: <CALDO+SYq2FGK5i=LDxKx8GYAEF=juMRNSXe0URb+rvGog1FYTw@mail.gmail.com> (raw)
In-Reply-To: <CAOrHB_CkZJ+w3LvUyzUZRgnFa1JnkkKY85XsjEMvXD4geAzW4g@mail.gmail.com>

On Sat, Nov 2, 2019 at 11:50 PM Pravin Shelar <pshelar@ovn.org> wrote:
>
> On Fri, Nov 1, 2019 at 7:24 AM <xiangxia.m.yue@gmail.com> wrote:
> >
> > From: Tonghao Zhang <xiangxia.m.yue@gmail.com>
> >
> > The full looking up on flow table traverses all mask array.
> > If mask-array is too large, the number of invalid flow-mask
> > increase, performance will be drop.
> >
> > One bad case, for example: M means flow-mask is valid and NULL
> > of flow-mask means deleted.
> >
> > +-------------------------------------------+
> > | M | NULL | ...                  | NULL | M|
> > +-------------------------------------------+
> >
> > In that case, without this patch, openvswitch will traverses all
> > mask array, because there will be one flow-mask in the tail. This
> > patch changes the way of flow-mask inserting and deleting, and the
> > mask array will be keep as below: there is not a NULL hole. In the
> > fast path, we can "break" "for" (not "continue") in flow_lookup
> > when we get a NULL flow-mask.
> >
> >          "break"
> >             v
> > +-------------------------------------------+
> > | M | M |  NULL |...           | NULL | NULL|
> > +-------------------------------------------+
> >
> > This patch don't optimize slow or control path, still using ma->max
> > to traverse. Slow path:
> > * tbl_mask_array_realloc
> > * ovs_flow_tbl_lookup_exact
> > * flow_mask_find
> >
> > Signed-off-by: Tonghao Zhang <xiangxia.m.yue@gmail.com>
> > Tested-by: Greg Rose <gvrose8192@gmail.com>
> > ---
> Acked-by: Pravin B Shelar <pshelar@ovn.org>

Nack to this patch.

It makes the mask cache invalid when moving the flow mask
to fill another hole.
And the penalty for miss the mask cache is larger than the
benefit of this patch (avoiding the NULL flow-mask).

William

  reply	other threads:[~2019-11-04 14:00 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-11-01 14:23 [PATCH net-next v6 00/10] optimize openvswitch flow looking up xiangxia.m.yue
2019-11-01 14:23 ` [PATCH net-next v6 01/10] net: openvswitch: add flow-mask cache for performance xiangxia.m.yue
2019-11-01 23:39   ` [ovs-dev] " William Tu
2019-11-02  8:37     ` Tonghao Zhang
2019-11-03  6:47   ` Pravin Shelar
2019-11-01 14:23 ` [PATCH net-next v6 02/10] net: openvswitch: convert mask list in mask array xiangxia.m.yue
2019-11-03  6:47   ` Pravin Shelar
2019-11-01 14:23 ` [PATCH net-next v6 03/10] net: openvswitch: shrink the mask array if necessary xiangxia.m.yue
2019-11-03  6:47   ` Pravin Shelar
2019-11-01 14:23 ` [PATCH net-next v6 04/10] net: openvswitch: optimize flow mask cache hash collision xiangxia.m.yue
2019-11-03  6:47   ` Pravin Shelar
2019-11-01 14:23 ` [PATCH net-next v6 05/10] net: openvswitch: optimize flow-mask looking up xiangxia.m.yue
2019-11-03  6:47   ` Pravin Shelar
2019-11-04 13:59     ` William Tu [this message]
2019-11-04 19:22       ` [ovs-dev] " David Miller
2019-11-04 22:10       ` Pravin Shelar
2019-11-04 22:20         ` William Tu
2019-11-01 14:23 ` [PATCH net-next v6 06/10] net: openvswitch: simplify the flow_hash xiangxia.m.yue
2019-11-03  6:47   ` Pravin Shelar
2019-11-01 14:23 ` [PATCH net-next v6 07/10] net: openvswitch: add likely in flow_lookup xiangxia.m.yue
2019-11-03  6:47   ` Pravin Shelar
2019-11-01 14:23 ` [PATCH net-next v6 08/10] net: openvswitch: fix possible memleak on destroy flow-table xiangxia.m.yue
2019-11-03  6:47   ` Pravin Shelar
2019-11-01 14:23 ` [PATCH net-next v6 09/10] net: openvswitch: don't unlock mutex when changing the user_features fails xiangxia.m.yue
2019-11-03  6:47   ` Pravin Shelar
2019-11-01 14:23 ` [PATCH net-next v6 10/10] net: openvswitch: simplify the ovs_dp_cmd_new xiangxia.m.yue
2019-11-03  6:47   ` Pravin Shelar
2019-11-04  1:22 ` [PATCH net-next v6 00/10] optimize openvswitch flow looking up David Miller

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CALDO+SYq2FGK5i=LDxKx8GYAEF=juMRNSXe0URb+rvGog1FYTw@mail.gmail.com' \
    --to=u9012063@gmail.com \
    --cc=davem@davemloft.net \
    --cc=dev@openvswitch.org \
    --cc=netdev@vger.kernel.org \
    --cc=pshelar@ovn.org \
    --cc=xiangxia.m.yue@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).