On Mon, 2 Dec 2024 08:37:19 +0200 Mike Rapoport <r...@kernel.org> wrote:
> > > On powerpc I get: > > > > > > 25850 pages:14 groups: 3 > > > ftrace boot update time = 0 (ns) > > > ftrace module total update time = 0 (ns) > > > > Hmm, does powerpc support "trace_clock_local()" at early boot? I > > probably can just switch from using "ftrace_now()" to using > > ktime_get_real_ts64(). Hmm. > > The calls to timekeeping_init() and time_init() are after ftrace_init() so > unless an architecture sets up some clock in setup_arch() like x86 does > there won't be a clock to use. Hmm, maybe I should add: diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c index be62f0ea1814..362a125d7bcc 100644 --- a/kernel/trace/trace.c +++ b/kernel/trace/trace.c @@ -8588,14 +8588,23 @@ tracing_read_dyn_info(struct file *filp, char __user *ubuf, return -ENOMEM; r = scnprintf(buf, DYN_INFO_BUF_SIZE, - "%ld pages:%ld groups: %ld\n" - "ftrace boot update time = %llu (ns)\n" - "ftrace module total update time = %llu (ns)\n", + "%ld pages:%ld groups: %ld\n", ftrace_update_tot_cnt, ftrace_number_of_pages, - ftrace_number_of_groups, - ftrace_update_time, - ftrace_total_mod_time); + ftrace_number_of_groups); + + if (ftrace_update_time) { + r += scnprintf(buf + r, DYN_INFO_BUF_SIZE - r, + "ftrace boot update time = %llu (ns)\n", + ftrace_update_time); + } else { + r += scnprintf(buf + r, DYN_INFO_BUF_SIZE - r, + "ftrace boot update time = [Unavailable]\n"); + } + + r += scnprintf(buf + r, DYN_INFO_BUF_SIZE - r, + "ftrace module total update time = %llu (ns)\n", + ftrace_total_mod_time); ret = simple_read_from_buffer(ubuf, cnt, ppos, buf, r); kfree(buf); Which should turn the above to: 25850 pages:14 groups: 3 ftrace boot update time = [Unavailable] ftrace module total update time = 0 (ns) Which should at least make it not confusing. I'm assuming that the module timings are zero because no modules were loaded? -- Steve