From patchwork Mon Aug 19 11:18:49 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ilya Maximets X-Patchwork-Id: 1149193 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=openvswitch.org (client-ip=140.211.169.12; helo=mail.linuxfoundation.org; envelope-from=ovs-dev-bounces@openvswitch.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=samsung.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=samsung.com header.i=@samsung.com header.b="HLWFAA4Z"; dkim-atps=neutral Received: from mail.linuxfoundation.org (mail.linuxfoundation.org [140.211.169.12]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 46Bs0T22ZZz9s3Z for ; Mon, 19 Aug 2019 21:20:09 +1000 (AEST) Received: from mail.linux-foundation.org (localhost [127.0.0.1]) by mail.linuxfoundation.org (Postfix) with ESMTP id 73CCEE21; Mon, 19 Aug 2019 11:19:08 +0000 (UTC) X-Original-To: ovs-dev@openvswitch.org Delivered-To: ovs-dev@mail.linuxfoundation.org Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org [172.17.192.35]) by mail.linuxfoundation.org (Postfix) with ESMTPS id B45A0E1D for ; Mon, 19 Aug 2019 11:19:07 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from mailout2.w1.samsung.com (mailout2.w1.samsung.com [210.118.77.12]) by smtp1.linuxfoundation.org (Postfix) with ESMTPS id 3FD6C89E for ; Mon, 19 Aug 2019 11:19:07 +0000 (UTC) Received: from eucas1p2.samsung.com (unknown [182.198.249.207]) by mailout2.w1.samsung.com (KnoxPortal) with ESMTP id 20190819111905euoutp0221994911eb84223a8c7315fbce3b2509~8Tuv6Qqsn0415404154euoutp02K for ; Mon, 19 Aug 2019 11:19:05 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout2.w1.samsung.com 20190819111905euoutp0221994911eb84223a8c7315fbce3b2509~8Tuv6Qqsn0415404154euoutp02K DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1566213545; bh=0PMxrpjR9vbk2olEI4cyjeRogOsWAMmcRCDjo+RBRlM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=HLWFAA4ZruaRpVmnYuMXFq6PqSDA1SlVNSm5oYlO99dQzmmRQh0c6NZMl57xMnePb NEESoh4u+M7UEXxmYNsq2uyWQ0pGsi8OKHtpZ2hFcsfIGRO5eKtueHKBZvbV9QwfW4 ikkig1Ptqz2/O/FH7C+JbTY/je0sBtZTpGyb+ZBM= Received: from eusmges1new.samsung.com (unknown [203.254.199.242]) by eucas1p2.samsung.com (KnoxPortal) with ESMTP id 20190819111905eucas1p24cc7193e24c5786d246254a8d6be87fa~8TuvX0g9M1370313703eucas1p2i; Mon, 19 Aug 2019 11:19:05 +0000 (GMT) Received: from eucas1p1.samsung.com ( [182.198.249.206]) by eusmges1new.samsung.com (EUCPMTA) with SMTP id 1B.6E.04469.8A58A5D5; Mon, 19 Aug 2019 12:19:04 +0100 (BST) Received: from eusmtrp1.samsung.com (unknown [182.198.249.138]) by eucas1p1.samsung.com (KnoxPortal) with ESMTPA id 20190819111904eucas1p159958628868b2e325e7eb69b2b205e9d~8TuuVj66t0604106041eucas1p1a; Mon, 19 Aug 2019 11:19:04 +0000 (GMT) Received: from eusmgms2.samsung.com (unknown [182.198.249.180]) by eusmtrp1.samsung.com (KnoxPortal) with ESMTP id 20190819111903eusmtrp152e14734a9c7ae2945ee3d767e8079cd~8TuuGkrty0591705917eusmtrp1-; Mon, 19 Aug 2019 11:19:03 +0000 (GMT) X-AuditID: cbfec7f2-54fff70000001175-a4-5d5a85a80d1b Received: from eusmtip2.samsung.com ( [203.254.199.222]) by eusmgms2.samsung.com (EUCPMTA) with SMTP id 0B.FD.04117.7A58A5D5; Mon, 19 Aug 2019 12:19:03 +0100 (BST) Received: from imaximets.rnd.samsung.ru (unknown [106.109.129.180]) by eusmtip2.samsung.com (KnoxPortal) with ESMTPA id 20190819111903eusmtip28cd84f7ffbab744ad7dfd15d00362ce3~8TutmR-aD1666616666eusmtip2A; Mon, 19 Aug 2019 11:19:03 +0000 (GMT) From: Ilya Maximets To: ovs-dev@openvswitch.org Date: Mon, 19 Aug 2019 14:18:49 +0300 Message-Id: <20190819111849.5824-3-i.maximets@samsung.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190819111849.5824-1-i.maximets@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrOIsWRmVeSWpSXmKPExsWy7djPc7orWqNiDb40mVpsX9HFZnGl/Se7 xcaHZ1kt1h76wG4x99NzRoubc3ezOrB5bO7Zy+SxeM9LJo9nN/8zerzfd5XNo2/LKsYA1igu m5TUnMyy1CJ9uwSujH8H/jIXbBeqmPBXqIFxNV8XIyeHhICJxNN7D5i7GLk4hARWMEps/jqL DcL5wiix5tsiFgjnM6PEuynv2GBa+s9+YoVILGeUWP7jAlTLD0aJlU/3gVWxCehInFp9hBHE FhGQlnjd+wasg1ngIqPEzunXgRIcHMICoRK/zimA1LAIqEqcePiFBcTmFbCSeLH2FtQ2eYnV Gw4wg9icAtYSS1sWgp0kIfCaTaL1TgsLRJGLxNpzV6BsYYlXx7ewQ9gyEqcn90DF6yXut7xk hGjuYJSYfugfE0TCXmLL63PsIAcxC2hKrN+lDxF2lNi5ZhNYWEKAT+LGW0GQMDOQOWnbdGaI MK9ER5sQRLWKxO+Dy5khbCmJm+8+Q13gIfFi0SEmSPj0AW29v5BlAqP8LIRlCxgZVzGKp5YW 56anFhvmpZbrFSfmFpfmpesl5+duYgQmh9P/jn/awfj1UtIhRgEORiUe3hOqUbFCrIllxZW5 hxglOJiVRHj7DCJihXhTEiurUovy44tKc1KLDzFKc7AoifNWMzyIFhJITyxJzU5NLUgtgsky cXBKNTD2mmxP9rDb8CayS0V32uUDapFqpcYM34JEtz/Z2M5SmlDmY1wv+OC5+8zSFmemztM9 M37b3TS2OrXy2l0TSXlzvbqHD6Itbc1jg5J2/63dUZOeVqT+mSVYRn5ms8v+dfu6HylE/NP/ WP+7Z2Mga2Vs1F8doSKpULVK5l9ZBx9f6zo+h2lGrxJLcUaioRZzUXEiAG7Wm58KAwAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrOLMWRmVeSWpSXmKPExsVy+t/xe7rLW6NiDTb9N7TYvqKLzeJK+092 i40Pz7JarD30gd1i7qfnjBY35+5mdWDz2Nyzl8lj8Z6XTB7Pbv5n9Hi/7yqbR9+WVYwBrFF6 NkX5pSWpChn5xSW2StGGFkZ6hpYWekYmlnqGxuaxVkamSvp2NimpOZllqUX6dgl6Gf8O/GUu 2C5UMeGvUAPjar4uRk4OCQETif6zn1i7GLk4hASWMkp83nidCSIhJfHj1wVWCFtY4s+1LjaI om+MEue37AUrYhPQkTi1+ggjiC0iIC3xuvcNWAOzwFVGiYn7wrsYOTiEBYIlztwtAgmzCKhK nHj4hQXE5hWwknix9hYbxHx5idUbDjCD2JwC1hJLWxaC1QgB1Ux8t5R9AiPfAkaGVYwiqaXF uem5xUZ6xYm5xaV56XrJ+bmbGIGBuu3Yzy07GLveBR9iFOBgVOLhPaEaFSvEmlhWXJl7iFGC g1lJhLfPICJWiDclsbIqtSg/vqg0J7X4EKMp0FETmaVEk/OBUZRXEm9oamhuYWlobmxubGah JM7bIXAwRkggPbEkNTs1tSC1CKaPiYNTqoGxdMa/r4sP//r2+eD1rqayAI9fEWuq7rrd2/Ll 0JOmF/1+VVq77k3llz/ZOTHsc3/uw99h07gbOgQ+6i+wdq1Q7Utcfoi5Me/FQcetyY8qLvMX 2jCuT7mkdrhoYdOttMnq89N+bmjZP/H+ru031j+u2seeUjnva7Gq6KG0X6b7bf896tS1C599 WomlOCPRUIu5qDgRAHgqKPVqAgAA X-CMS-MailID: 20190819111904eucas1p159958628868b2e325e7eb69b2b205e9d X-Msg-Generator: CA X-RootMTR: 20190819111904eucas1p159958628868b2e325e7eb69b2b205e9d X-EPHeader: CA CMS-TYPE: 201P X-CMS-RootMailID: 20190819111904eucas1p159958628868b2e325e7eb69b2b205e9d References: <20190819111849.5824-1-i.maximets@samsung.com> X-Spam-Status: No, score=-7.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on smtp1.linux-foundation.org Cc: Ilya Maximets , David Marchand Subject: [ovs-dev] [PATCH v2 2/2] netdev-dpdk: Refactor vhost custom stats for extensibility. X-BeenThere: ovs-dev@openvswitch.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Sender: ovs-dev-bounces@openvswitch.org Errors-To: ovs-dev-bounces@openvswitch.org vHost interfaces currently has only one custom statistic, but there might be others in the near future. This refactoring makes the code work in the same way as it done for dpdk and afxdp stats to keep the common style over the different code places and makes it easily extensible for the new stats addition. Signed-off-by: Ilya Maximets Reviewed-by: David Marchand --- lib/netdev-dpdk.c | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/lib/netdev-dpdk.c b/lib/netdev-dpdk.c index 52ecf7576..bc20d6843 100644 --- a/lib/netdev-dpdk.c +++ b/lib/netdev-dpdk.c @@ -110,12 +110,6 @@ BUILD_ASSERT_DECL(MAX_NB_MBUF % ROUND_DOWN_POW2(MAX_NB_MBUF / MIN_NB_MBUF) BUILD_ASSERT_DECL((MAX_NB_MBUF / ROUND_DOWN_POW2(MAX_NB_MBUF / MIN_NB_MBUF)) % MP_CACHE_SZ == 0); -/* Size of vHost custom stats. */ -#define VHOST_CUSTOM_STATS_SIZE 1 - -/* Names of vHost custom stats. */ -#define VHOST_STAT_TX_RETRIES "tx_retries" - #define SOCKET0 0 /* Default size of Physical NIC RXQ */ @@ -2827,17 +2821,31 @@ netdev_dpdk_vhost_get_custom_stats(const struct netdev *netdev, struct netdev_custom_stats *custom_stats) { struct netdev_dpdk *dev = netdev_dpdk_cast(netdev); + int i; - ovs_mutex_lock(&dev->mutex); +#define VHOST_CSTATS \ + VHOST_CSTAT(tx_retries) - custom_stats->size = VHOST_CUSTOM_STATS_SIZE; +#define VHOST_CSTAT(NAME) + 1 + custom_stats->size = VHOST_CSTATS; +#undef VHOST_CSTAT custom_stats->counters = xcalloc(custom_stats->size, sizeof *custom_stats->counters); - ovs_strlcpy(custom_stats->counters[0].name, VHOST_STAT_TX_RETRIES, + i = 0; +#define VHOST_CSTAT(NAME) \ + ovs_strlcpy(custom_stats->counters[i++].name, #NAME, \ NETDEV_CUSTOM_STATS_NAME_SIZE); + VHOST_CSTATS; +#undef VHOST_CSTAT + + ovs_mutex_lock(&dev->mutex); rte_spinlock_lock(&dev->stats_lock); - custom_stats->counters[0].value = dev->tx_retries; + i = 0; +#define VHOST_CSTAT(NAME) \ + custom_stats->counters[i++].value = dev->NAME; + VHOST_CSTATS; +#undef VHOST_CSTAT rte_spinlock_unlock(&dev->stats_lock); ovs_mutex_unlock(&dev->mutex);