On 10 November 2015 at 13:24, Ivan Khoronzhuk <[email protected]>
wrote:

>
>
> On 10.11.15 13:37, Ivan Khoronzhuk wrote:
>
>>
>>
>> On 10.11.15 13:11, Maxim Uvarov wrote:
>>
>>> On 11/10/2015 14:01, Ivan Khoronzhuk wrote:
>>>
>>>> If tick is lost then application should be warned about this.
>>>> It means that actual timer resolution is worse than expected.
>>>> The default timer resolution is set 10ms, that is equal to jiffy
>>>> on most systems. The default resolution is set bearing in mind
>>>> that on a CPU runs maximum two threads that ideally fits in 10ms.
>>>> But user can change it to be smaller, in case if CPU0 is isolated
>>>> and it handles only the timer ticks. This patch helps user to set
>>>> correct timer resolution.
>>>>
>>>> Signed-off-by: Ivan Khoronzhuk <[email protected]>
>>>> ---
>>>>
>>>> Since v1:
>>>> - changed ODP_ABORT on ODP_ERR
>>>>
>>>> v1:
>>>> https://lists.linaro.org/pipermail/lng-odp/2015-November/017026.html
>>>>
>>>>   platform/linux-generic/odp_timer.c | 7 +++++++
>>>>   1 file changed, 7 insertions(+)
>>>>
>>>> diff --git a/platform/linux-generic/odp_timer.c
>>>> b/platform/linux-generic/odp_timer.c
>>>> index e8f0267..aa80256 100644
>>>> --- a/platform/linux-generic/odp_timer.c
>>>> +++ b/platform/linux-generic/odp_timer.c
>>>> @@ -632,7 +632,14 @@ static unsigned
>>>> odp_timer_pool_expire(odp_timer_pool_t tpid, uint64_t tick)
>>>>   static void timer_notify(sigval_t sigval)
>>>>   {
>>>> +    uint64_t overrun;
>>>>       odp_timer_pool *tp = (odp_timer_pool *)sigval.sival_ptr;
>>>> +
>>>> +    overrun = timer_getoverrun(tp->timerid);
>>>>
>>>    int timer_getoverrun(timer_t timerid);
>>>
>>> Maxim.
>>>
>>
>> Yep. correct in v4
>>
>
> I will include this patch in series with:
> "[lng-odp] [PATCH] example: timer: don't set timeout less than resolution"
> as both of them allow to avoid issue described at:
> https://bugs.linaro.org/show_bug.cgi?id=1449
>
>
>
>> +    if (overrun)
>>>> +        ODP_ERR("Error: need to increase resolution, lost tickets: %"
>>>>
>>> tickets -> ticks
I would write: "Error: timer ticks lost, need to increase timer resolution".

What's the overrun parameter for?

Better to print the name of the timer.



> +            PRIu64"\n", overrun);
>>>> +
>>>>   #ifdef __ARM_ARCH
>>>>       odp_timer *array = &tp->timers[0];
>>>>       uint32_t i;
>>>>
>>>
>>> _______________________________________________
>>> lng-odp mailing list
>>> [email protected]
>>> https://lists.linaro.org/mailman/listinfo/lng-odp
>>>
>>
>>
> --
> Regards,
> Ivan Khoronzhuk
> _______________________________________________
> lng-odp mailing list
> [email protected]
> https://lists.linaro.org/mailman/listinfo/lng-odp
>
_______________________________________________
lng-odp mailing list
[email protected]
https://lists.linaro.org/mailman/listinfo/lng-odp

Reply via email to