block: do not use get_clock()

Use the external qemu-timer API instead.

No one else should be calling cpu_get_clock(), get_clock() and
get_clock_realtime() directly; they are internal functions and they
should be confined to qemu-timer.c and cpus.c (where the icount
implementation resides).  All accesses should go through
qemu_clock_get_ns.

Cc: kwolf@redhat.com
Cc: stefanha@redhat.com
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Message-id: 1417010463-3527-2-git-send-email-pbonzini@redhat.com
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
Paolo Bonzini 2014-11-28 11:38:03 +00:00 committed by Kevin Wolf
parent c5f6e493bb
commit a56ebc6ba4
2 changed files with 8 additions and 6 deletions

View File

@ -24,6 +24,7 @@
#include "block/accounting.h" #include "block/accounting.h"
#include "block/block_int.h" #include "block/block_int.h"
#include "qemu/timer.h"
void block_acct_start(BlockAcctStats *stats, BlockAcctCookie *cookie, void block_acct_start(BlockAcctStats *stats, BlockAcctCookie *cookie,
int64_t bytes, enum BlockAcctType type) int64_t bytes, enum BlockAcctType type)
@ -31,7 +32,7 @@ void block_acct_start(BlockAcctStats *stats, BlockAcctCookie *cookie,
assert(type < BLOCK_MAX_IOTYPE); assert(type < BLOCK_MAX_IOTYPE);
cookie->bytes = bytes; cookie->bytes = bytes;
cookie->start_time_ns = get_clock(); cookie->start_time_ns = qemu_clock_get_ns(QEMU_CLOCK_REALTIME);
cookie->type = type; cookie->type = type;
} }
@ -41,7 +42,8 @@ void block_acct_done(BlockAcctStats *stats, BlockAcctCookie *cookie)
stats->nr_bytes[cookie->type] += cookie->bytes; stats->nr_bytes[cookie->type] += cookie->bytes;
stats->nr_ops[cookie->type]++; stats->nr_ops[cookie->type]++;
stats->total_time_ns[cookie->type] += get_clock() - cookie->start_time_ns; stats->total_time_ns[cookie->type] +=
qemu_clock_get_ns(QEMU_CLOCK_REALTIME) - cookie->start_time_ns;
} }

View File

@ -1922,7 +1922,7 @@ static int fd_open(BlockDriverState *bs)
return 0; return 0;
last_media_present = (s->fd >= 0); last_media_present = (s->fd >= 0);
if (s->fd >= 0 && if (s->fd >= 0 &&
(get_clock() - s->fd_open_time) >= FD_OPEN_TIMEOUT) { (qemu_clock_get_ns(QEMU_CLOCK_REALTIME) - s->fd_open_time) >= FD_OPEN_TIMEOUT) {
qemu_close(s->fd); qemu_close(s->fd);
s->fd = -1; s->fd = -1;
#ifdef DEBUG_FLOPPY #ifdef DEBUG_FLOPPY
@ -1931,7 +1931,7 @@ static int fd_open(BlockDriverState *bs)
} }
if (s->fd < 0) { if (s->fd < 0) {
if (s->fd_got_error && if (s->fd_got_error &&
(get_clock() - s->fd_error_time) < FD_OPEN_TIMEOUT) { (qemu_clock_get_ns(QEMU_CLOCK_REALTIME) - s->fd_error_time) < FD_OPEN_TIMEOUT) {
#ifdef DEBUG_FLOPPY #ifdef DEBUG_FLOPPY
printf("No floppy (open delayed)\n"); printf("No floppy (open delayed)\n");
#endif #endif
@ -1939,7 +1939,7 @@ static int fd_open(BlockDriverState *bs)
} }
s->fd = qemu_open(bs->filename, s->open_flags & ~O_NONBLOCK); s->fd = qemu_open(bs->filename, s->open_flags & ~O_NONBLOCK);
if (s->fd < 0) { if (s->fd < 0) {
s->fd_error_time = get_clock(); s->fd_error_time = qemu_clock_get_ns(QEMU_CLOCK_REALTIME);
s->fd_got_error = 1; s->fd_got_error = 1;
if (last_media_present) if (last_media_present)
s->fd_media_changed = 1; s->fd_media_changed = 1;
@ -1954,7 +1954,7 @@ static int fd_open(BlockDriverState *bs)
} }
if (!last_media_present) if (!last_media_present)
s->fd_media_changed = 1; s->fd_media_changed = 1;
s->fd_open_time = get_clock(); s->fd_open_time = qemu_clock_get_ns(QEMU_CLOCK_REALTIME);
s->fd_got_error = 0; s->fd_got_error = 0;
return 0; return 0;
} }