[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