diff mbox

timer.h: Provide better monotonic time

Message ID 20170418191817.10430-1-bobby.prani@gmail.com
State New
Headers show

Commit Message

Pranith Kumar April 18, 2017, 7:18 p.m. UTC
Tested and confirmed that the stretch i386 debian qcow2 image on a
raspberry pi 2 works.

Fixes: LP#: 893208 <https://bugs.launchpad.net/qemu/+bug/893208/>
Signed-off-by: Pranith Kumar <bobby.prani@gmail.com>
---
 include/qemu/timer.h | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

Comments

Peter Maydell June 2, 2017, 12:24 p.m. UTC | #1
On 18 April 2017 at 20:18, Pranith Kumar <bobby.prani@gmail.com> wrote:
> Tested and confirmed that the stretch i386 debian qcow2 image on a
> raspberry pi 2 works.
>
> Fixes: LP#: 893208 <https://bugs.launchpad.net/qemu/+bug/893208/>
> Signed-off-by: Pranith Kumar <bobby.prani@gmail.com>
> ---
>  include/qemu/timer.h | 5 ++---
>  1 file changed, 2 insertions(+), 3 deletions(-)
>
> diff --git a/include/qemu/timer.h b/include/qemu/timer.h
> index 8a1eb74839..1b518bca30 100644
> --- a/include/qemu/timer.h
> +++ b/include/qemu/timer.h
> @@ -1020,10 +1020,9 @@ static inline int64_t cpu_get_host_ticks(void)
>  /* The host CPU doesn't have an easily accessible cycle counter.
>     Just return a monotonically increasing value.  This will be
>     totally wrong, but hopefully better than nothing.  */
> -static inline int64_t cpu_get_host_ticks (void)
> +static inline int64_t cpu_get_host_ticks(void)
>  {
> -    static int64_t ticks = 0;
> -    return ticks++;
> +    return get_clock();
>  }
>  #endif

Hmm, it looks like this patch got lost. Paolo, did you want to
give it a reviewed-by? From the discussion on v1 it sounded
like you had the best grip on the timer code ;-)

(Does the comment on the function need updating ?)

thanks
-- PMM
Paolo Bonzini June 5, 2017, 9:27 a.m. UTC | #2
On 02/06/2017 14:24, Peter Maydell wrote:
> On 18 April 2017 at 20:18, Pranith Kumar <bobby.prani@gmail.com> wrote:
>> Tested and confirmed that the stretch i386 debian qcow2 image on a
>> raspberry pi 2 works.
>>
>> Fixes: LP#: 893208 <https://bugs.launchpad.net/qemu/+bug/893208/>
>> Signed-off-by: Pranith Kumar <bobby.prani@gmail.com>
>> ---
>>  include/qemu/timer.h | 5 ++---
>>  1 file changed, 2 insertions(+), 3 deletions(-)
>>
>> diff --git a/include/qemu/timer.h b/include/qemu/timer.h
>> index 8a1eb74839..1b518bca30 100644
>> --- a/include/qemu/timer.h
>> +++ b/include/qemu/timer.h
>> @@ -1020,10 +1020,9 @@ static inline int64_t cpu_get_host_ticks(void)
>>  /* The host CPU doesn't have an easily accessible cycle counter.
>>     Just return a monotonically increasing value.  This will be
>>     totally wrong, but hopefully better than nothing.  */
>> -static inline int64_t cpu_get_host_ticks (void)
>> +static inline int64_t cpu_get_host_ticks(void)
>>  {
>> -    static int64_t ticks = 0;
>> -    return ticks++;
>> +    return get_clock();
>>  }
>>  #endif
> 
> Hmm, it looks like this patch got lost. Paolo, did you want to
> give it a reviewed-by? From the discussion on v1 it sounded
> like you had the best grip on the timer code ;-)

Sure:

Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>

> (Does the comment on the function need updating ?)

Apart from "totally", it's still pretty correct. :)

Thanks,

Paolo
Peter Maydell June 7, 2017, 2:30 p.m. UTC | #3
On 5 June 2017 at 10:27, Paolo Bonzini <pbonzini@redhat.com> wrote:
>
>
> On 02/06/2017 14:24, Peter Maydell wrote:
>> On 18 April 2017 at 20:18, Pranith Kumar <bobby.prani@gmail.com> wrote:
>>> Tested and confirmed that the stretch i386 debian qcow2 image on a
>>> raspberry pi 2 works.
>>>
>>> Fixes: LP#: 893208 <https://bugs.launchpad.net/qemu/+bug/893208/>
>>> Signed-off-by: Pranith Kumar <bobby.prani@gmail.com>
>>> ---
>>>  include/qemu/timer.h | 5 ++---
>>>  1 file changed, 2 insertions(+), 3 deletions(-)
>>>
>>> diff --git a/include/qemu/timer.h b/include/qemu/timer.h
>>> index 8a1eb74839..1b518bca30 100644
>>> --- a/include/qemu/timer.h
>>> +++ b/include/qemu/timer.h
>>> @@ -1020,10 +1020,9 @@ static inline int64_t cpu_get_host_ticks(void)
>>>  /* The host CPU doesn't have an easily accessible cycle counter.
>>>     Just return a monotonically increasing value.  This will be
>>>     totally wrong, but hopefully better than nothing.  */
>>> -static inline int64_t cpu_get_host_ticks (void)
>>> +static inline int64_t cpu_get_host_ticks(void)
>>>  {
>>> -    static int64_t ticks = 0;
>>> -    return ticks++;
>>> +    return get_clock();
>>>  }
>>>  #endif
>>
>> Hmm, it looks like this patch got lost. Paolo, did you want to
>> give it a reviewed-by? From the discussion on v1 it sounded
>> like you had the best grip on the timer code ;-)
>
> Sure:
>
> Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
>
>> (Does the comment on the function need updating ?)
>
> Apart from "totally", it's still pretty correct. :)

Thanks. I'll apply this to my arm queue since in practice only
ARM hosts are affected by this change.

-- PMM
diff mbox

Patch

diff --git a/include/qemu/timer.h b/include/qemu/timer.h
index 8a1eb74839..1b518bca30 100644
--- a/include/qemu/timer.h
+++ b/include/qemu/timer.h
@@ -1020,10 +1020,9 @@  static inline int64_t cpu_get_host_ticks(void)
 /* The host CPU doesn't have an easily accessible cycle counter.
    Just return a monotonically increasing value.  This will be
    totally wrong, but hopefully better than nothing.  */
-static inline int64_t cpu_get_host_ticks (void)
+static inline int64_t cpu_get_host_ticks(void)
 {
-    static int64_t ticks = 0;
-    return ticks++;
+    return get_clock();
 }
 #endif