From patchwork Tue Jul 6 13:11:39 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Ferriter, Cian" X-Patchwork-Id: 1501233 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=openvswitch.org (client-ip=140.211.166.136; helo=smtp3.osuosl.org; envelope-from=ovs-dev-bounces@openvswitch.org; receiver=) Received: from smtp3.osuosl.org (smtp3.osuosl.org [140.211.166.136]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4GK2yN56dNz9sS8 for ; Tue, 6 Jul 2021 23:11:56 +1000 (AEST) Received: from localhost (localhost [127.0.0.1]) by smtp3.osuosl.org (Postfix) with ESMTP id 664A96063D; Tue, 6 Jul 2021 13:11:54 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp3.osuosl.org ([127.0.0.1]) by localhost (smtp3.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id mm5VDxvHHS4Y; Tue, 6 Jul 2021 13:11:53 +0000 (UTC) Received: from lists.linuxfoundation.org (lf-lists.osuosl.org [IPv6:2605:bc80:3010:104::8cd3:938]) by smtp3.osuosl.org (Postfix) with ESMTPS id 998EA6059C; Tue, 6 Jul 2021 13:11:52 +0000 (UTC) Received: from lf-lists.osuosl.org (localhost [127.0.0.1]) by lists.linuxfoundation.org (Postfix) with ESMTP id 58242C0010; Tue, 6 Jul 2021 13:11:52 +0000 (UTC) X-Original-To: ovs-dev@openvswitch.org Delivered-To: ovs-dev@lists.linuxfoundation.org Received: from smtp1.osuosl.org (smtp1.osuosl.org [140.211.166.138]) by lists.linuxfoundation.org (Postfix) with ESMTP id 599D4C000E for ; Tue, 6 Jul 2021 13:11:51 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp1.osuosl.org (Postfix) with ESMTP id 3A60483495 for ; Tue, 6 Jul 2021 13:11:51 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp1.osuosl.org ([127.0.0.1]) by localhost (smtp1.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id T32VKRKuB0tP for ; Tue, 6 Jul 2021 13:11:47 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.8.0 Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by smtp1.osuosl.org (Postfix) with ESMTPS id 3E27283437 for ; Tue, 6 Jul 2021 13:11:46 +0000 (UTC) X-IronPort-AV: E=McAfee;i="6200,9189,10036"; a="206101837" X-IronPort-AV: E=Sophos;i="5.83,328,1616482800"; d="scan'208";a="206101837" Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Jul 2021 06:11:46 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.83,328,1616482800"; d="scan'208";a="486257999" Received: from silpixa00399779.ir.intel.com (HELO silpixa00399779.ger.corp.intel.com) ([10.237.222.105]) by FMSMGA003.fm.intel.com with ESMTP; 06 Jul 2021 06:11:44 -0700 From: Cian Ferriter To: ovs-dev@openvswitch.org Date: Tue, 6 Jul 2021 14:11:39 +0100 Message-Id: <20210706131150.45513-1-cian.ferriter@intel.com> X-Mailer: git-send-email 2.32.0 MIME-Version: 1.0 Cc: i.maximets@ovn.org, fbl@sysclose.org, kumar.amber@intel.com Subject: [ovs-dev] [v6 00/11] MFEX Infrastructure + Optimizations X-BeenThere: ovs-dev@openvswitch.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: ovs-dev-bounces@openvswitch.org Sender: "dev" v6 updates: - Fix non-ssl build v5 updates: - reabse onto latest DPIF v14 - use Enum for mfex impls - add pmd core id set paramter in set command - get command modified to display the pmd thread for individual mfex functions - resolved comments from Eelco, Ian, Flavio - Use Atomic to get and set miniflow implementations - removed and reduced sleep in unit tests - fixed scalar miniflow perf degradation v4 updates: - rebase on to latest DPIF v13 - fix fuzzy.py script with random mac/ip v3 updates: - rebase on to latest DPIF v12 - add additonal AVX512 traffic profiles for tcp and vlan - add new command line for study function to add packet count - add unit tests for fuzzy testing and auto-validation of mfex - add mfex option hit stats to perf-show command v2 updates: - rebase on to latest DPIF v11 This patchset introduces miniflow extract Infrastructure changes which allows user to choose different type of ISA based optimized miniflow extract variants which can be user choosen or set based on packets studies automatically by OVS using different commands. The Infrastructure also provides a way to check the correctness of different ISA optimized miniflow extract variants against the scalar version. This Patchset depends on the DPIF patchsets : http://patchwork.ozlabs.org/project/openvswitch/list/?series=251534 Harry van Haaren (4): dpif/stats: add miniflow extract opt hits counter dpdk: add additional CPU ISA detection strings dpif-netdev/mfex: Add AVX512 based optimized miniflow extract dpif-netdev/mfex: add more AVX512 traffic profiles Kumar Amber (7): dpif-netdev: Add command line and function pointer for miniflow extract dpif-netdev: Add auto validation function for miniflow extract dpif-netdev: Add study function to select the best mfex function docs/dpdk/bridge: add miniflow extract section. dpif-netdev: Add configure to enable autovalidator at build time. dpif-netdev: Add packet count and core id paramters for study test/sytem-dpdk: Add unit test for mfex autovalidator Documentation/topics/dpdk/bridge.rst | 140 +++++++ NEWS | 12 +- acinclude.m4 | 16 + configure.ac | 1 + lib/automake.mk | 4 + lib/dpdk.c | 2 + lib/dpif-netdev-avx512.c | 34 +- lib/dpif-netdev-extract-avx512.c | 598 +++++++++++++++++++++++++++ lib/dpif-netdev-extract-study.c | 145 +++++++ lib/dpif-netdev-perf.c | 3 + lib/dpif-netdev-perf.h | 1 + lib/dpif-netdev-private-extract.c | 373 +++++++++++++++++ lib/dpif-netdev-private-extract.h | 179 ++++++++ lib/dpif-netdev-private-thread.h | 8 + lib/dpif-netdev-unixctl.man | 1 + lib/dpif-netdev.c | 210 +++++++++- tests/automake.mk | 5 + tests/mfex_fuzzy.py | 32 ++ tests/pcap/mfex_test | Bin 0 -> 416 bytes tests/pmd.at | 6 +- tests/system-dpdk.at | 46 +++ 21 files changed, 1803 insertions(+), 13 deletions(-) create mode 100644 lib/dpif-netdev-extract-avx512.c create mode 100644 lib/dpif-netdev-extract-study.c create mode 100644 lib/dpif-netdev-private-extract.c create mode 100644 lib/dpif-netdev-private-extract.h create mode 100755 tests/mfex_fuzzy.py create mode 100644 tests/pcap/mfex_test