DPDK patches and discussions
 help / color / mirror / Atom feed
From: Nikita Kozlov <nikita@elyzion.net>
To: dev@dpdk.org
Subject: [dpdk-dev] [PATCH v2 0/2] lpm6: speed improvement on delete rule
Date: Thu, 25 Aug 2016 00:59:06 +0200	[thread overview]
Message-ID: <20160824225908.16078-1-nikita@elyzion.net> (raw)
In-Reply-To: <1465433634-6667-1-git-send-email-nikita@elyzion.net>

This serie of pathes focus on improving the speed of deleting rules in lpm6.

It also contains some other improvement like having a dynamic number of
rules in lpm6 and increasing the lpm6 nexthop size to 16bit for matching
the nexthop size in lpm4.

The performances improvement can be seen by running test_lpm6_perf but
because of the limited number of rules added (1000) the improvement seen is
just about a x10 with this test.

For testing it further we have tested it with a full ipv6 bgp view which 
represent 29296 routes in our test:
* With the dpdk 16.04 it tooks an average of 8.46095e+09 cycles to delete a rule
(calculated with mesuring rte_rdtsc before and after the delete, the
average is calculated by the first 10 delete, it represents several
seconds on a E5-2650 v2)
* With the patch it tooks 10077.1 cycles (same number of deleted rules,
same machine, same rules inserted) for the same test.

This patch was written in collaboration with Baptiste Daroussin from Gandi.

Changes since V1:
- use system bsd-tree.h
- fix a bug when valid_group field was overwritten 

Nikita Kozlov (2):
  lpm6: speed inmprovement on delete rule
  test_lpm6: make test_lpm6* compatible with the new rte_lpm6.c lib

 app/test/test_lpm6.c                  | 244 +++++--------
 app/test/test_lpm6_perf.c             |   6 +-
 lib/librte_lpm/Makefile               |   2 +-
 lib/librte_lpm/rte_lpm6.c             | 626 +++++++++++++++++++++++++---------
 lib/librte_lpm/rte_lpm6.h             |  50 ++-
 lib/librte_lpm/rte_lpm_version.map    |  12 +
 lib/librte_table/rte_table_lpm_ipv6.c |   7 +-
 7 files changed, 609 insertions(+), 338 deletions(-)

-- 
2.9.2

  parent reply	other threads:[~2016-08-24 22:59 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-06-09  0:53 [dpdk-dev] [PATCH 0/3] " Nikita Kozlov
2016-06-09  0:53 ` [dpdk-dev] [PATCH 1/3] lpm6 speed inmprovement " Nikita Kozlov
2016-06-09  0:53 ` [dpdk-dev] [PATCH 2/3] librte_eal: Import FreeBSD sys/tree.h into librte_eal/common Nikita Kozlov
2016-06-09  0:58   ` Stephen Hemminger
2016-06-09  7:25     ` Thomas Monjalon
2016-06-09 14:54     ` Nikita Kozlov
2016-06-09 15:14       ` Thomas Monjalon
2016-06-09  0:53 ` [dpdk-dev] [PATCH 3/3] test_lpm6: make test_lpm6* compatible with the new rte_lpm6.c lib Nikita Kozlov
2016-08-24 22:59 ` Nikita Kozlov [this message]
2016-09-16 13:15   ` [dpdk-dev] [PATCH v2 0/2] lpm6: speed improvement on delete rule Nikita Kozlov
2016-12-23  6:07     ` Paras Kumar
2017-02-22 15:23     ` Bruce Richardson
2016-08-24 22:59 ` [dpdk-dev] [PATCH v2 1/2] lpm6: speed inmprovement " Nikita Kozlov
2016-08-24 22:59 ` [dpdk-dev] [PATCH v2 2/2] test_lpm6: make test_lpm6* compatible with the new rte_lpm6.c lib Nikita Kozlov

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=20160824225908.16078-1-nikita@elyzion.net \
    --to=nikita@elyzion.net \
    --cc=dev@dpdk.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 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).