diff options
author | Eric Blake | 2017-03-13 20:55:18 +0100 |
---|---|---|
committer | Stefan Hajnoczi | 2017-03-24 10:21:42 +0100 |
commit | 67adf4b39806df42b4c96377b37004de0df3a1fd (patch) | |
tree | ce779dd1318d8e99c651e63b03d3354b1556515f /block | |
parent | qom: Fix regression with 'qom-type' (diff) | |
download | qemu-67adf4b39806df42b4c96377b37004de0df3a1fd.tar.gz qemu-67adf4b39806df42b4c96377b37004de0df3a1fd.tar.xz qemu-67adf4b39806df42b4c96377b37004de0df3a1fd.zip |
trace: Fix backwards mirror_yield parameters
block/trace-events lists the parameters for mirror_yield
consistently with other mirror events (cnt just after s, like in
mirror_before_sleep; in_flight last, like in mirror_yield_in_flight).
But the callers were passing parameters in the wrong order, leading
to poor trace messages, including type truncation when there are
more than 4G dirty sectors involved. Broken since its introduction
in commit bd48bde.
While touching this, ensure that all callers use the same type
(uint64_t) for cnt, as a later patch will enable the compiler to do
stricter type-checking.
Signed-off-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Diffstat (limited to 'block')
-rw-r--r-- | block/mirror.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/block/mirror.c b/block/mirror.c index ca4baa510a..9e2fecc15e 100644 --- a/block/mirror.c +++ b/block/mirror.c @@ -634,7 +634,8 @@ static int coroutine_fn mirror_dirty_init(MirrorBlockJob *s) } if (s->in_flight >= MAX_IN_FLIGHT) { - trace_mirror_yield(s, s->in_flight, s->buf_free_count, -1); + trace_mirror_yield(s, UINT64_MAX, s->buf_free_count, + s->in_flight); mirror_wait_for_io(s); continue; } @@ -809,7 +810,7 @@ static void coroutine_fn mirror_run(void *opaque) s->common.iostatus == BLOCK_DEVICE_IO_STATUS_OK) { if (s->in_flight >= MAX_IN_FLIGHT || s->buf_free_count == 0 || (cnt == 0 && s->in_flight > 0)) { - trace_mirror_yield(s, s->in_flight, s->buf_free_count, cnt); + trace_mirror_yield(s, cnt, s->buf_free_count, s->in_flight); mirror_wait_for_io(s); continue; } else if (cnt != 0) { |