Sorry I forgot another hint.

Please use the 'git format-patch' with the patch seria iteration flag '-v
<n>'.
So we can differentiate the mails as newer :-)

This will change the subject to something like "Subject: [PATCH *v2* 0/6]
...."

Erez


On Wed, 29 Mar 2023 at 17:17, Erez <erezge...@gmail.com> wrote:

> You add a nice cover letter and good explanations on your patches.
> Now we wait for other developers' feedback.
>
> Just one last hint.
> We usually check the patch format with the kernel check patch tool.
> https://docs.kernel.org/dev-tools/checkpatch.html
> But you can do that after you get more feedbacks :-)
>
> Well done
>    Erez
>
>
> On Wed, 29 Mar 2023 at 15:24, Luigi Mantellini <luigi.mantell...@gmail.com>
> wrote:
>
>> In order to obtain a precise TX SYNC frequency we need to use a periodic
>> timer facility instead to reconfigure the timer on every expiration.
>>
>> The solution consists to configure the it_interval field of the
>> itimerspec structure (see timerfd_create(2) man page) only when the port
>> goes into Master role and avoiding to call timerfd_settime() on timer
>> expiration.
>> ---
>>  port.c | 15 ++++++++++++---
>>  1 file changed, 12 insertions(+), 3 deletions(-)
>>
>> diff --git a/port.c b/port.c
>> index 29b6870..3c7df6b 100644
>> --- a/port.c
>> +++ b/port.c
>> @@ -231,7 +231,7 @@ struct fdarray *port_fda(struct port *port)
>>         return &port->fda;
>>  }
>>
>> -int set_tmo_log(int fd, unsigned int scale, int log_seconds)
>> +static int set_tmo_log_periodic(int fd, unsigned int scale, int
>> log_seconds, bool periodic)
>>  {
>>         struct itimerspec tmo = {
>>                 {0, 0}, {0, 0}
>> @@ -255,9 +255,19 @@ int set_tmo_log(int fd, unsigned int scale, int
>> log_seconds)
>>         } else
>>                 tmo.it_value.tv_sec = scale * (1 << log_seconds);
>>
>> +       if (periodic) {;
>> +               tmo.it_interval.tv_nsec = tmo.it_value.tv_nsec;
>> +               tmo.it_interval.tv_sec = tmo.it_value.tv_sec;
>> +       }
>> +
>>         return timerfd_settime(fd, 0, &tmo, NULL);
>>  }
>>
>> +int set_tmo_log(int fd, unsigned int scale, int log_seconds)
>> +{
>> +       return set_tmo_log_periodic(fd, scale, log_seconds, false);
>> +}
>> +
>>  int set_tmo_lin(int fd, int seconds)
>>  {
>>         struct itimerspec tmo = {
>> @@ -1297,7 +1307,7 @@ int port_set_sync_rx_tmo(struct port *p)
>>
>>  static int port_set_sync_tx_tmo(struct port *p)
>>  {
>> -       return set_tmo_log(p->fda.fd[FD_SYNC_TX_TIMER], 1,
>> p->logSyncInterval);
>> +       return set_tmo_log_periodic(p->fda.fd[FD_SYNC_TX_TIMER], 1,
>> p->logSyncInterval, true);
>>  }
>>
>>  void port_show_transition(struct port *p, enum port_state next,
>> @@ -2936,7 +2946,6 @@ static enum fsm_event bc_event(struct port *p, int
>> fd_index)
>>         case FD_SYNC_TX_TIMER:
>>                 pr_debug("%s: master sync timeout", p->log_name);
>>                 timerfd_flush(p, fd, "master sync timeout");
>> -               port_set_sync_tx_tmo(p);
>>                 p->service_stats.master_sync_timeout++;
>>                 return port_tx_sync(p, NULL, p->seqnum.sync++) ?
>>                         EV_FAULT_DETECTED : EV_NONE;
>> --
>> 2.40.0
>>
>>
>>
>> _______________________________________________
>> Linuxptp-devel mailing list
>> Linuxptp-devel@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/linuxptp-devel
>>
>
_______________________________________________
Linuxptp-devel mailing list
Linuxptp-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linuxptp-devel

Reply via email to