2016-09-02 21:41 GMT+09:00 Binoy Jayan <[email protected]>:
> On 30 August 2016 at 16:20, Masami Hiramatsu
> <[email protected]> wrote:
>> Hi Binoy,
>>>
>>> +static inline void trace_latency_hrtimer_mark_ts(struct hrtimer *timer,
>>> +                                        struct hrtimer_clock_base 
>>> *new_base,
>>> +                                        ktime_t tim)
>>> +{
>>> +#if defined(CONFIG_PREEMPT_TRACER) || defined(CONFIG_IRQSOFF_TRACER)
>>> +       if (trace_latency_hrtimer_interrupt_enabled()) {
>>
>> You would better use unlikely() here.
>>
>>> +               ktime_t now = new_base->get_time();
>>> +
>>> +               if (ktime_to_ns(tim) < ktime_to_ns(now))
>>
>> Wouldn't we need to consider the case of wrap around?
>>
>>> +                       timer->praecox = now;
>>> +               else
>>> +                       timer->praecox = ktime_set(0, 0);
>>> +       }
>>> +#endif
>>> +}
>
> Hi Masami,
>
> I always see these values to be relative and not absolute time. I
> found 'praecox' to be always zero during test.
> What do you think.

Ah, right. Since "tim" is expire time (timer target), that should
always be "now + x"
(x is enough larger than how long setting the hrtimer takes). Or,
hrtimer expires
before finished to set. :)

Thank you,
-- 
Masami Hiramatsu

Reply via email to