loader printf: Profile with TSLOG

Now that the loader tslog code doesn't call printf, we can profile
printf using TSLOG.  On an EC2 c5.xlarge instance, we spend roughly
45 ms here (out of roughly 500 ms), presumably due to the time spent
writing output to the console.

MFC after:	1 week
Sponsored by:	https://www.patreon.com/cperciva
This commit is contained in:
Colin Percival 2021-09-24 20:20:33 -07:00
parent 242923eb84
commit 0a35c4b3ca

View File

@ -271,6 +271,7 @@ kvprintf(char const *fmt, kvprintf_fn_t *func, void *arg, int radix, va_list ap)
char padc;
int stop = 0, retval = 0;
TSENTER();
num = 0;
if (!func)
d = (char *) arg;
@ -287,8 +288,10 @@ kvprintf(char const *fmt, kvprintf_fn_t *func, void *arg, int radix, va_list ap)
padc = ' ';
width = 0;
while ((ch = (u_char)*fmt++) != '%' || stop) {
if (ch == '\0')
if (ch == '\0') {
TSEXIT();
return (retval);
}
PCHAR(ch);
}
percent = fmt - 1;