|
From: | andrzej zaborowski |
Subject: | Re: [Qemu-devel] Patch: cpu-all.h for better cycle counter |
Date: | Mon, 26 Mar 2007 00:07:16 +0200 |
Hi, On 21/03/07, Todd T. Fries <address@hidden> wrote:
This is relative to the 20070319 snapshot. --- cpu-all.h.orig Fri Mar 16 18:58:11 2007 +++ cpu-all.h Tue Mar 20 21:14:10 2007 @@ -1012,13 +1012,22 @@ static inline int64_t cpu_get_real_ticks #endif } #else -/* The host CPU doesn't have an easily accessible cycle counter. - Just return a monotonically increasing vlue. This will be totally wrong, - but hopefully better than nothing. */ +# warning non-optimized CPU +#include <sys/time.h> +#include <time.h> + static inline int64_t cpu_get_real_ticks (void) { - static int64_t ticks = 0; - return ticks++; + struct timeval tv; + static int64_t i = 0; + int64_t j; + + gettimeofday(&tv, NULL); + do { + j = (tv.tv_sec * (uint64_t) 1000000) + tv.tv_usec; + } while (i == j); + i = j; + return j;
Isn't this an infinite loop? gettimeofday() was left out of the loop. How about "return j + (ticks++)" instead of the loop? If I understand correctly it may slow things down to below 1Hz.
} #endif -- Todd Fries .. address@hidden _____________________________________________ | \ 1.636.410.0632 (voice) | Free Daemon Consulting, LLC \ 1.405.227.9094 (voice) | http://FreeDaemonConsulting.com \ 1.866.792.3418 (FAX) | "..in support of free software solutions." \ 250797 (FWD) | \ \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ 37E7 D3EB 74D0 8D66 A68D B866 0326 204E 3F42 004A http://todd.fries.net/pgp.txt
Regards, Andrew
[Prev in Thread] | Current Thread | [Next in Thread] |