* [Qemu-devel] [PULL 0/3] Tracing patches
@ 2018-02-19 16:19 Stefan Hajnoczi
2018-02-19 16:19 ` [Qemu-devel] [PULL 1/3] tracetool: Update argument format regex to non-greedy star Stefan Hajnoczi
` (3 more replies)
0 siblings, 4 replies; 5+ messages in thread
From: Stefan Hajnoczi @ 2018-02-19 16:19 UTC (permalink / raw)
To: qemu-devel; +Cc: Peter Maydell, Stefan Hajnoczi
The following changes since commit e5ecc287a7bd24a1364e23e263cb60cfc8d21eb5:
Merge remote-tracking branch 'remotes/dgilbert/tags/pull-hmp-20180216' into staging (2018-02-16 18:39:05 +0000)
are available in the Git repository at:
git://github.com/stefanha/qemu.git tags/tracing-pull-request
for you to fetch changes up to 7f1d87ab0fd94cef5086e2879716958303281054:
trace: avoid SystemTap "char const" warnings (2018-02-19 13:09:44 +0000)
----------------------------------------------------------------
----------------------------------------------------------------
Jon Emil Jahren (2):
tracetool: Update argument format regex to non-greedy star
tracetool: For ust trace bool type as ctf_integer
Stefan Hajnoczi (1):
trace: avoid SystemTap "char const" warnings
hw/block/trace-events | 4 ++--
scripts/tracetool/__init__.py | 5 +++--
scripts/tracetool/format/ust_events_h.py | 3 ++-
trace-events | 12 ++++++------
4 files changed, 13 insertions(+), 11 deletions(-)
--
2.14.3
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Qemu-devel] [PULL 1/3] tracetool: Update argument format regex to non-greedy star
2018-02-19 16:19 [Qemu-devel] [PULL 0/3] Tracing patches Stefan Hajnoczi
@ 2018-02-19 16:19 ` Stefan Hajnoczi
2018-02-19 16:19 ` [Qemu-devel] [PULL 2/3] tracetool: For ust trace bool type as ctf_integer Stefan Hajnoczi
` (2 subsequent siblings)
3 siblings, 0 replies; 5+ messages in thread
From: Stefan Hajnoczi @ 2018-02-19 16:19 UTC (permalink / raw)
To: qemu-devel; +Cc: Peter Maydell, Jon Emil Jahren, Stefan Hajnoczi
From: Jon Emil Jahren <jonemilj@gmail.com>
Using the greedy star matching, arguments like "...%"PRIx64 caused issues
for functions with multiple PRI formats.
The issue was only seen with the ust backend, as it is the only one
using the format regex.
The result for many functions was that the arguments coming after the
greedy star end was left out of the tracepoint, and in some cases some
of the arguments that was traced had the wrong format.
Signed-off-by: Jon Emil Jahren <jonemilj@gmail.com>
Message-id: 20180129041648.30884-2-jonemilj@gmail.com
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
---
scripts/tracetool/__init__.py | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/scripts/tracetool/__init__.py b/scripts/tracetool/__init__.py
index 1a9733da9a..3646c2b9fc 100644
--- a/scripts/tracetool/__init__.py
+++ b/scripts/tracetool/__init__.py
@@ -261,8 +261,9 @@ class Event(object):
self.name,
self.args,
fmt)
-
- _FMT = re.compile("(%[\d\.]*\w+|%.*PRI\S+)")
+ # Star matching on PRI is dangerous as one might have multiple
+ # arguments with that format, hence the non-greedy version of it.
+ _FMT = re.compile("(%[\d\.]*\w+|%.*?PRI\S+)")
def formats(self):
"""List conversion specifiers in the argument print format string."""
--
2.14.3
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [Qemu-devel] [PULL 2/3] tracetool: For ust trace bool type as ctf_integer
2018-02-19 16:19 [Qemu-devel] [PULL 0/3] Tracing patches Stefan Hajnoczi
2018-02-19 16:19 ` [Qemu-devel] [PULL 1/3] tracetool: Update argument format regex to non-greedy star Stefan Hajnoczi
@ 2018-02-19 16:19 ` Stefan Hajnoczi
2018-02-19 16:19 ` [Qemu-devel] [PULL 3/3] trace: avoid SystemTap "char const" warnings Stefan Hajnoczi
2018-02-19 18:40 ` [Qemu-devel] [PULL 0/3] Tracing patches Peter Maydell
3 siblings, 0 replies; 5+ messages in thread
From: Stefan Hajnoczi @ 2018-02-19 16:19 UTC (permalink / raw)
To: qemu-devel; +Cc: Peter Maydell, Jon Emil Jahren, Stefan Hajnoczi
From: Jon Emil Jahren <jonemilj@gmail.com>
Previously functions having arguments of type bool was not traced
properly. The bool arguments were missing from the trace.
Signed-off-by: Jon Emil Jahren <jonemilj@gmail.com>
Message-id: 20180129041648.30884-3-jonemilj@gmail.com
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
---
scripts/tracetool/format/ust_events_h.py | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/scripts/tracetool/format/ust_events_h.py b/scripts/tracetool/format/ust_events_h.py
index 514294c2cc..4e95e9b3f9 100644
--- a/scripts/tracetool/format/ust_events_h.py
+++ b/scripts/tracetool/format/ust_events_h.py
@@ -79,7 +79,8 @@ def generate(events, backend, group):
out(' ctf_integer_hex('+ t + ', ' + n + ', ' + n + ')')
elif ("ptr" in t) or ("*" in t):
out(' ctf_integer_hex('+ t + ', ' + n + ', ' + n + ')')
- elif ('int' in t) or ('long' in t) or ('unsigned' in t) or ('size_t' in t):
+ elif ('int' in t) or ('long' in t) or ('unsigned' in t) \
+ or ('size_t' in t) or ('bool' in t):
out(' ctf_integer(' + t + ', ' + n + ', ' + n + ')')
elif ('double' in t) or ('float' in t):
out(' ctf_float(' + t + ', ' + n + ', ' + n + ')')
--
2.14.3
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [Qemu-devel] [PULL 3/3] trace: avoid SystemTap "char const" warnings
2018-02-19 16:19 [Qemu-devel] [PULL 0/3] Tracing patches Stefan Hajnoczi
2018-02-19 16:19 ` [Qemu-devel] [PULL 1/3] tracetool: Update argument format regex to non-greedy star Stefan Hajnoczi
2018-02-19 16:19 ` [Qemu-devel] [PULL 2/3] tracetool: For ust trace bool type as ctf_integer Stefan Hajnoczi
@ 2018-02-19 16:19 ` Stefan Hajnoczi
2018-02-19 18:40 ` [Qemu-devel] [PULL 0/3] Tracing patches Peter Maydell
3 siblings, 0 replies; 5+ messages in thread
From: Stefan Hajnoczi @ 2018-02-19 16:19 UTC (permalink / raw)
To: qemu-devel; +Cc: Peter Maydell, Stefan Hajnoczi, Daniel P . Berrange
SystemTap's dtrace(1) produces the following warning when it encounters
"char const" instead of "const char":
Warning: /usr/bin/dtrace:trace-dtrace-root.dtrace:66: syntax error near:
probe flatview_destroy_rcu
Warning: Proceeding as if --no-pyparsing was given.
This is a limitation in current SystemTap releases. I have sent a patch
upstream to accept "char const" since it is valid C:
https://sourceware.org/ml/systemtap/2018-q1/msg00017.html
In QEMU we still wish to avoid warnings in the current SystemTap
release. It's simple enough to replace "char const" with "const char".
I'm not changing the documentation or implementing checks to prevent
this from occurring again in the future. The next release of SystemTap
will hopefully resolve this issue.
Cc: Daniel P. Berrange <berrange@redhat.com>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Daniel P. Berrange <berrange@redhat.com>
Message-id: 20180201162625.4276-1-stefanha@redhat.com
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
---
hw/block/trace-events | 4 ++--
trace-events | 12 ++++++------
2 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/hw/block/trace-events b/hw/block/trace-events
index 5acd495207..6b9e733412 100644
--- a/hw/block/trace-events
+++ b/hw/block/trace-events
@@ -17,7 +17,7 @@ nvme_irq_msix(uint32_t vector) "raising MSI-X IRQ vector %u"
nvme_irq_pin(void) "pulsing IRQ pin"
nvme_irq_masked(void) "IRQ is masked"
nvme_dma_read(uint64_t prp1, uint64_t prp2) "DMA read, prp1=0x%"PRIx64" prp2=0x%"PRIx64""
-nvme_rw(char const *verb, uint32_t blk_count, uint64_t byte_count, uint64_t lba) "%s %"PRIu32" blocks (%"PRIu64" bytes) from LBA %"PRIu64""
+nvme_rw(const char *verb, uint32_t blk_count, uint64_t byte_count, uint64_t lba) "%s %"PRIu32" blocks (%"PRIu64" bytes) from LBA %"PRIu64""
nvme_create_sq(uint64_t addr, uint16_t sqid, uint16_t cqid, uint16_t qsize, uint16_t qflags) "create submission queue, addr=0x%"PRIx64", sqid=%"PRIu16", cqid=%"PRIu16", qsize=%"PRIu16", qflags=%"PRIu16""
nvme_create_cq(uint64_t addr, uint16_t cqid, uint16_t vector, uint16_t size, uint16_t qflags, int ien) "create completion queue, addr=0x%"PRIx64", cqid=%"PRIu16", vector=%"PRIu16", qsize=%"PRIu16", qflags=%"PRIu16", ien=%d"
nvme_del_sq(uint16_t qid) "deleting submission queue sqid=%"PRIu16""
@@ -25,7 +25,7 @@ nvme_del_cq(uint16_t cqid) "deleted completion queue, sqid=%"PRIu16""
nvme_identify_ctrl(void) "identify controller"
nvme_identify_ns(uint16_t ns) "identify namespace, nsid=%"PRIu16""
nvme_identify_nslist(uint16_t ns) "identify namespace list, nsid=%"PRIu16""
-nvme_getfeat_vwcache(char const* result) "get feature volatile write cache, result=%s"
+nvme_getfeat_vwcache(const char* result) "get feature volatile write cache, result=%s"
nvme_getfeat_numq(int result) "get feature number of queues, result=%d"
nvme_setfeat_numq(int reqcq, int reqsq, int gotcq, int gotsq) "requested cq_count=%d sq_count=%d, responding with cq_count=%d sq_count=%d"
nvme_mmio_intm_set(uint64_t data, uint64_t new_mask) "wrote MMIO, interrupt mask set, data=0x%"PRIx64", new_mask=0x%"PRIx64""
diff --git a/trace-events b/trace-events
index ec95e67089..89fcad0fd1 100644
--- a/trace-events
+++ b/trace-events
@@ -73,13 +73,13 @@ flatview_destroy(FlatView *view, MemoryRegion *root) "%p (root %p)"
flatview_destroy_rcu(FlatView *view, MemoryRegion *root) "%p (root %p)"
# gdbstub.c
-gdbstub_op_start(char const *device) "Starting gdbstub using device %s"
+gdbstub_op_start(const char *device) "Starting gdbstub using device %s"
gdbstub_op_exiting(uint8_t code) "notifying exit with code=0x%02x"
gdbstub_op_continue(void) "Continuing all CPUs"
gdbstub_op_continue_cpu(int cpu_index) "Continuing CPU %d"
gdbstub_op_stepping(int cpu_index) "Stepping CPU %d"
-gdbstub_op_extra_info(char const *info) "Thread extra info: %s"
-gdbstub_hit_watchpoint(char const *type, int cpu_gdb_index, uint64_t vaddr) "Watchpoint hit, type=\"%s\" cpu=%d, vaddr=0x%" PRIx64 ""
+gdbstub_op_extra_info(const char *info) "Thread extra info: %s"
+gdbstub_hit_watchpoint(const char *type, int cpu_gdb_index, uint64_t vaddr) "Watchpoint hit, type=\"%s\" cpu=%d, vaddr=0x%" PRIx64 ""
gdbstub_hit_internal_error(void) "RUN_STATE_INTERNAL_ERROR"
gdbstub_hit_break(void) "RUN_STATE_DEBUG"
gdbstub_hit_paused(void) "RUN_STATE_PAUSED"
@@ -87,9 +87,9 @@ gdbstub_hit_shutdown(void) "RUN_STATE_SHUTDOWN"
gdbstub_hit_io_error(void) "RUN_STATE_IO_ERROR"
gdbstub_hit_watchdog(void) "RUN_STATE_WATCHDOG"
gdbstub_hit_unknown(int state) "Unknown run state=0x%x"
-gdbstub_io_reply(char const *message) "Sent: %s"
-gdbstub_io_binaryreply(size_t ofs, char const *line) "0x%04zx: %s"
-gdbstub_io_command(char const *command) "Received: %s"
+gdbstub_io_reply(const char *message) "Sent: %s"
+gdbstub_io_binaryreply(size_t ofs, const char *line) "0x%04zx: %s"
+gdbstub_io_command(const char *command) "Received: %s"
gdbstub_io_got_ack(void) "Got ACK"
gdbstub_io_got_unexpected(uint8_t ch) "Got 0x%02x when expecting ACK/NACK"
gdbstub_err_got_nack(void) "Got NACK, retransmitting"
--
2.14.3
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [Qemu-devel] [PULL 0/3] Tracing patches
2018-02-19 16:19 [Qemu-devel] [PULL 0/3] Tracing patches Stefan Hajnoczi
` (2 preceding siblings ...)
2018-02-19 16:19 ` [Qemu-devel] [PULL 3/3] trace: avoid SystemTap "char const" warnings Stefan Hajnoczi
@ 2018-02-19 18:40 ` Peter Maydell
3 siblings, 0 replies; 5+ messages in thread
From: Peter Maydell @ 2018-02-19 18:40 UTC (permalink / raw)
To: Stefan Hajnoczi; +Cc: QEMU Developers
On 19 February 2018 at 16:19, Stefan Hajnoczi <stefanha@redhat.com> wrote:
> The following changes since commit e5ecc287a7bd24a1364e23e263cb60cfc8d21eb5:
>
> Merge remote-tracking branch 'remotes/dgilbert/tags/pull-hmp-20180216' into staging (2018-02-16 18:39:05 +0000)
>
> are available in the Git repository at:
>
> git://github.com/stefanha/qemu.git tags/tracing-pull-request
>
> for you to fetch changes up to 7f1d87ab0fd94cef5086e2879716958303281054:
>
> trace: avoid SystemTap "char const" warnings (2018-02-19 13:09:44 +0000)
>
> ----------------------------------------------------------------
>
> ----------------------------------------------------------------
>
> Jon Emil Jahren (2):
> tracetool: Update argument format regex to non-greedy star
> tracetool: For ust trace bool type as ctf_integer
>
> Stefan Hajnoczi (1):
> trace: avoid SystemTap "char const" warnings
Applied, thanks.
-- PMM
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2018-02-19 18:40 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-02-19 16:19 [Qemu-devel] [PULL 0/3] Tracing patches Stefan Hajnoczi
2018-02-19 16:19 ` [Qemu-devel] [PULL 1/3] tracetool: Update argument format regex to non-greedy star Stefan Hajnoczi
2018-02-19 16:19 ` [Qemu-devel] [PULL 2/3] tracetool: For ust trace bool type as ctf_integer Stefan Hajnoczi
2018-02-19 16:19 ` [Qemu-devel] [PULL 3/3] trace: avoid SystemTap "char const" warnings Stefan Hajnoczi
2018-02-19 18:40 ` [Qemu-devel] [PULL 0/3] Tracing patches Peter Maydell
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).