From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail.elyzion.net (fob.gandi.net [217.70.181.1]) by dpdk.org (Postfix) with ESMTP id E79B5C322 for ; Thu, 9 Jun 2016 02:54:05 +0200 (CEST) Received: from nikita (uid 1001) (envelope-from nikita@elyzion.net) id 5c078 by mail.elyzion.net (DragonFly Mail Agent v0.10); Thu, 09 Jun 2016 02:54:03 +0200 From: Nikita Kozlov To: dev@dpdk.org Date: Thu, 9 Jun 2016 02:53:51 +0200 Message-Id: <1465433634-6667-1-git-send-email-nikita@elyzion.net> X-Mailer: git-send-email 2.8.1 Subject: [dpdk-dev] [PATCH 0/3] lpm6: speed improvement on delete rule X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Jun 2016 00:54:06 -0000 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. Nikita Kozlov (3): lpm6 speed inmprovement on delete rule librte_eal: Import FreeBSD sys/tree.h into librte_eal/common test_lpm6: make test_lpm6* compatible with the new rte_lpm6.c lib app/test/test_lpm6.c | 131 ++--- app/test/test_lpm6_perf.c | 5 +- lib/librte_eal/common/Makefile | 2 +- lib/librte_eal/common/include/sys/tree.h | 801 +++++++++++++++++++++++++++++++ lib/librte_lpm/Makefile | 2 +- lib/librte_lpm/rte_lpm6.c | 576 ++++++++++++++++------ lib/librte_lpm/rte_lpm6.h | 49 +- lib/librte_lpm/rte_lpm_version.map | 12 + lib/librte_table/rte_table_lpm_ipv6.c | 7 +- 9 files changed, 1348 insertions(+), 237 deletions(-) create mode 100644 lib/librte_eal/common/include/sys/tree.h -- 2.8.1