[PATCH v2] bootstage: Show func name for bootstage_mark/error
Simon Glass
sjg at chromium.org
Sat Aug 13 16:58:50 CEST 2022
Hi Michal,
On Fri, 12 Aug 2022 at 23:39, Michal Simek <monstr at monstr.eu> wrote:
>
> so 13. 8. 2022 v 4:21 odesílatel Simon Glass <sjg at chromium.org> napsal:
> >
> > Hi Michal,
> >
> > On Fri, 12 Aug 2022 at 02:55, Michal Simek <michal.simek at amd.com> wrote:
> > >
> > > bootstage_mark() and bootstate_error() are not recording any name and in
> > > report it is showing as id=<value>. That's not useful and it is better to
> > > show function name which calls it.
> > > That's why use macros with passing __func__ as recorded name for bootstage.
> > >
> > > Origin report looks like this:
> > > ZynqMP> bootstage report
> > > Timer summary in microseconds (10 records):
> > > Mark Elapsed Stage
> > > 0 0 reset
> > > 2,482,383 2,482,383 board_init_f
> > > 4,278,821 1,796,438 board_init_r
> > > 4,825,331 546,510 id=64
> > > 4,858,409 33,078 id=65
> > > 4,862,382 3,973 main_loop
> > > 4,921,713 59,331 usb_start
> > > 9,345,345 4,423,632 id=175
> > >
> > > When this patch is applied.
> > > ZynqMP> bootstage report
> > > Timer summary in microseconds (31 records):
> > > Mark Elapsed Stage
> > > 0 0 reset
> > > 2,465,624 2,465,624 board_init_f
> > > 4,278,628 1,813,004 board_init_r
> > > 4,825,139 546,511 eth_common_init
> > > 4,858,228 33,089 eth_initialize
> > > 4,862,201 3,973 main_loop
> > > 4,921,530 59,329 usb_start
> > > 8,885,334 3,963,804 cli_loop
> > >
> > > Signed-off-by: Michal Simek <michal.simek at amd.com>
> > > ---
> > >
> > > Changes in v2:
> > > - Add kernel-doc description
> > >
> > > common/bootstage.c | 10 ++--------
> > > include/bootstage.h | 21 ++++++++++++++++++---
> > > 2 files changed, 20 insertions(+), 11 deletions(-)
> >
> > I can see what is going on here after applying it.
> >
> > Reviewed-by: Simon Glass <sjg at chromium.org>
> >
> > But I think it would be better as inline functions rather than #define
>
> I was trying static inline functions but __func__ is using bootstage
> names instead of the function
> which is calling them. Maybe there is another function specifier which
> can be used to do the same job
> as macros.
Not that I know of...I was thinking of using a #define to call a
function with a similar name (e.,g. with a trailing underscore). But I
think I'm just being too precious. Let's leave it as it is and see how
things go.
Regards,
Simon
More information about the U-Boot
mailing list