Move the 'clock_propagate' trace event to clock_propagate_period() to display the recursive propagation, and add 'propagate_children' event to closely look at the clock propagation for each children in the clock tree.
Signed-off-by: Philippe Mathieu-Daudé <f4...@amsat.org> --- hw/core/clock.c | 8 +++++++- hw/core/trace-events | 3 ++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/hw/core/clock.c b/hw/core/clock.c index fc5a99683f8..a42dc3c3d29 100644 --- a/hw/core/clock.c +++ b/hw/core/clock.c @@ -79,7 +79,14 @@ static void clock_propagate_period(Clock *clk, bool call_callbacks) { Clock *child; + trace_clock_propagate(CLOCK_PATH(clk), + CLOCK_PERIOD_TO_HZ(clk->period), + call_callbacks); QLIST_FOREACH(child, &clk->children, sibling) { + trace_clock_propagate_children(CLOCK_PATH(clk), + CLOCK_PERIOD_TO_HZ(clk->period), + CLOCK_PATH(child), + CLOCK_PERIOD_TO_HZ(child->period)); if (child->period != clk->period) { if (call_callbacks) { clock_call_callback(child, ClockPreUpdate); @@ -99,7 +106,6 @@ static void clock_propagate_period(Clock *clk, bool call_callbacks) void clock_propagate(Clock *clk) { assert(clk->source == NULL); - trace_clock_propagate(CLOCK_PATH(clk)); clock_propagate_period(clk, true); } diff --git a/hw/core/trace-events b/hw/core/trace-events index 360ddeb2c87..22df6789918 100644 --- a/hw/core/trace-events +++ b/hw/core/trace-events @@ -32,5 +32,6 @@ resettable_transitional_function(void *obj, const char *objtype) "obj=%p(%s)" clock_set_source(const char *clk, const char *src) "'%s', src='%s'" clock_disconnect(const char *clk) "'%s'" clock_set(const char *clk, uint64_t old, uint64_t new) "'%s', %"PRIu64"Hz->%"PRIu64"Hz" -clock_propagate(const char *clk) "'%s'" +clock_propagate(const char *src, uint64_t src_hz, int cb) "src='%s' val=%"PRIu64"Hz cb=%d" +clock_propagate_children(const char *src, uint64_t src_hz, const char *clk, uint64_t clk_hz) "src='%s'@%"PRIu64"Hz -> clk='%s'@%"PRIu64"Hz" clock_update(const char *clk, const char *src, uint64_t hz, int cb) "'%s', src='%s', val=%"PRIu64"Hz cb=%d" -- 2.26.3