From patchwork Fri Sep 16 03:03:15 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Leyi Rong X-Patchwork-Id: 116375 Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 55AE8A0032; Fri, 16 Sep 2022 05:03:25 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id EA6B34021D; Fri, 16 Sep 2022 05:03:24 +0200 (CEST) Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by mails.dpdk.org (Postfix) with ESMTP id 98E9D40156 for ; Fri, 16 Sep 2022 05:03:23 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1663297403; x=1694833403; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=aiBR8yOhhJAfDnGrQTwRqJIbCjhwxMNpsu4aZ7MnHXQ=; b=lxpyd9icVFe2R20y/2dC+/ZNoGT8KTgnVW3LXj0ngBhGAm9BRVMNpW2X jfvuE6PKzXID0qhgPGwbnJHbirzeN4yyOUdQCI1Cjiri6yOHAjl51QvQi x690DCv1w49QCqcw/4pzUdLum6fFBWjDWCmadD3BvNrShCL2BddDULr6w Ac3IVNRUXal4xj0mkrN+m7lgQjHraqTW9Fpfuz+v81e+qswH2pV+HCMSF 6PjrLcY60f2VbcSxoPayj2Qo4jsphUPB3SuAL48V3eBkQq3t1KF/f1Q/f xrz2asnilT2Y6Y7uEx/yQU/OmhV3Z6p8+msz/m8kf9T/Pn8TDihg71aLE w==; X-IronPort-AV: E=McAfee;i="6500,9779,10471"; a="325166056" X-IronPort-AV: E=Sophos;i="5.93,319,1654585200"; d="scan'208";a="325166056" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 15 Sep 2022 20:03:22 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.93,319,1654585200"; d="scan'208";a="679798543" Received: from dpdk-lrong-icx-01.sh.intel.com ([10.67.119.18]) by fmsmga008.fm.intel.com with ESMTP; 15 Sep 2022 20:03:20 -0700 From: Leyi Rong To: ferruh.yigit@xilinx.com, bruce.richardson@intel.com, david.marchand@redhat.com, suanmingm@nvidia.com, yipeng1.wang@intel.com, zaoxingliu@gmail.com, sameh.gobriel@intel.com Cc: dev@dpdk.org, Leyi Rong Subject: [PATCH v5 0/2] introduce NitroSketch Mode into membership library Date: Fri, 16 Sep 2022 11:03:15 +0800 Message-Id: <20220916030317.3111820-1-leyi.rong@intel.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220810074518.1695013-1-leyi.rong@intel.com> References: <20220810074518.1695013-1-leyi.rong@intel.com> MIME-Version: 1.0 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org This patchset introduce a brand new NitroSketch Mode into membership library. This algorithm provides high-fidelity approximate measurements and appears as a promissing alternative to triditional approches such as packet sampling. --- v5: - meson.build rework. v4: - remove extra avx512 complier flags from the cflags. v3: - mark below new added APIs as "experimental": rte_member_add_byte_count() rte_member_query_count() rte_member_report_heavyhitter() - meson build file rework for potential runtime issue. v2: - attach paper link to commit log. - fix potential memory leaks in test_member.c. - build error fix according to CI build fail log. Leyi Rong (2): member: implement NitroSketch mode test/member: add functional and perf tests for sketch app/test/test_member.c | 272 ++++++++++++ app/test/test_member_perf.c | 153 ++++++- lib/member/meson.build | 49 ++- lib/member/rte_member.c | 75 ++++ lib/member/rte_member.h | 154 ++++++- lib/member/rte_member_heap.h | 424 ++++++++++++++++++ lib/member/rte_member_sketch.c | 594 ++++++++++++++++++++++++++ lib/member/rte_member_sketch.h | 97 +++++ lib/member/rte_member_sketch_avx512.c | 70 +++ lib/member/rte_member_sketch_avx512.h | 35 ++ lib/member/rte_xxh64_avx512.h | 117 +++++ lib/member/version.map | 9 + 12 files changed, 2040 insertions(+), 9 deletions(-) create mode 100644 lib/member/rte_member_heap.h create mode 100644 lib/member/rte_member_sketch.c create mode 100644 lib/member/rte_member_sketch.h create mode 100644 lib/member/rte_member_sketch_avx512.c create mode 100644 lib/member/rte_member_sketch_avx512.h create mode 100644 lib/member/rte_xxh64_avx512.h