Re: pmcstat -z32 -G truncates callgraph to 8
On 31 October 2014 01:26, Brendan Gregg wrote: > > Yes. When I'm using profiling data, I like full stacks for making > flame graphs. For the FreeBSD kernel, 32 frames should usually be > enough (I have a flame graph that reaches 24 frames for the kernel, > but no more). For user-level, I'd probably need ~100. So making the > compiled-in default to 32 would hopefully be sufficient for most > kernel profiling, and one would need to bump that up for deep > user-level stacks. I guess this would also need > PMC_CALLCHAIN_DEPTH_MAX = 128 to work. I have a review up to bump the default to 32 and the maximum to 128: https://reviews.freebsd.org/D1203 ___ freebsd-performance@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-performance To unsubscribe, send any mail to "freebsd-performance-unsubscr...@freebsd.org"
Re: pmcstat -z32 -G truncates callgraph to 8
G'Day Ed, On Wed, Oct 29, 2014 at 12:40 PM, Ed Maste wrote: > On 28 October 2014 13:38, Brendan Gregg wrote: >> Ah, thanks, I'm on 10.0-STABLE and I have: >> >> kern.hwpmc.callchaindepth: 8 >> >> Glad it's something simple! > > Those are the best kinds of problems to have, although we ought to > make sure this point is covered in the FreeBSD profiling documentation > that we have or create. Yes; at least we have this thread now, which should be searchable. > > Also, do you think that we should bump the compiled-in default up to 32? Yes. When I'm using profiling data, I like full stacks for making flame graphs. For the FreeBSD kernel, 32 frames should usually be enough (I have a flame graph that reaches 24 frames for the kernel, but no more). For user-level, I'd probably need ~100. So making the compiled-in default to 32 would hopefully be sufficient for most kernel profiling, and one would need to bump that up for deep user-level stacks. I guess this would also need PMC_CALLCHAIN_DEPTH_MAX = 128 to work. Brendan ___ freebsd-performance@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-performance To unsubscribe, send any mail to "freebsd-performance-unsubscr...@freebsd.org"
Re: pmcstat -z32 -G truncates callgraph to 8
On 28 October 2014 13:38, Brendan Gregg wrote: > Ah, thanks, I'm on 10.0-STABLE and I have: > > kern.hwpmc.callchaindepth: 8 > > Glad it's something simple! Those are the best kinds of problems to have, although we ought to make sure this point is covered in the FreeBSD profiling documentation that we have or create. Also, do you think that we should bump the compiled-in default up to 32? ___ freebsd-performance@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-performance To unsubscribe, send any mail to "freebsd-performance-unsubscr...@freebsd.org"
Re: pmcstat -z32 -G truncates callgraph to 8
G'Day Stefan, On Tue, Oct 28, 2014 at 2:45 AM, Stefan Parvu wrote: > >> I'm using pmcstat to capture call graphs, however, these always seem >> truncated to 8 stack frames. Anyone else hit this? Anyone know a fix >> or workaround? > > On FreeBSD 11.0-CURRENT Im seeing these: > > kern.features.hwpmc_hooks: 1 > kern.hwpmc.softevents: 16 > kern.hwpmc.callchaindepth: 16 > kern.hwpmc.hashsize: 1024 > kern.hwpmc.nsamples: 1024 > kern.hwpmc.mtxpoolsize: 2048 > kern.hwpmc.logbuffersize: 4 > kern.hwpmc.nbuffers: 1024 Ah, thanks, I'm on 10.0-STABLE and I have: kern.hwpmc.callchaindepth: 8 Glad it's something simple! Brendan ___ freebsd-performance@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-performance To unsubscribe, send any mail to "freebsd-performance-unsubscr...@freebsd.org"
Re: pmcstat -z32 -G truncates callgraph to 8
> I'm using pmcstat to capture call graphs, however, these always seem > truncated to 8 stack frames. Anyone else hit this? Anyone know a fix > or workaround? On FreeBSD 11.0-CURRENT Im seeing these: kern.features.hwpmc_hooks: 1 kern.hwpmc.softevents: 16 kern.hwpmc.callchaindepth: 16 kern.hwpmc.hashsize: 1024 kern.hwpmc.nsamples: 1024 kern.hwpmc.mtxpoolsize: 2048 kern.hwpmc.logbuffersize: 4 kern.hwpmc.nbuffers: 1024 and for example a trace ... 00.53% [48] strcmp @ /lib/libc.so.7 56.25% [27]0x1c4e43 @ /usr/local/lib/libgtk-x11-2.0.so.0.2400.22 100.0% [27] g_object_get_valist @ /usr/local/lib/libgobject-2.0.so.0.3600.3 100.0% [27] g_object_get 70.37% [19] _gtk_tooltip_handle_event @ /usr/local/lib/libgtk-x11-2.0.so.0.2400.22 100.0% [19]gtk_main_do_event 100.0% [19] 0x662e1 @ /usr/local/lib/libgdk-x11-2.0.so.0.2400.22 100.0% [19] g_main_context_dispatch @ /usr/local/lib/libglib-2.0.so.0.3600.3 100.0% [19] 0x554e3 78.95% [15]g_main_loop_run 100.0% [15] gtk_main @ /usr/local/lib/libgtk-x11-2.0.so.0.2400.22 21.05% [4] g_main_context_iteration @ /usr/local/lib/libglib-2.0.so.0.3600.3 100.0% [4] gtk_main_iteration @ /usr/local/lib/libgtk-x11-2.0.so.0.2400.22 100.0% [4] 0x2ea45 @ /usr/local/lib/libsylph-0.so.1.2.0 100.0% [4]0x34786 100.0% [4] 0x33208 29.63% [8]0x2371d8 @ /usr/local/lib/libgtk-x11-2.0.so.0.2400.22 100.0% [8] _gtk_tooltip_handle_event 100.0% [8] gtk_main_do_event 100.0% [8] 0x662e1 @ /usr/local/lib/libgdk-x11-2.0.so.0.2400.22 100.0% [8]g_main_context_dispatch @ /usr/local/lib/libglib-2.0.so.0.3600.3 100.0% [8] 0x554e3 87.50% [7] g_main_loop_run 100.0% [7] gtk_main @ /usr/local/lib/libgtk-x11-2.0.so.0.2400.22 12.50% [1] g_main_context_iteration @ /usr/local/lib/libglib-2.0.so.0.3600.3 100.0% [1] gtk_main_iteration @ /usr/local/lib/libgtk-x11-2.0.so.0.2400.22 100.0% [1]0x2ea45 @ /usr/local/lib/libsylph-0.so.1.2.0 100.0% [1] 0x34786 100.0% [1] 0x33208 18.75% [9] g_hash_table_lookup @ /usr/local/lib/libglib-2.0.so.0.3600.3 55.56% [5] 0x1d89b @ /usr/local/lib/libgobject-2.0.so.0.3600.3 100.0% [5] g_param_spec_pool_lookup 40.00% [2]g_object_get_valist 100.0% [2] g_object_get 50.00% [1] 0x23692f @ /usr/local/lib/libgtk-x11-2.0.so.0.2400.22 100.0% [1] _gtk_tooltip_handle_event 100.0% [1]gtk_main_do_event 100.0% [1] 0x662e1 @ /usr/local/lib/libgdk-x11-2.0.so.0.2400.22 100.0% [1] g_main_context_dispatch @ /usr/local/lib/libglib-2.0.so.0.3600.3 100.0% [1] 0x554e3 : 00.54% [49] acpi_cpu_c1 @ /boot/kernel/kernel 100.0% [49]acpi_cpu_idle 100.0% [49] cpu_idle_acpi 100.0% [49] cpu_idle 100.0% [49] sched_idletd 100.0% [49]fork_exit 00.53% [48] strcmp @ /lib/libc.so.7 56.25% [27]0x1c4e43 @ /usr/local/lib/libgtk-x11-2.0.so.0.2400.22 100.0% [27] g_object_get_valist @ /usr/local/lib/libgobject-2.0.so.0.3600.3 100.0% [27] g_object_get 70.37% [19] _gtk_tooltip_handle_event @ /usr/local/lib/libgtk-x11-2.0.so.0.2400.22 100.0% [19]gtk_main_do_event 100.0% [19] 0x662e1 @ /usr/local/lib/libgdk-x11-2.0.so.0.2400.22 100.0% [19] g_main_context_dispatch @ /usr/local/lib/libglib-2.0.so.0.3600.3 100.0% [19] 0x554e3 78.95% [15]g_main_loop_run 100.0% [15] gtk_main @ /usr/local/lib/libgtk-x11-2.0.so.0.2400.22 21.05% [4] g_main_context_iteration @ /usr/local/lib/libglib-2.0.so.0.3600.3 100.0% [4] gtk_main_iteration @ /usr/local/lib/libgtk-x11-2.0.so.0.2400.22 100.0% [4] 0x2ea45 @ /usr/local/lib/libsylph-0.so.1.2.0 100.0% [4]0x34786 100.0% [4] 0x33208 29.63% [8]0x2371d8 @ /usr/local/lib/libgtk-x11-2.0.so.0.2400.22 100.0% [8] _gtk_tooltip_handle_event 100.0% [8] gtk_main_do_event 100.0% [8] 0x662e1 @ /usr/local/lib/libgdk-x11-2.0.s