[PATCH v1 1/2] bbdev: add new function to dump debug information

Maxime Coquelin maxime.coquelin at redhat.com
Thu Aug 29 10:08:33 CEST 2024



On 7/2/24 20:55, Chautru, Nicolas wrote:
> Hi Hemant,
> 
>> -----Original Message-----
>> From: Hemant Agrawal <hemant.agrawal at oss.nxp.com>
>> Sent: Tuesday, July 2, 2024 3:54 AM
>> To: Chautru, Nicolas <nicolas.chautru at intel.com>; dev at dpdk.org;
>> maxime.coquelin at redhat.com
>> Cc: hemant.agrawal at nxp.com; Marchand, David
>> <david.marchand at redhat.com>; Vargas, Hernan
>> <hernan.vargas at intel.com>
>> Subject: Re: [PATCH v1 1/2] bbdev: add new function to dump debug
>> information
>>
>> Hi Nicolas,
>>
>>       Few comments inline.
>>
>> On 02-07-2024 04:04, Nicolas Chautru wrote:
>>> This provides a new API to dump more debug information related to the
>>> status on a given bbdev queue.
>>> Some of this information is visible at bbdev level.
>>> This also provides a new option dev op, to print more information at
>>> the lower PMD level.
>>> This helps user to troubleshoot issues related to previous operations
>>> provided into a queue causing possible hard-to-debug negative
>>> scenarios.
>>>
>>> Signed-off-by: Nicolas Chautru <nicolas.chautru at intel.com>
>>> ---
>>>    lib/bbdev/rte_bbdev.c     | 214
>> ++++++++++++++++++++++++++++++++++++++
>>>    lib/bbdev/rte_bbdev.h     |  41 ++++++++
>>>    lib/bbdev/rte_bbdev_pmd.h |   9 ++
>>>    lib/bbdev/version.map     |   4 +
>>>    4 files changed, 268 insertions(+)
>>>
>>> diff --git a/lib/bbdev/rte_bbdev.c b/lib/bbdev/rte_bbdev.c index
>>> 13bde3c25b..81c031fc09 100644
>>> --- a/lib/bbdev/rte_bbdev.c
>>> +++ b/lib/bbdev/rte_bbdev.c
>>> @@ -1190,3 +1190,217 @@ rte_bbdev_enqueue_status_str(enum
>> rte_bbdev_enqueue_status status)
>>>    	rte_bbdev_log(ERR, "Invalid enqueue status");
>>>    	return NULL;
>>>    }
>>> +
>>> +
>>> +int
>>> +rte_bbdev_queue_ops_dump(uint16_t dev_id, uint16_t queue_id, FILE
>> *f)
>>> +{
>>> +	struct rte_bbdev_queue_data *q_data;
>>> +	struct rte_bbdev_stats *stats;
>>> +	uint16_t i;
>>> +	struct rte_bbdev *dev = get_dev(dev_id);
>>> +
>>> +	VALID_DEV_OR_RET_ERR(dev, dev_id);
>>> +	VALID_QUEUE_OR_RET_ERR(queue_id, dev);
>>> +	VALID_DEV_OPS_OR_RET_ERR(dev, dev_id);
>>> +	VALID_FUNC_OR_RET_ERR(dev->dev_ops->queue_ops_dump,
>> dev_id);
>>> +
>>> +	q_data = &dev->data->queues[queue_id];
>>> +
>>> +	if (f == NULL)
>>> +		return -EINVAL;
>>> +
>>> +	fprintf(f, "Dump of operations on %s queue %d\n",
>>> +			dev->data->name, queue_id);
>>> +	fprintf(f, "  Last Enqueue Status %s\n",
>>> +			rte_bbdev_enqueue_status_str(q_data-
>>> enqueue_status));
>>> +	for (i = 0; i < 4; i++)
>>
>> It shall be RTE_BBDEV_ENQ_STATUS_SIZE_MAX instead of 4 ?
> 
> Thanks, I can update this in the v2.
> 

Hi Nicolas,

could you please send a v2 addressing Hemant's comments?

Thanks,
Maxime



More information about the dev mailing list