mirror of
https://github.com/torvalds/linux.git
synced 2026-05-23 14:42:08 +02:00
perf jevents: Term list fix in event parsing
Fix events seemingly broken apart at a comma. Signed-off-by: Ian Rogers <irogers@google.com> Tested-by: Thomas Falcon <thomas.falcon@intel.com> Signed-off-by: Namhyung Kim <namhyung@kernel.org>
This commit is contained in:
parent
826650f76e
commit
7d5b4061a8
|
|
@ -568,6 +568,12 @@ def ParsePerfJson(orig: str) -> Expression:
|
|||
r'Event(r"\1")', py)
|
||||
# If it started with a # it should have been a literal, rather than an event name
|
||||
py = re.sub(r'#Event\(r"([^"]*)"\)', r'Literal("#\1")', py)
|
||||
# Fix events wrongly broken at a ','
|
||||
while True:
|
||||
prev_py = py
|
||||
py = re.sub(r'Event\(r"([^"]*)"\),Event\(r"([^"]*)"\)', r'Event(r"\1,\2")', py)
|
||||
if py == prev_py:
|
||||
break
|
||||
# Convert accidentally converted hex constants ("0Event(r"xDEADBEEF)"") back to a constant,
|
||||
# but keep it wrapped in Event(), otherwise Python drops the 0x prefix and it gets interpreted as
|
||||
# a double by the Bison parser
|
||||
|
|
@ -586,7 +592,6 @@ def ParsePerfJson(orig: str) -> Expression:
|
|||
parsed = ast.fix_missing_locations(parsed)
|
||||
return _Constify(eval(compile(parsed, orig, 'eval')))
|
||||
|
||||
|
||||
def RewriteMetricsInTermsOfOthers(metrics: List[Tuple[str, str, Expression]]
|
||||
)-> Dict[Tuple[str, str], Expression]:
|
||||
"""Shorten metrics by rewriting in terms of others.
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user