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