qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] qemu_clock_get_ns does not take into account icount_tim


From: Humberto \"SilverOne\" Carvalho
Subject: Re: [Qemu-devel] qemu_clock_get_ns does not take into account icount_time_shift
Date: Wed, 25 Jul 2018 21:34:43 +0100

Hello,

Actually this is incorrect because cpu_get_icount() invokes
cpu_icount_to_ns later on. i apologize for the spam.

Best Regards,
Humberto "SilverOne" Carvalho

On Wed, Jul 25, 2018 at 8:25 PM Humberto "SilverOne" Carvalho <
address@hidden> wrote:

> Hello,
>
> When using icount with shift, virtual time is defined as icount << N.
> However, qemu_clock_get_ns simply returns cpu_get_icount, thereby returning
> icount instead of icount << N.
>
> If you check the qemu/util/qemu-timer.c file you will find the following
> function:
>
> 597: int64_t qemu_clock_get_ns(QEMUClockType type)
> 598: {
> ....
> 602: switch (type) {
> ....
> 606: case QEMU_CLOCK_VIRTUAL:
> 607: if (use_icount) {
> 608: return cpu_get_icount();
>
> Now on line 606, in case we requested QEMU_CLOCK_VIRTUAL, and we are using
> icount, the value of cpu_get_icount(); will be returned.
>
> However if I understand correctly, in order to convert icount to ns, you
> must take into account the icount shift -- as defined in the documentation:
> "The virtual cpu will execute one instruction every 2^N ns of virtual
> time.".
>
> Therefor, the correct value to return would be
> cpu_icount_to_ns(cpu_get_icount()), where cpu_icount_to_ns is defined in
> cpus.c:
>
> 296: int64_t cpu_icount_to_ns(int64_t icount)
> 297: {
> 298: return icount << icount_time_shift;
> 299: }
>
> Best Regards,
> Humberto "SilverOne" Carvalho
>


reply via email to

[Prev in Thread] Current Thread [Next in Thread]