summaryrefslogtreecommitdiffstats
path: root/ipc
diff options
context:
space:
mode:
authorSteven Rostedt (VMware) <rostedt@goodmis.org>2020-12-15 03:03:27 +0100
committerSteven Rostedt (VMware) <rostedt@goodmis.org>2020-12-15 15:29:14 +0100
commitf6a694665f132cbf6e2222dd2f173dc35330a8aa (patch)
treecff58001c1c91e66d7f9a168325ebbe3774170ae /ipc
parentRevert: "ring-buffer: Remove HAVE_64BIT_ALIGNED_ACCESS" (diff)
downloadlinux-f6a694665f132cbf6e2222dd2f173dc35330a8aa.tar.xz
linux-f6a694665f132cbf6e2222dd2f173dc35330a8aa.zip
tracing: Offload eval map updates to a work queue
In order for tracepoints to export their enums to user space, the use of the TRACE_DEFINE_ENUM() macro is used. On boot up, the strings shown in the tracefs "print fmt" lines are processed, and all the enums registered by TRACE_DEFINE_ENUM are replaced with the interger value. This way, userspace tools that read the raw binary data, knows how to evaluate the raw events. This is currently done in an initcall, but it has been noticed that slow embedded boards that have tracing may take a few seconds to process them all, and a few seconds slow down on an embedded device is detrimental to the system. Instead, offload the work to a work queue and make sure that its finished by destroying the work queue (which flushes all work) in a late initcall. This will allow the system to continue to boot and run the updates in the background, and this speeds up the boot time. Note, the strings being updated are only used by user space, so finishing the process before the system is fully booted will prevent any race issues. Link: https://lore.kernel.org/r/68d7b3327052757d0cd6359a6c9015a85b437232.camel@pengutronix.de Reported-by: Lucas Stach <l.stach@pengutronix.de> Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
Diffstat (limited to 'ipc')
0 files changed, 0 insertions, 0 deletions