On Sat, Feb 13, 2021 at 10:28:32AM EST, Richard Cochran wrote:
>On Mon, Feb 01, 2021 at 05:55:41PM -0500, vincent.cheng...@renesas.com wrote:
>
>> +    /* Set up timer expire notification mechanism */
>> +    se.sigev_notify = SIGEV_THREAD;
>> +    se.sigev_value.sival_ptr = (void *)c;
>> +    se.sigev_notify_function = clock_clear_free_running;
>> +    se.sigev_notify_attributes = NULL;
>> +
>> +    if (timer_create(CLOCK_MONOTONIC, &se, &c->step_timer_id)) {
>> +            pr_err("failed to create step timer_id");
>> +            return NULL;
>> +    }
>
>I agree with the premise of this patch, but I dislike the
>implementation as it uses a timer with asynchronous signal.
>
>The code already has multiple timers, and these are managed using the
>timerfd API.  This is the modern way of handling asynchronous timers.
>
>I can see two better ways of implementing this new feature.
>
>1. If you really want a to use a timer and keep the option value as a
>   time value, then increase N_CLOCK_PFD and add the timer to
>   clock.pollfd.
>
>   If you choose this option, please increase the resolution of the
>   step_window to milliseconds.  After all, the window of expected
>   stale time stamps may be much shorter than one second!
>
>2. You could define the step_window in terms of the number of Sync
>   events to skip.  That reduces the implementation to a simple
>   counter.  The option would still relate to time, because a Sync
>   rate of X means 2^X seconds.
>
>I prefer #2 because it is much simpler.
>
>Thoughts?

I will choose door #2 and get back to you.
Thank-you for the good feedback.

Vincent


_______________________________________________
Linuxptp-devel mailing list
Linuxptp-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linuxptp-devel

Reply via email to