In the partial flow offloading datapath, mark2flow table lookup is a hot spot. "cmap_find" takes more than 20% CPU cycles in datapath. Hash map is too heavy for this case and a lighter data struct can be used for faster lookup. This patch applies a direct address table for mark2flow lookup. The throughput uplift is more than 10% in case of single flow and 20% with >1000 mega flow.
Yanqin Wei (3): lib: implement scalable direct address table for fast lookup dpif-netdev: improve partial offloding datapath by sda-table lookup tests/test-sda-table: add check test for sda-table. lib/automake.mk | 2 + lib/dpif-netdev.c | 30 ++++--- lib/sda-table.c | 166 ++++++++++++++++++++++++++++++++++ lib/sda-table.h | 126 ++++++++++++++++++++++++++ tests/automake.mk | 3 +- tests/test-sda-table.c | 197 +++++++++++++++++++++++++++++++++++++++++ 6 files changed, 510 insertions(+), 14 deletions(-) create mode 100644 lib/sda-table.c create mode 100644 lib/sda-table.h create mode 100644 tests/test-sda-table.c -- 2.17.1 _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
