Dear all, Many thanks for the fix. I am currently travelling but I will test it early next week with vfio PCI & platform case. Also following Alex advises, I will move [RFC] vfio: migration to trace points into a PATCH.
Best Regards Eric On 09/22/2014 07:35 PM, Lluís Vilanova wrote: > Stefan Hajnoczi writes: > >> Use \w for properties and trace event names since they are both drawn >> from [a-zA-Z0-9_] character sets. > >> The .* for matching properties was too aggressive and caused the >> following failure with foo(int rc) "(this is a test)": > >> Traceback (most recent call last): >> File "scripts/tracetool.py", line 139, in <module> >> main(sys.argv) >> File "scripts/tracetool.py", line 134, in main >> binary=binary, probe_prefix=probe_prefix) >> File "scripts/tracetool/__init__.py", line 334, in generate >> events = _read_events(fevents) >> File "scripts/tracetool/__init__.py", line 262, in _read_events >> res.append(Event.build(line)) >> File "scripts/tracetool/__init__.py", line 225, in build >> return Event(name, props, fmt, args, arg_fmts) >> File "scripts/tracetool/__init__.py", line 185, in __init__ >> % ", ".join(unknown_props)) >> ValueError: Unknown properties: foo(int, rc) > >> Cc: Lluís Vilanova <vilan...@ac.upc.edu> >> Reported-by: Eric Auger <eric.au...@linaro.org> >> Signed-off-by: Stefan Hajnoczi <stefa...@redhat.com> >> --- >> scripts/tracetool/__init__.py | 4 ++-- >> 1 file changed, 2 insertions(+), 2 deletions(-) > >> diff --git a/scripts/tracetool/__init__.py b/scripts/tracetool/__init__.py >> index 36c789d..474f11b 100644 >> --- a/scripts/tracetool/__init__.py >> +++ b/scripts/tracetool/__init__.py >> @@ -140,8 +140,8 @@ class Event(object): >> The format strings for each argument. >> """ > >> - _CRE = re.compile("((?P<props>.*)\s+)?" >> - "(?P<name>[^(\s]+)" >> + _CRE = re.compile("((?P<props>\w*)\s+)?" >> + "(?P<name>\w+)" >> "\((?P<args>[^)]*)\)" >> "\s*" >> "(?:(?:(?P<fmt_trans>\".+),)?\s*(?P<fmt>\".+))?" > > The previous implementation allowed multiple properties. Maybe this should be > instead (which still allows multiple properties): > > "((?P<props>[\w\s]+)\s+)?" > "(?P<name>\w+)\s*" > ... > > > Thanks, > Lluis >