* [PATCH v2] tracetool: also strip %l and %ll from systemtap format strings
@ 2021-01-06 13:02 Daniel P. Berrangé
2021-01-06 13:48 ` Laurent Vivier
` (2 more replies)
0 siblings, 3 replies; 5+ messages in thread
From: Daniel P. Berrangé @ 2021-01-06 13:02 UTC (permalink / raw)
To: qemu-devel
Cc: Laurent Vivier, William Cohen, Daniel P. Berrangé, Stefan Hajnoczi
All variables are 64-bit and so %l / %ll are not required, and the
latter is actually invalid:
$ sudo stap -e 'probe begin{printf ("BEGIN")}' -I .
parse error: invalid or missing conversion specifier
saw: operator ',' at ./qemu-system-x86_64-log.stp:15118:101
source: printf("%d@%d vhost_vdpa_set_log_base dev: %p base: 0x%x size: %llu
refcnt: %d fd: %d log: %p\n", pid(), gettimeofday_ns(), dev, base, size, refcnt, fd, log)
^
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
---
scripts/tracetool/format/log_stap.py | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
In v2:
- Change existing logic that stripped %z to handle %l/%ll too
diff --git a/scripts/tracetool/format/log_stap.py b/scripts/tracetool/format/log_stap.py
index b486beb672..fac911a0f4 100644
--- a/scripts/tracetool/format/log_stap.py
+++ b/scripts/tracetool/format/log_stap.py
@@ -77,7 +77,12 @@ def c_fmt_to_stap(fmt):
elif state == STATE_LITERAL:
bits.append(literal)
- fmt = re.sub("%(\d*)z(x|u|d)", "%\\1\\2", "".join(bits))
+ # All variables in systemtap are 64-bit in size
+ # The "%l" integer size qualifier is thus redundant
+ # and "%ll" is not valid at all. Simiarly the size_t
+ # based "%z" size qualifier is not valid. We just
+ # strip all size qualifiers for sanity.
+ fmt = re.sub("%(\d*)(l+|z)(x|u|d)", "%\\1\\3", "".join(bits))
return fmt
def generate(events, backend, group):
--
2.29.2
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH v2] tracetool: also strip %l and %ll from systemtap format strings
2021-01-06 13:02 [PATCH v2] tracetool: also strip %l and %ll from systemtap format strings Daniel P. Berrangé
@ 2021-01-06 13:48 ` Laurent Vivier
2021-01-06 14:36 ` Laurent Vivier
2021-01-13 15:18 ` Stefan Hajnoczi
2 siblings, 0 replies; 5+ messages in thread
From: Laurent Vivier @ 2021-01-06 13:48 UTC (permalink / raw)
To: Daniel P. Berrangé, qemu-devel; +Cc: William Cohen, Stefan Hajnoczi
On 06/01/2021 14:02, Daniel P. Berrangé wrote:
> All variables are 64-bit and so %l / %ll are not required, and the
> latter is actually invalid:
>
> $ sudo stap -e 'probe begin{printf ("BEGIN")}' -I .
> parse error: invalid or missing conversion specifier
> saw: operator ',' at ./qemu-system-x86_64-log.stp:15118:101
> source: printf("%d@%d vhost_vdpa_set_log_base dev: %p base: 0x%x size: %llu
> refcnt: %d fd: %d log: %p\n", pid(), gettimeofday_ns(), dev, base, size, refcnt, fd, log)
>
> ^
>
> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
> ---
> scripts/tracetool/format/log_stap.py | 7 ++++++-
> 1 file changed, 6 insertions(+), 1 deletion(-)
>
> In v2:
>
> - Change existing logic that stripped %z to handle %l/%ll too
>
> diff --git a/scripts/tracetool/format/log_stap.py b/scripts/tracetool/format/log_stap.py
> index b486beb672..fac911a0f4 100644
> --- a/scripts/tracetool/format/log_stap.py
> +++ b/scripts/tracetool/format/log_stap.py
> @@ -77,7 +77,12 @@ def c_fmt_to_stap(fmt):
> elif state == STATE_LITERAL:
> bits.append(literal)
>
> - fmt = re.sub("%(\d*)z(x|u|d)", "%\\1\\2", "".join(bits))
> + # All variables in systemtap are 64-bit in size
> + # The "%l" integer size qualifier is thus redundant
> + # and "%ll" is not valid at all. Simiarly the size_t
> + # based "%z" size qualifier is not valid. We just
> + # strip all size qualifiers for sanity.
> + fmt = re.sub("%(\d*)(l+|z)(x|u|d)", "%\\1\\3", "".join(bits))
> return fmt
>
> def generate(events, backend, group):
>
Reviewed-by: Laurent Vivier <lvivier@redhat.com>
Tested-by: Laurent Vivier <lvivier@redhat.com>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v2] tracetool: also strip %l and %ll from systemtap format strings
2021-01-06 13:02 [PATCH v2] tracetool: also strip %l and %ll from systemtap format strings Daniel P. Berrangé
2021-01-06 13:48 ` Laurent Vivier
@ 2021-01-06 14:36 ` Laurent Vivier
2021-01-06 16:49 ` Philippe Mathieu-Daudé
2021-01-13 15:18 ` Stefan Hajnoczi
2 siblings, 1 reply; 5+ messages in thread
From: Laurent Vivier @ 2021-01-06 14:36 UTC (permalink / raw)
To: Daniel P. Berrangé, qemu-devel; +Cc: William Cohen, Stefan Hajnoczi
On 06/01/2021 14:02, Daniel P. Berrangé wrote:
> All variables are 64-bit and so %l / %ll are not required, and the
> latter is actually invalid:
>
> $ sudo stap -e 'probe begin{printf ("BEGIN")}' -I .
> parse error: invalid or missing conversion specifier
> saw: operator ',' at ./qemu-system-x86_64-log.stp:15118:101
> source: printf("%d@%d vhost_vdpa_set_log_base dev: %p base: 0x%x size: %llu
> refcnt: %d fd: %d log: %p\n", pid(), gettimeofday_ns(), dev, base, size, refcnt, fd, log)
>
> ^
>
> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
> ---
> scripts/tracetool/format/log_stap.py | 7 ++++++-
> 1 file changed, 6 insertions(+), 1 deletion(-)
>
> In v2:
>
> - Change existing logic that stripped %z to handle %l/%ll too
>
> diff --git a/scripts/tracetool/format/log_stap.py b/scripts/tracetool/format/log_stap.py
> index b486beb672..fac911a0f4 100644
> --- a/scripts/tracetool/format/log_stap.py
> +++ b/scripts/tracetool/format/log_stap.py
> @@ -77,7 +77,12 @@ def c_fmt_to_stap(fmt):
> elif state == STATE_LITERAL:
> bits.append(literal)
>
> - fmt = re.sub("%(\d*)z(x|u|d)", "%\\1\\2", "".join(bits))
> + # All variables in systemtap are 64-bit in size
> + # The "%l" integer size qualifier is thus redundant
> + # and "%ll" is not valid at all. Simiarly the size_t
Didn't see the typo the first time:
s/Simiarly/Similarly/
Thanks,
Laurent
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v2] tracetool: also strip %l and %ll from systemtap format strings
2021-01-06 14:36 ` Laurent Vivier
@ 2021-01-06 16:49 ` Philippe Mathieu-Daudé
0 siblings, 0 replies; 5+ messages in thread
From: Philippe Mathieu-Daudé @ 2021-01-06 16:49 UTC (permalink / raw)
To: Laurent Vivier, Daniel P. Berrangé, qemu-devel
Cc: William Cohen, Stefan Hajnoczi
On 1/6/21 3:36 PM, Laurent Vivier wrote:
> On 06/01/2021 14:02, Daniel P. Berrangé wrote:
>> All variables are 64-bit and so %l / %ll are not required, and the
>> latter is actually invalid:
>>
>> $ sudo stap -e 'probe begin{printf ("BEGIN")}' -I .
>> parse error: invalid or missing conversion specifier
>> saw: operator ',' at ./qemu-system-x86_64-log.stp:15118:101
>> source: printf("%d@%d vhost_vdpa_set_log_base dev: %p base: 0x%x size: %llu
>> refcnt: %d fd: %d log: %p\n", pid(), gettimeofday_ns(), dev, base, size, refcnt, fd, log)
>>
>> ^
>>
>> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
>> ---
>> scripts/tracetool/format/log_stap.py | 7 ++++++-
>> 1 file changed, 6 insertions(+), 1 deletion(-)
>>
>> In v2:
>>
>> - Change existing logic that stripped %z to handle %l/%ll too
>>
>> diff --git a/scripts/tracetool/format/log_stap.py b/scripts/tracetool/format/log_stap.py
>> index b486beb672..fac911a0f4 100644
>> --- a/scripts/tracetool/format/log_stap.py
>> +++ b/scripts/tracetool/format/log_stap.py
>> @@ -77,7 +77,12 @@ def c_fmt_to_stap(fmt):
>> elif state == STATE_LITERAL:
>> bits.append(literal)
>>
>> - fmt = re.sub("%(\d*)z(x|u|d)", "%\\1\\2", "".join(bits))
>> + # All variables in systemtap are 64-bit in size
>> + # The "%l" integer size qualifier is thus redundant
>> + # and "%ll" is not valid at all. Simiarly the size_t
>
> Didn't see the typo the first time:
>
> s/Simiarly/Similarly/
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v2] tracetool: also strip %l and %ll from systemtap format strings
2021-01-06 13:02 [PATCH v2] tracetool: also strip %l and %ll from systemtap format strings Daniel P. Berrangé
2021-01-06 13:48 ` Laurent Vivier
2021-01-06 14:36 ` Laurent Vivier
@ 2021-01-13 15:18 ` Stefan Hajnoczi
2 siblings, 0 replies; 5+ messages in thread
From: Stefan Hajnoczi @ 2021-01-13 15:18 UTC (permalink / raw)
To: Daniel P. Berrangé; +Cc: Laurent Vivier, William Cohen, qemu-devel
[-- Attachment #1: Type: text/plain, Size: 959 bytes --]
On Wed, Jan 06, 2021 at 01:02:39PM +0000, Daniel P. Berrangé wrote:
> All variables are 64-bit and so %l / %ll are not required, and the
> latter is actually invalid:
>
> $ sudo stap -e 'probe begin{printf ("BEGIN")}' -I .
> parse error: invalid or missing conversion specifier
> saw: operator ',' at ./qemu-system-x86_64-log.stp:15118:101
> source: printf("%d@%d vhost_vdpa_set_log_base dev: %p base: 0x%x size: %llu
> refcnt: %d fd: %d log: %p\n", pid(), gettimeofday_ns(), dev, base, size, refcnt, fd, log)
>
> ^
>
> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
> ---
> scripts/tracetool/format/log_stap.py | 7 ++++++-
> 1 file changed, 6 insertions(+), 1 deletion(-)
>
> In v2:
>
> - Change existing logic that stripped %z to handle %l/%ll too
Thanks, applied to my tracing tree with Laurent's typo fix:
https://gitlab.com/stefanha/qemu/commits/tracing
Stefan
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2021-01-13 15:24 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-01-06 13:02 [PATCH v2] tracetool: also strip %l and %ll from systemtap format strings Daniel P. Berrangé
2021-01-06 13:48 ` Laurent Vivier
2021-01-06 14:36 ` Laurent Vivier
2021-01-06 16:49 ` Philippe Mathieu-Daudé
2021-01-13 15:18 ` Stefan Hajnoczi
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.