>From: Ferruh Yigit <ferruh.yi...@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 <rm...@marvell.com> >> Signed-off-by: Igor Russkikh <irussk...@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