compressdev: add device stats
Signed-off-by: Fiona Trahe <fiona.trahe@intel.com> Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com> Signed-off-by: Shally Verma <shally.verma@caviumnetworks.com> Signed-off-by: Ashish Gupta <ashish.gupta@caviumnetworks.com>
This commit is contained in:
parent
8f1e111539
commit
75736aa393
@ -555,6 +555,46 @@ rte_compressdev_enqueue_burst(uint8_t dev_id, uint16_t qp_id,
|
||||
dev->data->queue_pairs[qp_id], ops, nb_ops);
|
||||
}
|
||||
|
||||
int __rte_experimental
|
||||
rte_compressdev_stats_get(uint8_t dev_id, struct rte_compressdev_stats *stats)
|
||||
{
|
||||
struct rte_compressdev *dev;
|
||||
|
||||
if (!rte_compressdev_is_valid_dev(dev_id)) {
|
||||
COMPRESSDEV_LOG(ERR, "Invalid dev_id=%d", dev_id);
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
if (stats == NULL) {
|
||||
COMPRESSDEV_LOG(ERR, "Invalid stats ptr");
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
dev = &rte_comp_devices[dev_id];
|
||||
memset(stats, 0, sizeof(*stats));
|
||||
|
||||
RTE_FUNC_PTR_OR_ERR_RET(*dev->dev_ops->stats_get, -ENOTSUP);
|
||||
(*dev->dev_ops->stats_get)(dev, stats);
|
||||
return 0;
|
||||
}
|
||||
|
||||
void __rte_experimental
|
||||
rte_compressdev_stats_reset(uint8_t dev_id)
|
||||
{
|
||||
struct rte_compressdev *dev;
|
||||
|
||||
if (!rte_compressdev_is_valid_dev(dev_id)) {
|
||||
COMPRESSDEV_LOG(ERR, "Invalid dev_id=%" PRIu8, dev_id);
|
||||
return;
|
||||
}
|
||||
|
||||
dev = &rte_comp_devices[dev_id];
|
||||
|
||||
RTE_FUNC_PTR_OR_RET(*dev->dev_ops->stats_reset);
|
||||
(*dev->dev_ops->stats_reset)(dev);
|
||||
}
|
||||
|
||||
|
||||
void __rte_experimental
|
||||
rte_compressdev_info_get(uint8_t dev_id, struct rte_compressdev_info *dev_info)
|
||||
{
|
||||
|
@ -63,6 +63,19 @@ struct rte_compressdev_info {
|
||||
*/
|
||||
};
|
||||
|
||||
/** comp device statistics */
|
||||
struct rte_compressdev_stats {
|
||||
uint64_t enqueued_count;
|
||||
/**< Count of all operations enqueued */
|
||||
uint64_t dequeued_count;
|
||||
/**< Count of all operations dequeued */
|
||||
|
||||
uint64_t enqueue_err_count;
|
||||
/**< Total error count on operations enqueued */
|
||||
uint64_t dequeue_err_count;
|
||||
/**< Total error count on operations dequeued */
|
||||
};
|
||||
|
||||
/**
|
||||
* Get the compress device name given a device identifier.
|
||||
*
|
||||
@ -229,6 +242,32 @@ rte_compressdev_queue_pair_setup(uint8_t dev_id, uint16_t queue_pair_id,
|
||||
uint16_t __rte_experimental
|
||||
rte_compressdev_queue_pair_count(uint8_t dev_id);
|
||||
|
||||
|
||||
/**
|
||||
* Retrieve the general I/O statistics of a device.
|
||||
*
|
||||
* @param dev_id
|
||||
* The identifier of the device
|
||||
* @param stats
|
||||
* A pointer to a structure of type
|
||||
* *rte_compressdev_stats* to be filled with the
|
||||
* values of device counters
|
||||
* @return
|
||||
* - Zero if successful.
|
||||
* - Non-zero otherwise.
|
||||
*/
|
||||
int __rte_experimental
|
||||
rte_compressdev_stats_get(uint8_t dev_id, struct rte_compressdev_stats *stats);
|
||||
|
||||
/**
|
||||
* Reset the general I/O statistics of a device.
|
||||
*
|
||||
* @param dev_id
|
||||
* The identifier of the device.
|
||||
*/
|
||||
void __rte_experimental
|
||||
rte_compressdev_stats_reset(uint8_t dev_id);
|
||||
|
||||
/**
|
||||
* Retrieve the contextual information of a device.
|
||||
*
|
||||
|
@ -116,6 +116,27 @@ typedef void (*compressdev_stop_t)(struct rte_compressdev *dev);
|
||||
typedef int (*compressdev_close_t)(struct rte_compressdev *dev);
|
||||
|
||||
|
||||
/**
|
||||
* Function used to get statistics of a device.
|
||||
*
|
||||
* @param dev
|
||||
* Compress device
|
||||
* @param stats
|
||||
* Compress device stats to populate
|
||||
*/
|
||||
typedef void (*compressdev_stats_get_t)(struct rte_compressdev *dev,
|
||||
struct rte_compressdev_stats *stats);
|
||||
|
||||
|
||||
/**
|
||||
* Function used to reset statistics of a device.
|
||||
*
|
||||
* @param dev
|
||||
* Compress device
|
||||
*/
|
||||
typedef void (*compressdev_stats_reset_t)(struct rte_compressdev *dev);
|
||||
|
||||
|
||||
/**
|
||||
* Function used to get specific information of a device.
|
||||
*
|
||||
@ -247,6 +268,11 @@ struct rte_compressdev_ops {
|
||||
|
||||
compressdev_info_get_t dev_infos_get; /**< Get device info. */
|
||||
|
||||
compressdev_stats_get_t stats_get;
|
||||
/**< Get device statistics. */
|
||||
compressdev_stats_reset_t stats_reset;
|
||||
/**< Reset device statistics. */
|
||||
|
||||
compressdev_queue_pair_setup_t queue_pair_setup;
|
||||
/**< Set up a device queue pair. */
|
||||
compressdev_queue_pair_release_t queue_pair_release;
|
||||
|
@ -25,6 +25,8 @@ EXPERIMENTAL {
|
||||
rte_compressdev_queue_pair_setup;
|
||||
rte_compressdev_socket_id;
|
||||
rte_compressdev_start;
|
||||
rte_compressdev_stats_get;
|
||||
rte_compressdev_stats_reset;
|
||||
rte_compressdev_stop;
|
||||
rte_compressdev_stream_create;
|
||||
rte_compressdev_stream_free;
|
||||
|
Loading…
Reference in New Issue
Block a user