From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id E6F87A00BE; Tue, 29 Oct 2019 14:45:15 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id BCB241BEBF; Tue, 29 Oct 2019 14:45:15 +0100 (CET) Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by dpdk.org (Postfix) with ESMTP id 323661BEBF for ; Tue, 29 Oct 2019 14:45:14 +0100 (CET) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by fmsmga107.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 29 Oct 2019 06:45:13 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.68,244,1569308400"; d="scan'208";a="224975612" Received: from silpixa00399953.ir.intel.com (HELO silpixa00399953.ger.corp.intel.com) ([10.237.223.218]) by fmsmga004.fm.intel.com with ESMTP; 29 Oct 2019 06:45:12 -0700 From: Ciara Power To: bruce.richardson@intel.com Cc: dev@dpdk.org, david.marchand@redhat.com, Ciara Power Date: Tue, 29 Oct 2019 13:41:47 +0000 Message-Id: <20191029134147.4728-1-ciara.power@intel.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20191016131626.63781-1-ciara.power@intel.com> References: <20191016131626.63781-1-ciara.power@intel.com> Subject: [dpdk-dev] [PATCH v2] raw/ioat: enable xstats reset for ioat device X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" The rawdev xstats_reset function is now enabled. It is called when the ioat autotest completes, to reset all xstat values after they have been modified during testing. Signed-off-by: Ciara Power Reviewed-by: Bruce Richardson --- v2: Rebased onto master --- drivers/raw/ioat/ioat_rawdev.c | 38 +++++++++++++++++++++++++++++ drivers/raw/ioat/ioat_rawdev_test.c | 6 +++++ 2 files changed, 44 insertions(+) diff --git a/drivers/raw/ioat/ioat_rawdev.c b/drivers/raw/ioat/ioat_rawdev.c index 7270ad7aa..af8414b34 100644 --- a/drivers/raw/ioat/ioat_rawdev.c +++ b/drivers/raw/ioat/ioat_rawdev.c @@ -161,6 +161,43 @@ ioat_xstats_get_names(const struct rte_rawdev *dev, return RTE_DIM(xstat_names); } +static int +ioat_xstats_reset(struct rte_rawdev *dev, const uint32_t *ids, uint32_t nb_ids) +{ + struct rte_ioat_rawdev *ioat = dev->dev_private; + unsigned int i; + + if (!ids) { + ioat->enqueue_failed = 0; + ioat->enqueued = 0; + ioat->started = 0; + ioat->completed = 0; + return 0; + } + + for (i = 0; i < nb_ids; i++) { + switch (ids[i]) { + case 0: + ioat->enqueue_failed = 0; + break; + case 1: + ioat->enqueued = 0; + break; + case 2: + ioat->started = 0; + break; + case 3: + ioat->completed = 0; + break; + default: + IOAT_PMD_WARN("Invalid xstat id - cannot reset value"); + break; + } + } + + return 0; +} + extern int ioat_rawdev_test(uint16_t dev_id); static int @@ -173,6 +210,7 @@ ioat_rawdev_create(const char *name, struct rte_pci_device *dev) .dev_info_get = ioat_dev_info_get, .xstats_get = ioat_xstats_get, .xstats_get_names = ioat_xstats_get_names, + .xstats_reset = ioat_xstats_reset, .dev_selftest = ioat_rawdev_test, }; diff --git a/drivers/raw/ioat/ioat_rawdev_test.c b/drivers/raw/ioat/ioat_rawdev_test.c index e99f97ec4..c37351af2 100644 --- a/drivers/raw/ioat/ioat_rawdev_test.c +++ b/drivers/raw/ioat/ioat_rawdev_test.c @@ -223,6 +223,11 @@ ioat_rawdev_test(uint16_t dev_id) printf("\n"); rte_rawdev_stop(dev_id); + if (rte_rawdev_xstats_reset(dev_id, NULL, 0) != 0) { + printf("Error resetting xstat values\n"); + goto err; + } + rte_mempool_free(pool); free(snames); free(stats); @@ -231,6 +236,7 @@ ioat_rawdev_test(uint16_t dev_id) err: rte_rawdev_stop(dev_id); + rte_rawdev_xstats_reset(dev_id, NULL, 0); rte_mempool_free(pool); free(snames); free(stats); -- 2.17.1