[U-Boot] [PATCH 3/7] Add timing information to printf's for use with bootgraph.pl
Graeme Russ
graeme.russ at gmail.com
Thu Sep 1 01:38:01 CEST 2011
Hi Mike, Andrew,
On Thu, Sep 1, 2011 at 8:47 AM, Mike Frysinger <vapier at gentoo.org> wrote:
> On Wednesday, August 31, 2011 18:20:57 Andrew Murray wrote:
>> va_list args;
>> uint i;
>> char printbuffer[CONFIG_SYS_PBSIZE];
>> + char *buf = printbuffer;
>>
>> va_start(args, fmt);
>>
>> +#if defined(CONFIG_BOOT_TRACE)
>> + unsigned long long ticks = get_ticks();
>> + int secs = ticks / get_tbclk();
>> + int msec = ((ticks * 1000000) / get_tbclk()) - (secs * 1000000);
>> +
>> + i += sprintf(buf, "[%5lu.%06lu] ", secs, msec);
>> + buf += i;
>> +#endif
>> +
>> /* For this to work, printbuffer must be larger than
>> * anything we ever want to print.
>> */
>> - i = vsprintf(printbuffer, fmt, args);
>> + i += vsprintf(buf, fmt, args);
>> va_end(args);
>
> NAK for a few reasons:
> - i dont see how this could possibly compile warning free
> - you never initialize "i", only added to it
> - you call va_start() inbetween variable decls
And correct me if I'm wrong, but EVERY printf() will get the timing info
tacked on - Even the ones without \n which are intermediate prints in
larger messages which is going to lead to very ugly outputs
I think instead we should look at another 'printf() with timestamp'
function which can be used on an as-needed basis
Regards,
Graeme
More information about the U-Boot
mailing list