[dpdk-dev] [EXT] Re: [PATCH v5 4/4] net/qede: add support for get register operation

Rasesh Mody rmody at marvell.com
Fri Jul 10 01:30:08 CEST 2020


>From: Ferruh Yigit <ferruh.yigit at intel.com>
>Sent: Thursday, July 09, 2020 9:33 AM
>
>On 7/8/2020 11:50 PM, Rasesh Mody wrote:
>> Add support for .get_reg eth_dev ops which will be used to collect the
>> firmware debug data.
>>
>> PMD on detecting on some HW errors will collect the FW/HW Dump to a
>> buffer and then it will save it to a file implemented in
>> qede_save_fw_dump().
>>
>> Dump file location and name:
>> Location: <RTE_SDK> or DPDK root
>> Name: qede_pmd_dump_mm-dd-yy_hh-mm-ss.bin
>>
>> DPDK applications can initiate a debug data collection by invoking
>> DPDK library’s rte_eth_dev_get_reg_info() API. This API invokes
>> .get_reg() interface in the PMD.
>>
>> PMD implementation of .get_reg() collects the FW/HW Dump, saves it to
>> data field of rte_dev_reg_info and passes it to the application. It’s
>> the responsibility of the application to save the FW/HW Dump to a file.
>> We recommendation using the file name format used by
>qede_save_fw_dump().
>>
>> Signed-off-by: Rasesh Mody <rmody at marvell.com>
>> Signed-off-by: Igor Russkikh <irusskikh at marvell.com>
>
><...>
>
>> +static int
>> +qede_write_fwdump(const char *dump_file, void *dump, size_t len) {
>> +	int err = 0;
>> +	FILE *f;
>> +	size_t bytes;
>> +
>> +	f = fopen(dump_file, "wb+");
>> +
>> +	if (!f) {
>> +		fprintf(stderr, "Can't open file %s: %s\n",
>> +			dump_file, strerror(errno));
>> +		return 1;
>> +	}
>> +	bytes = fwrite(dump, 1, len, f);
>> +	if (bytes != len) {
>> +		fprintf(stderr, "Can not write all of dump data bytes=%ld
>len=%ld\n",
>> +			bytes, len);
>
>Travis is giving build error on this for 32 bits [1], fixing while merging by
>replacing '%ld' -> '%zd', please double check in next-net.
>

Thanks Ferruh, change looks good.

>[1]
>../drivers/net/qede/qede_regs.c: In function ‘qede_write_fwdump’:
>../drivers/net/qede/qede_regs.c:229:59: error: format ‘%ld’ expects
>argument of type ‘long int’, but argument 3 has type ‘size_t {aka unsigned
>int}’
>[-Werror=format=]
>   fprintf(stderr, "Can not write all of dump data bytes=%ld len=%ld\n",
>                                                         ~~^
>                                                         %d
>../drivers/net/qede/qede_regs.c:229:67: error: format ‘%ld’ expects
>argument of type ‘long int’, but argument 4 has type ‘size_t {aka unsigned
>int}’
>[-Werror=format=]
>   fprintf(stderr, "Can not write all of dump data bytes=%ld len=%ld\n",
>                                                                 ~~^
>                                                                 %d



More information about the dev mailing list