X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=lib%2Flibrte_bbdev%2Frte_bbdev.h;h=bec1ef65ba02dd1c4074c6e5c11aa59ed62a9079;hb=9d03815f56876f16997bc7136029842903ee842b;hp=767a1e1a296e4d216d05c04b9ee7aa61dbd8f52b;hpb=77b7b81e32e94e79d2a65b259769ae11725be8bf;p=dpdk.git diff --git a/lib/librte_bbdev/rte_bbdev.h b/lib/librte_bbdev/rte_bbdev.h index 767a1e1a29..bec1ef65ba 100644 --- a/lib/librte_bbdev/rte_bbdev.h +++ b/lib/librte_bbdev/rte_bbdev.h @@ -239,6 +239,13 @@ struct rte_bbdev_stats { uint64_t enqueue_err_count; /** Total error count on operations dequeued */ uint64_t dequeue_err_count; + /** CPU cycles consumed by the (HW/SW) accelerator device to offload + * the enqueue request to its internal queues. + * - For a HW device this is the cycles consumed in MMIO write + * - For a SW (vdev) device, this is the processing time of the + * bbdev operation + */ + uint64_t acc_offload_cycles; }; /** @@ -279,8 +286,10 @@ struct rte_bbdev_driver_info { uint32_t queue_size_lim; /** Set if device off-loads operation to hardware */ bool hardware_accelerated; - /** Max value supported by queue priority */ - uint8_t max_queue_priority; + /** Max value supported by queue priority for DL */ + uint8_t max_dl_queue_priority; + /** Max value supported by queue priority for UL */ + uint8_t max_ul_queue_priority; /** Set if device supports per-queue interrupts */ bool queue_intr_supported; /** Minimum alignment of buffers, in bytes */ @@ -457,18 +466,13 @@ extern struct rte_bbdev rte_bbdev_devices[]; * The number of operations actually enqueued (this is the number of processed * entries in the @p ops array). */ -static inline uint16_t +static inline uint16_t __rte_experimental rte_bbdev_enqueue_enc_ops(uint16_t dev_id, uint16_t queue_id, struct rte_bbdev_enc_op **ops, uint16_t num_ops) { struct rte_bbdev *dev = &rte_bbdev_devices[dev_id]; struct rte_bbdev_queue_data *q_data = &dev->data->queues[queue_id]; - uint16_t n = dev->enqueue_enc_ops(q_data, ops, num_ops); - - rte_bbdev_log_verbose("%u encode ops enqueued to dev%u,q%u.\n", - num_ops, dev_id, queue_id); - - return n; + return dev->enqueue_enc_ops(q_data, ops, num_ops); } /** @@ -492,18 +496,13 @@ rte_bbdev_enqueue_enc_ops(uint16_t dev_id, uint16_t queue_id, * The number of operations actually enqueued (this is the number of processed * entries in the @p ops array). */ -static inline uint16_t +static inline uint16_t __rte_experimental rte_bbdev_enqueue_dec_ops(uint16_t dev_id, uint16_t queue_id, struct rte_bbdev_dec_op **ops, uint16_t num_ops) { struct rte_bbdev *dev = &rte_bbdev_devices[dev_id]; struct rte_bbdev_queue_data *q_data = &dev->data->queues[queue_id]; - uint16_t n = dev->enqueue_dec_ops(q_data, ops, num_ops); - - rte_bbdev_log_verbose("%u decode ops enqueued to dev%u,q%u.\n", - num_ops, dev_id, queue_id); - - return n; + return dev->enqueue_dec_ops(q_data, ops, num_ops); } /** @@ -527,18 +526,13 @@ rte_bbdev_enqueue_dec_ops(uint16_t dev_id, uint16_t queue_id, * The number of operations actually dequeued (this is the number of entries * copied into the @p ops array). */ -static inline uint16_t +static inline uint16_t __rte_experimental rte_bbdev_dequeue_enc_ops(uint16_t dev_id, uint16_t queue_id, struct rte_bbdev_enc_op **ops, uint16_t num_ops) { struct rte_bbdev *dev = &rte_bbdev_devices[dev_id]; struct rte_bbdev_queue_data *q_data = &dev->data->queues[queue_id]; - uint16_t n = dev->dequeue_enc_ops(q_data, ops, num_ops); - - rte_bbdev_log_verbose("%u encode ops dequeued to dev%u,q%u\n", - n, dev_id, queue_id); - - return n; + return dev->dequeue_enc_ops(q_data, ops, num_ops); } /** @@ -563,18 +557,13 @@ rte_bbdev_dequeue_enc_ops(uint16_t dev_id, uint16_t queue_id, * copied into the @p ops array). */ -static inline uint16_t +static inline uint16_t __rte_experimental rte_bbdev_dequeue_dec_ops(uint16_t dev_id, uint16_t queue_id, struct rte_bbdev_dec_op **ops, uint16_t num_ops) { struct rte_bbdev *dev = &rte_bbdev_devices[dev_id]; struct rte_bbdev_queue_data *q_data = &dev->data->queues[queue_id]; - uint16_t n = dev->dequeue_dec_ops(q_data, ops, num_ops); - - rte_bbdev_log_verbose("%u decode ops dequeued to dev%u,q%u\n", - n, dev_id, queue_id); - - return n; + return dev->dequeue_dec_ops(q_data, ops, num_ops); } /** Definitions of device event types */