1
0
mirror of https://github.com/ARM-software/devlib.git synced 2025-01-30 17:50:46 +00:00

ftrace: Detect tracefs mount point

Change default FtraceCollector(tracing_path=...) to None, and
auto-detect mount point when None is given.

Also expose an FtraceCollector.find_tracing_path() method so that user
code can also access this path without having to instantiate an
FtraceCollector.
This commit is contained in:
Douglas Raillard 2022-04-13 12:31:01 +01:00 committed by Marc Bonnici
parent 8f80d8a5ee
commit bdb04aa8d0

View File

@ -61,7 +61,7 @@ class FtraceCollector(CollectorBase):
trace_children_functions=False,
buffer_size=None,
buffer_size_step=1000,
tracing_path='/sys/kernel/debug/tracing',
tracing_path=None,
automark=True,
autoreport=True,
autoview=False,
@ -77,7 +77,7 @@ class FtraceCollector(CollectorBase):
self.tracer = tracer
self.trace_children_functions = trace_children_functions
self.buffer_size = buffer_size
self.tracing_path = tracing_path
self.tracing_path = self._resolve_tracing_path(target, tracing_path)
self.automark = automark
self.autoreport = autoreport
self.autoview = autoview
@ -193,6 +193,25 @@ class FtraceCollector(CollectorBase):
self.event_string = _build_trace_events(selected_events)
@classmethod
def _resolve_tracing_path(cls, target, path):
if path is None:
return cls.find_tracing_path(target)
else:
return path
@classmethod
def find_tracing_path(cls, target):
fs_list = [
fs.mount_point
for fs in target.list_file_systems()
if fs.fs_type == 'tracefs'
]
try:
return fs_list[0]
except IndexError:
# Default legacy value, when the kernel did not have a tracefs yet
return '/sys/kernel/debug/tracing'
@property
@memoized