[dpdk-dev] [PATCH v5 4/4] net/qede: add support for get register operation
Ferruh Yigit
ferruh.yigit at intel.com
Thu Jul 9 18:32:42 CEST 2020
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.
[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