bbdev: split queue groups
Splitting Queue Groups into UL/DL Groups in Turbo Software Driver. They are independent for Decode/Encode. Release note updated accordingly. Signed-off-by: Kamil Chalupnik <kamilx.chalupnik@intel.com> Acked-by: Amr Mokhtar <amr.mokhtar@intel.com>
This commit is contained in:
parent
864edd6935
commit
58a695c6ec
@ -273,7 +273,7 @@ test_bbdev_configure_stop_queue(void)
|
||||
|
||||
/* Valid queue configuration */
|
||||
ts_params->qconf.queue_size = info.drv.queue_size_lim;
|
||||
ts_params->qconf.priority = info.drv.max_queue_priority;
|
||||
ts_params->qconf.priority = info.drv.max_ul_queue_priority;
|
||||
|
||||
/* Device - started; queue - started */
|
||||
rte_bbdev_start(dev_id);
|
||||
@ -413,14 +413,7 @@ test_bbdev_configure_invalid_queue_configure(void)
|
||||
ts_params->qconf.queue_size);
|
||||
|
||||
ts_params->qconf.queue_size = info.drv.queue_size_lim;
|
||||
ts_params->qconf.priority = info.drv.max_queue_priority + 1;
|
||||
TEST_ASSERT_FAIL(rte_bbdev_queue_configure(dev_id, queue_id,
|
||||
&ts_params->qconf),
|
||||
"Failed test for rte_bbdev_queue_configure: "
|
||||
"invalid value qconf.queue_size: %u",
|
||||
ts_params->qconf.queue_size);
|
||||
|
||||
ts_params->qconf.priority = info.drv.max_queue_priority;
|
||||
ts_params->qconf.priority = info.drv.max_ul_queue_priority;
|
||||
queue_id = info.num_queues;
|
||||
TEST_ASSERT_FAIL(rte_bbdev_queue_configure(dev_id, queue_id,
|
||||
&ts_params->qconf),
|
||||
|
@ -400,6 +400,12 @@ ABI Changes
|
||||
``rte_bbdev_op_cap_turbo_dec`` structure to specify maximal LLR (likelihood
|
||||
ratio) absolute value.
|
||||
|
||||
* **BBdev Queue Groups split into UL/DL Groups**
|
||||
|
||||
Queue Groups have been split into UL/DL Groups in Turbo Software Driver.
|
||||
They are independent for Decode/Encode. ``rte_bbdev_driver_info`` reflects
|
||||
introduced changes.
|
||||
|
||||
|
||||
Removed Items
|
||||
-------------
|
||||
|
@ -71,7 +71,8 @@ info_get(struct rte_bbdev *dev, struct rte_bbdev_driver_info *dev_info)
|
||||
dev_info->max_num_queues = internals->max_nb_queues;
|
||||
dev_info->queue_size_lim = RTE_BBDEV_QUEUE_SIZE_LIMIT;
|
||||
dev_info->hardware_accelerated = false;
|
||||
dev_info->max_queue_priority = 0;
|
||||
dev_info->max_dl_queue_priority = 0;
|
||||
dev_info->max_ul_queue_priority = 0;
|
||||
dev_info->default_queue_conf = default_queue_conf;
|
||||
dev_info->capabilities = bbdev_capabilities;
|
||||
dev_info->cpu_flag_reqs = NULL;
|
||||
|
@ -175,7 +175,8 @@ info_get(struct rte_bbdev *dev, struct rte_bbdev_driver_info *dev_info)
|
||||
dev_info->max_num_queues = internals->max_nb_queues;
|
||||
dev_info->queue_size_lim = RTE_BBDEV_QUEUE_SIZE_LIMIT;
|
||||
dev_info->hardware_accelerated = false;
|
||||
dev_info->max_queue_priority = 0;
|
||||
dev_info->max_dl_queue_priority = 0;
|
||||
dev_info->max_ul_queue_priority = 0;
|
||||
dev_info->default_queue_conf = default_queue_conf;
|
||||
dev_info->capabilities = bbdev_capabilities;
|
||||
dev_info->cpu_flag_reqs = &cpu_flag;
|
||||
|
@ -495,11 +495,20 @@ rte_bbdev_queue_configure(uint16_t dev_id, uint16_t queue_id,
|
||||
conf->queue_size, queue_id, dev_id);
|
||||
return -EINVAL;
|
||||
}
|
||||
if (conf->priority > dev_info.max_queue_priority) {
|
||||
if (conf->op_type == RTE_BBDEV_OP_TURBO_DEC &&
|
||||
conf->priority > dev_info.max_ul_queue_priority) {
|
||||
rte_bbdev_log(ERR,
|
||||
"Priority (%u) of queue %u of bdev %u must be <= %u",
|
||||
conf->priority, queue_id, dev_id,
|
||||
dev_info.max_queue_priority);
|
||||
dev_info.max_ul_queue_priority);
|
||||
return -EINVAL;
|
||||
}
|
||||
if (conf->op_type == RTE_BBDEV_OP_TURBO_ENC &&
|
||||
conf->priority > dev_info.max_dl_queue_priority) {
|
||||
rte_bbdev_log(ERR,
|
||||
"Priority (%u) of queue %u of bdev %u must be <= %u",
|
||||
conf->priority, queue_id, dev_id,
|
||||
dev_info.max_dl_queue_priority);
|
||||
return -EINVAL;
|
||||
}
|
||||
}
|
||||
|
@ -281,8 +281,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 */
|
||||
|
Loading…
x
Reference in New Issue
Block a user