[PATCH] bootstage: Show func name for bootstage_mark/error

Michal Simek michal.simek at amd.com
Fri Aug 12 10:53:47 CEST 2022



On 8/11/22 16:47, Simon Glass wrote:
> Hi Michal,
> 
> On Thu, 11 Aug 2022 at 06:46, 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>
>> ---
>>
>>   common/bootstage.c  | 10 ++--------
>>   include/bootstage.h |  5 +++--
>>   2 files changed, 5 insertions(+), 10 deletions(-)
>>
>> diff --git a/common/bootstage.c b/common/bootstage.c
>> index 0fd33be97eae..326c40f1561f 100644
>> --- a/common/bootstage.c
>> +++ b/common/bootstage.c
>> @@ -147,15 +147,9 @@ ulong bootstage_add_record(enum bootstage_id id, const char *name,
>>          return mark;
>>   }
>>
>> -
>> -ulong bootstage_mark(enum bootstage_id id)
>> -{
>> -       return bootstage_add_record(id, NULL, 0, timer_get_boot_us());
>> -}
>> -
>> -ulong bootstage_error(enum bootstage_id id)
>> +ulong bootstage_error_name(enum bootstage_id id, const char *name)
>>   {
>> -       return bootstage_add_record(id, NULL, BOOTSTAGEF_ERROR,
>> +       return bootstage_add_record(id, name, BOOTSTAGEF_ERROR,
>>                                      timer_get_boot_us());
>>   }
>>
>> diff --git a/include/bootstage.h b/include/bootstage.h
>> index bca9438418f5..8d9ef7362f8b 100644
>> --- a/include/bootstage.h
>> +++ b/include/bootstage.h
>> @@ -268,9 +268,10 @@ ulong bootstage_add_record(enum bootstage_id id, const char *name,
>>   /**
>>    * Mark a time stamp for the current boot stage.
>>    */
>> -ulong bootstage_mark(enum bootstage_id id);
>> +#define bootstage_mark(id)     bootstage_mark_name(id, __func__)
>> +#define bootstage_error(id)    bootstage_error_name(id, __func__)
>>
>> -ulong bootstage_error(enum bootstage_id id);
>> +ulong bootstage_error_name(enum bootstage_id id, const char *name);
> 
> Please can you add proper comments to these functions?

Will add kernel-doc in v2.

>>
>>   ulong bootstage_mark_name(enum bootstage_id id, const char *name);
> 
> Also I think you need to add code for when BOOTSTAGE is not enabled,
> later in the header.

They are already there.

Thanks,
Michal




More information about the U-Boot mailing list