On Thu, Feb 18, 2021 at 5:35 AM Tamminen, Eero T <eero.t.tammi...@intel.com> wrote: > > Hi, > > On Thu, 2021-02-18 at 12:17 +0100, Primiano Tucci wrote: > [discussion about Perfetto itself] > ... > > eero.t.tamminen@ > > from in common Linux distro repos. > > > > That's right. I am aware of the problem. The plan is to address it > > with > > bit.ly/perfetto-debian as a starter. > > Glad to hear something is planned for making things easier for distros! > > > > > eero.t.tamminen@ > > > Just set uprobe for suitable buffer swap function [1], and parse > > kernel ftrace events. (paraphrasing for context: "why do we need > > instrumentation points? we can't we just use uprobes instead?") > > > > The problem with uprobes is: > > 1. It's linux specific. Perhaps not a big problem for Mesa here, but the > > reason why we didn't go there with Perfetto, at least until now, is that > > we need to support all major OSes (Linux, CrOS, Android, Windows, > > macOS). > > The main point here is that uprobe works already without any > modifications to any libraries (I have script that has been used for FPS > tracking of daily 3D stack builds for many years). > > And other OSes already offer similar functionality. E.g. DTrace should > be available both for Mac & Windows. >
So we are talking about a couple different tracing use-cases which perfetto provides.. *Maybe* uprobe can work for the instrument the code use case that you are talking about, just assuming for the sake of argument that the security folks buy into it, etc.. I'm not sure if there isn't a race condition if the kernel has to temporarily remap text pages r/w or other potential issues I've not thought of? But that is ignoring important things like gpu traces and perf counters. I kind of think it is informative to look at some of the related proto definitions, because they give a sense of what information the visualization UI tools can make use of, for example: https://cs.android.com/android/platform/superproject/+/master:external/perfetto/protos/perfetto/trace/gpu/gpu_render_stage_event.proto For that, we would need to, from a background thread in the driver (well aux/util/u_trace) collect up the logged gpu timestamps after the fact and fill in the relevant details for the trace event. We are going to anyways need the perfetto SDK (in the short term, until we can switch to C shared lib when it is avail) for that. BR, -R _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev