From: Benjamin Poirier <benjamin.poirier@gmail.com> To: Coiby Xu <coiby.xu@gmail.com> Cc: devel@driverdev.osuosl.org, Shung-Hsi Yu <shung-hsi.yu@suse.com>, Manish Chopra <manishc@marvell.com>, "supporter:QLOGIC QLGE 10Gb ETHERNET DRIVER" <GR-Linux-NIC-Dev@marvell.com>, Greg Kroah-Hartman <gregkh@linuxfoundation.org>, "open list:QLOGIC QLGE 10Gb ETHERNET DRIVER" <netdev@vger.kernel.org>, open list <linux-kernel@vger.kernel.org> Subject: Re: [PATCH v1 2/6] staging: qlge: coredump via devlink health reporter Date: Sat, 10 Oct 2020 16:48:09 +0900 [thread overview] Message-ID: <20201010074809.GB14495@f3> (raw) In-Reply-To: <20201008115808.91850-3-coiby.xu@gmail.com> On 2020-10-08 19:58 +0800, Coiby Xu wrote: > $ devlink health dump show DEVICE reporter coredump -p -j > { > "Core Registers": { > "segment": 1, > "values": [ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 > ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ] > }, > "Test Logic Regs": { > "segment": 2, > "values": [ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ] > }, > "RMII Registers": { > "segment": 3, > "values": [ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ] > }, > ... > "Sem Registers": { > "segment": 50, > "values": [ 0,0,0,0 ] > } > } > > Signed-off-by: Coiby Xu <coiby.xu@gmail.com> > --- > drivers/staging/qlge/qlge_devlink.c | 131 ++++++++++++++++++++++++++-- > 1 file changed, 125 insertions(+), 6 deletions(-) > > diff --git a/drivers/staging/qlge/qlge_devlink.c b/drivers/staging/qlge/qlge_devlink.c > index aa45e7e368c0..91b6600b94a9 100644 > --- a/drivers/staging/qlge/qlge_devlink.c > +++ b/drivers/staging/qlge/qlge_devlink.c > @@ -1,16 +1,135 @@ > #include "qlge.h" > #include "qlge_devlink.h" > > -static int > -qlge_reporter_coredump(struct devlink_health_reporter *reporter, > - struct devlink_fmsg *fmsg, void *priv_ctx, > - struct netlink_ext_ack *extack) > +static int fill_seg_(struct devlink_fmsg *fmsg, Please include the "qlge_" prefix. > + struct mpi_coredump_segment_header *seg_header, > + u32 *reg_data) > { > - return 0; > + int i; > + int header_size = sizeof(struct mpi_coredump_segment_header); > + int regs_num = (seg_header->seg_size - header_size) / sizeof(u32); > + int err; > + > + err = devlink_fmsg_pair_nest_start(fmsg, seg_header->description); > + if (err) > + return err; > + err = devlink_fmsg_obj_nest_start(fmsg); > + if (err) > + return err; > + err = devlink_fmsg_u32_pair_put(fmsg, "segment", seg_header->seg_num); > + if (err) > + return err; > + err = devlink_fmsg_arr_pair_nest_start(fmsg, "values"); > + if (err) > + return err; > + for (i = 0; i < regs_num; i++) { > + err = devlink_fmsg_u32_put(fmsg, *reg_data); > + if (err) > + return err; > + reg_data++; > + } > + err = devlink_fmsg_obj_nest_end(fmsg); > + if (err) > + return err; > + err = devlink_fmsg_arr_pair_nest_end(fmsg); > + if (err) > + return err; > + err = devlink_fmsg_pair_nest_end(fmsg); > + return err; > +} > + > +#define fill_seg(seg_hdr, seg_regs) \ considering that this macro accesses local variables, it is not really "function-like". I think an all-caps name would be better to tip-off the reader. > + do { \ > + err = fill_seg_(fmsg, &dump->seg_hdr, dump->seg_regs); \ > + if (err) { \ > + kvfree(dump); \ > + return err; \ > + } \ > + } while (0) > + > +static int qlge_reporter_coredump(struct devlink_health_reporter *reporter, > + struct devlink_fmsg *fmsg, void *priv_ctx, > + struct netlink_ext_ack *extack) > +{ > + int err = 0; > + > + struct qlge_devlink *dev = devlink_health_reporter_priv(reporter); Please name this variable ql_devlink, like in qlge_probe().
WARNING: multiple messages have this Message-ID (diff)
From: Benjamin Poirier <benjamin.poirier@gmail.com> To: Coiby Xu <coiby.xu@gmail.com> Cc: devel@driverdev.osuosl.org, "supporter:QLOGIC QLGE 10Gb ETHERNET DRIVER" <GR-Linux-NIC-Dev@marvell.com>, Manish Chopra <manishc@marvell.com>, Greg Kroah-Hartman <gregkh@linuxfoundation.org>, Shung-Hsi Yu <shung-hsi.yu@suse.com>, open list <linux-kernel@vger.kernel.org>, "open list:QLOGIC QLGE 10Gb ETHERNET DRIVER" <netdev@vger.kernel.org> Subject: Re: [PATCH v1 2/6] staging: qlge: coredump via devlink health reporter Date: Sat, 10 Oct 2020 16:48:09 +0900 [thread overview] Message-ID: <20201010074809.GB14495@f3> (raw) In-Reply-To: <20201008115808.91850-3-coiby.xu@gmail.com> On 2020-10-08 19:58 +0800, Coiby Xu wrote: > $ devlink health dump show DEVICE reporter coredump -p -j > { > "Core Registers": { > "segment": 1, > "values": [ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 > ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ] > }, > "Test Logic Regs": { > "segment": 2, > "values": [ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ] > }, > "RMII Registers": { > "segment": 3, > "values": [ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ] > }, > ... > "Sem Registers": { > "segment": 50, > "values": [ 0,0,0,0 ] > } > } > > Signed-off-by: Coiby Xu <coiby.xu@gmail.com> > --- > drivers/staging/qlge/qlge_devlink.c | 131 ++++++++++++++++++++++++++-- > 1 file changed, 125 insertions(+), 6 deletions(-) > > diff --git a/drivers/staging/qlge/qlge_devlink.c b/drivers/staging/qlge/qlge_devlink.c > index aa45e7e368c0..91b6600b94a9 100644 > --- a/drivers/staging/qlge/qlge_devlink.c > +++ b/drivers/staging/qlge/qlge_devlink.c > @@ -1,16 +1,135 @@ > #include "qlge.h" > #include "qlge_devlink.h" > > -static int > -qlge_reporter_coredump(struct devlink_health_reporter *reporter, > - struct devlink_fmsg *fmsg, void *priv_ctx, > - struct netlink_ext_ack *extack) > +static int fill_seg_(struct devlink_fmsg *fmsg, Please include the "qlge_" prefix. > + struct mpi_coredump_segment_header *seg_header, > + u32 *reg_data) > { > - return 0; > + int i; > + int header_size = sizeof(struct mpi_coredump_segment_header); > + int regs_num = (seg_header->seg_size - header_size) / sizeof(u32); > + int err; > + > + err = devlink_fmsg_pair_nest_start(fmsg, seg_header->description); > + if (err) > + return err; > + err = devlink_fmsg_obj_nest_start(fmsg); > + if (err) > + return err; > + err = devlink_fmsg_u32_pair_put(fmsg, "segment", seg_header->seg_num); > + if (err) > + return err; > + err = devlink_fmsg_arr_pair_nest_start(fmsg, "values"); > + if (err) > + return err; > + for (i = 0; i < regs_num; i++) { > + err = devlink_fmsg_u32_put(fmsg, *reg_data); > + if (err) > + return err; > + reg_data++; > + } > + err = devlink_fmsg_obj_nest_end(fmsg); > + if (err) > + return err; > + err = devlink_fmsg_arr_pair_nest_end(fmsg); > + if (err) > + return err; > + err = devlink_fmsg_pair_nest_end(fmsg); > + return err; > +} > + > +#define fill_seg(seg_hdr, seg_regs) \ considering that this macro accesses local variables, it is not really "function-like". I think an all-caps name would be better to tip-off the reader. > + do { \ > + err = fill_seg_(fmsg, &dump->seg_hdr, dump->seg_regs); \ > + if (err) { \ > + kvfree(dump); \ > + return err; \ > + } \ > + } while (0) > + > +static int qlge_reporter_coredump(struct devlink_health_reporter *reporter, > + struct devlink_fmsg *fmsg, void *priv_ctx, > + struct netlink_ext_ack *extack) > +{ > + int err = 0; > + > + struct qlge_devlink *dev = devlink_health_reporter_priv(reporter); Please name this variable ql_devlink, like in qlge_probe(). _______________________________________________ devel mailing list devel@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
next prev parent reply other threads:[~2020-10-10 7:49 UTC|newest] Thread overview: 63+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-10-08 11:58 [PATCH v1 0/6] staging: qlge: Re-writing the debugging features Coiby Xu 2020-10-08 11:58 ` [PATCH v1 1/6] staging: qlge: Initialize devlink health dump framework for the dlge driver Coiby Xu 2020-10-08 11:58 ` Coiby Xu 2020-10-08 12:22 ` Willem de Bruijn 2020-10-08 12:22 ` Willem de Bruijn 2020-10-08 12:54 ` Coiby Xu 2020-10-08 12:54 ` Coiby Xu 2020-10-12 8:08 ` Coiby Xu 2020-10-12 8:08 ` Coiby Xu 2020-10-08 13:31 ` Dan Carpenter 2020-10-08 13:31 ` Dan Carpenter 2020-10-09 0:12 ` Coiby Xu 2020-10-09 0:12 ` Coiby Xu 2020-10-08 17:45 ` kernel test robot 2020-10-08 17:45 ` kernel test robot 2020-10-10 7:35 ` Benjamin Poirier 2020-10-10 7:35 ` Benjamin Poirier 2020-10-10 10:24 ` Coiby Xu 2020-10-10 10:24 ` Coiby Xu 2020-10-10 13:48 ` Benjamin Poirier 2020-10-10 13:48 ` Benjamin Poirier 2020-10-12 11:24 ` Coiby Xu 2020-10-12 11:24 ` Coiby Xu 2020-10-13 0:37 ` Benjamin Poirier 2020-10-13 0:37 ` Benjamin Poirier 2020-10-15 3:37 ` Coiby Xu 2020-10-15 3:37 ` Coiby Xu 2020-10-15 11:06 ` Benjamin Poirier 2020-10-15 11:06 ` Benjamin Poirier 2020-10-16 23:08 ` Coiby Xu 2020-10-16 23:08 ` Coiby Xu 2020-10-08 11:58 ` [PATCH v1 2/6] staging: qlge: coredump via devlink health reporter Coiby Xu 2020-10-08 11:58 ` Coiby Xu 2020-10-08 13:39 ` Dan Carpenter 2020-10-08 13:39 ` Dan Carpenter 2020-10-09 0:14 ` Coiby Xu 2020-10-09 0:14 ` Coiby Xu 2020-10-10 7:48 ` Benjamin Poirier [this message] 2020-10-10 7:48 ` Benjamin Poirier 2020-10-10 10:02 ` Coiby Xu 2020-10-10 10:02 ` Coiby Xu 2020-10-10 13:22 ` Benjamin Poirier 2020-10-10 13:22 ` Benjamin Poirier 2020-10-12 11:51 ` Coiby Xu 2020-10-12 11:51 ` Coiby Xu 2020-10-13 1:18 ` Benjamin Poirier 2020-10-13 1:18 ` Benjamin Poirier 2020-10-08 11:58 ` [PATCH v1 3/6] staging: qlge: support force_coredump option for devlink health dump Coiby Xu 2020-10-08 11:58 ` Coiby Xu 2020-10-08 11:58 ` [PATCH v1 4/6] staging: qlge: remove mpi_core_to_log which sends coredump to the kernel ring buffer Coiby Xu 2020-10-08 11:58 ` Coiby Xu 2020-10-08 11:58 ` [PATCH v1 5/6] staging: qlge: clean up debugging code in the QL_ALL_DUMP ifdef land Coiby Xu 2020-10-08 11:58 ` Coiby Xu 2020-10-10 8:01 ` Benjamin Poirier 2020-10-10 8:01 ` Benjamin Poirier 2020-10-10 10:00 ` Coiby Xu 2020-10-10 10:00 ` Coiby Xu 2020-10-10 13:40 ` Benjamin Poirier 2020-10-10 13:40 ` Benjamin Poirier 2020-10-12 11:29 ` Coiby Xu 2020-10-12 11:29 ` Coiby Xu 2020-10-08 11:58 ` [PATCH v1 6/6] staging: qlge: add documentation for debugging qlge Coiby Xu 2020-10-08 11:58 ` Coiby Xu
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20201010074809.GB14495@f3 \ --to=benjamin.poirier@gmail.com \ --cc=GR-Linux-NIC-Dev@marvell.com \ --cc=coiby.xu@gmail.com \ --cc=devel@driverdev.osuosl.org \ --cc=gregkh@linuxfoundation.org \ --cc=linux-kernel@vger.kernel.org \ --cc=manishc@marvell.com \ --cc=netdev@vger.kernel.org \ --cc=shung-hsi.yu@suse.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.