All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ido Schimmel <idosch@idosch.org>
To: netdev@vger.kernel.org
Cc: davem@davemloft.net, kuba@kernel.org, jiri@nvidia.com,
	dsahern@gmail.com, mlxsw@nvidia.com,
	Ido Schimmel <idosch@nvidia.com>
Subject: [PATCH net-next 0/5] mlxsw: Update adjacency index more efficiently
Date: Wed, 25 Nov 2020 21:35:00 +0200	[thread overview]
Message-ID: <20201125193505.1052466-1-idosch@idosch.org> (raw)

From: Ido Schimmel <idosch@nvidia.com>

The device supports an operation that allows the driver to issue one
request to update the adjacency index for all the routes in a given
virtual router (VR) from old index and size to new ones. This is useful
in case the configuration of a certain nexthop group is updated and its
adjacency index changes.

Currently, the driver does not use this operation in an efficient
manner. It iterates over all the routes using the nexthop group and
issues an update request for the VR if it is not the same as the
previous VR.

Instead, this patch set tracks the VRs in which the nexthop group is
used and issues one request for each VR.

Example:

8k IPv6 routes were added in an alternating manner to two VRFs. All the
routes are using the same nexthop object ('nhid 1').

Before:

# perf stat -e devlink:devlink_hwmsg --filter='incoming==0' -- ip nexthop replace id 1 via 2001:db8:1::2 dev swp3

 Performance counter stats for 'ip nexthop replace id 1 via 2001:db8:1::2 dev swp3':

            16,385      devlink:devlink_hwmsg

       4.255933213 seconds time elapsed

       0.000000000 seconds user
       0.666923000 seconds sys

Number of EMAD transactions corresponds to number of routes using the
nexthop group.

After:

# perf stat -e devlink:devlink_hwmsg --filter='incoming==0' -- ip nexthop replace id 1 via 2001:db8:1::2 dev swp3

 Performance counter stats for 'ip nexthop replace id 1 via 2001:db8:1::2 dev swp3':

                 3      devlink:devlink_hwmsg

       0.077655094 seconds time elapsed

       0.000000000 seconds user
       0.076698000 seconds sys

Number of EMAD transactions corresponds to number of VRFs / VRs.

Patch set overview:

Patch #1 is a fix for a bug introduced in previous submission. Detected
by Coverity.

Patches #2 and #3 are preparations.

Patch #4 tracks the VRs a nexthop group is member of.

Patch #5 uses the membership tracking from the previous patch to issue
one update request per each VR.

Ido Schimmel (5):
  mlxsw: spectrum_router: Fix error handling issue
  mlxsw: spectrum_router: Pass virtual router parameters directly
    instead of pointer
  mlxsw: spectrum_router: Rollback virtual router adjacency pointer
    update
  mlxsw: spectrum_router: Track nexthop group virtual router membership
  mlxsw: spectrum_router: Update adjacency index more efficiently

 .../ethernet/mellanox/mlxsw/spectrum_router.c | 203 ++++++++++++++++--
 1 file changed, 186 insertions(+), 17 deletions(-)

-- 
2.28.0


             reply	other threads:[~2020-11-25 19:35 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-11-25 19:35 Ido Schimmel [this message]
2020-11-25 19:35 ` [PATCH net-next 1/5] mlxsw: spectrum_router: Fix error handling issue Ido Schimmel
2020-11-25 19:35 ` [PATCH net-next 2/5] mlxsw: spectrum_router: Pass virtual router parameters directly instead of pointer Ido Schimmel
2020-11-25 19:35 ` [PATCH net-next 3/5] mlxsw: spectrum_router: Rollback virtual router adjacency pointer update Ido Schimmel
2020-11-25 19:35 ` [PATCH net-next 4/5] mlxsw: spectrum_router: Track nexthop group virtual router membership Ido Schimmel
2020-11-25 19:35 ` [PATCH net-next 5/5] mlxsw: spectrum_router: Update adjacency index more efficiently Ido Schimmel
2020-11-25 22:53 ` [PATCH net-next 0/5] mlxsw: " David Ahern
2020-11-28  1:30 ` patchwork-bot+netdevbpf

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=20201125193505.1052466-1-idosch@idosch.org \
    --to=idosch@idosch.org \
    --cc=davem@davemloft.net \
    --cc=dsahern@gmail.com \
    --cc=idosch@nvidia.com \
    --cc=jiri@nvidia.com \
    --cc=kuba@kernel.org \
    --cc=mlxsw@nvidia.com \
    --cc=netdev@vger.kernel.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.