The xstats functions can be used by all ioat devices so move them from the
ioat_rawdev.c file to ioat_common.c, and add the function prototypes to the
internal header file.
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
---
drivers/raw/ioat/ioat_common.c | 76 +++++++++++++++++++++++++++++++++
drivers/raw/ioat/ioat_private.h | 10 +++++
drivers/raw/ioat/ioat_rawdev.c | 75 --------------------------------
3 files changed, 86 insertions(+), 75 deletions(-)
@@ -4,9 +4,85 @@
#include <rte_rawdev_pmd.h>
#include <rte_memzone.h>
+#include <rte_string_fns.h>
#include "ioat_private.h"
+static const char * const xstat_names[] = {
+ "failed_enqueues", "successful_enqueues",
+ "copies_started", "copies_completed"
+};
+
+int
+ioat_xstats_get(const struct rte_rawdev *dev, const unsigned int ids[],
+ uint64_t values[], unsigned int n)
+{
+ const struct rte_ioat_rawdev *ioat = dev->dev_private;
+ unsigned int i;
+
+ for (i = 0; i < n; i++) {
+ switch (ids[i]) {
+ case 0: values[i] = ioat->xstats.enqueue_failed; break;
+ case 1: values[i] = ioat->xstats.enqueued; break;
+ case 2: values[i] = ioat->xstats.started; break;
+ case 3: values[i] = ioat->xstats.completed; break;
+ default: values[i] = 0; break;
+ }
+ }
+ return n;
+}
+
+int
+ioat_xstats_get_names(const struct rte_rawdev *dev,
+ struct rte_rawdev_xstats_name *names,
+ unsigned int size)
+{
+ unsigned int i;
+
+ RTE_SET_USED(dev);
+ if (size < RTE_DIM(xstat_names))
+ return RTE_DIM(xstat_names);
+
+ for (i = 0; i < RTE_DIM(xstat_names); i++)
+ strlcpy(names[i].name, xstat_names[i], sizeof(names[i]));
+
+ return RTE_DIM(xstat_names);
+}
+
+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) {
+ memset(&ioat->xstats, 0, sizeof(ioat->xstats));
+ return 0;
+ }
+
+ for (i = 0; i < nb_ids; i++) {
+ switch (ids[i]) {
+ case 0:
+ ioat->xstats.enqueue_failed = 0;
+ break;
+ case 1:
+ ioat->xstats.enqueued = 0;
+ break;
+ case 2:
+ ioat->xstats.started = 0;
+ break;
+ case 3:
+ ioat->xstats.completed = 0;
+ break;
+ default:
+ IOAT_PMD_WARN("Invalid xstat id - cannot reset value");
+ break;
+ }
+ }
+
+ return 0;
+}
+
int
idxd_dev_dump(struct rte_rawdev *dev, FILE *f)
{
@@ -55,6 +55,16 @@ struct idxd_rawdev {
} u;
};
+int ioat_xstats_get(const struct rte_rawdev *dev, const unsigned int ids[],
+ uint64_t values[], unsigned int n);
+
+int ioat_xstats_get_names(const struct rte_rawdev *dev,
+ struct rte_rawdev_xstats_name *names,
+ unsigned int size);
+
+int ioat_xstats_reset(struct rte_rawdev *dev, const uint32_t *ids,
+ uint32_t nb_ids);
+
extern int idxd_rawdev_create(const char *name, struct rte_device *dev,
const struct idxd_rawdev *idxd,
const struct rte_rawdev_ops *ops);
@@ -121,81 +121,6 @@ ioat_dev_info_get(struct rte_rawdev *dev, rte_rawdev_obj_t dev_info,
return 0;
}
-static const char * const xstat_names[] = {
- "failed_enqueues", "successful_enqueues",
- "copies_started", "copies_completed"
-};
-
-static int
-ioat_xstats_get(const struct rte_rawdev *dev, const unsigned int ids[],
- uint64_t values[], unsigned int n)
-{
- const struct rte_ioat_rawdev *ioat = dev->dev_private;
- unsigned int i;
-
- for (i = 0; i < n; i++) {
- switch (ids[i]) {
- case 0: values[i] = ioat->xstats.enqueue_failed; break;
- case 1: values[i] = ioat->xstats.enqueued; break;
- case 2: values[i] = ioat->xstats.started; break;
- case 3: values[i] = ioat->xstats.completed; break;
- default: values[i] = 0; break;
- }
- }
- return n;
-}
-
-static int
-ioat_xstats_get_names(const struct rte_rawdev *dev,
- struct rte_rawdev_xstats_name *names,
- unsigned int size)
-{
- unsigned int i;
-
- RTE_SET_USED(dev);
- if (size < RTE_DIM(xstat_names))
- return RTE_DIM(xstat_names);
-
- for (i = 0; i < RTE_DIM(xstat_names); i++)
- strlcpy(names[i].name, xstat_names[i], sizeof(names[i]));
-
- 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) {
- memset(&ioat->xstats, 0, sizeof(ioat->xstats));
- return 0;
- }
-
- for (i = 0; i < nb_ids; i++) {
- switch (ids[i]) {
- case 0:
- ioat->xstats.enqueue_failed = 0;
- break;
- case 1:
- ioat->xstats.enqueued = 0;
- break;
- case 2:
- ioat->xstats.started = 0;
- break;
- case 3:
- ioat->xstats.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