dcavalca / rpms / linuxptp

Forked from rpms/linuxptp 2 years ago
Clone
ae5d40
commit 3399fa15ae28610c1b288b573c4233a42c48f762
ae5d40
Author: Amar Subramanyam via Linuxptp-devel <linuxptp-devel@lists.sourceforge.net>
ae5d40
Date:   Wed May 26 12:24:06 2021 +0300
ae5d40
ae5d40
    Log optimization for ptp4l in jbod and client only mode (clientOnly=1 and boundary_clock_jbod=1)
ae5d40
    
ae5d40
    The LISTENING port prints continuously
ae5d40
    "selected best master clock 000000.0000.000003
ae5d40
    updating UTC offset to 37"
ae5d40
    
ae5d40
    We limited the log such that now it prints only when there is a
ae5d40
    change in the best-master clock.
ae5d40
    
ae5d40
    Signed-off-by: Amar Subramanyam <asubramanyam@altiostar.com>
ae5d40
    Signed-off-by: Karthikkumar Valoor <kvaloor@altiostar.com>
ae5d40
    Signed-off-by: Ramana Reddy <rreddy@altiostar.com>
ae5d40
ae5d40
diff --git a/clock.c b/clock.c
ae5d40
index e545a9b..d428ae2 100644
ae5d40
--- a/clock.c
ae5d40
+++ b/clock.c
ae5d40
@@ -705,7 +705,8 @@ static void clock_update_slave(struct clock *c)
ae5d40
 	if (c->tds.currentUtcOffset < c->utc_offset) {
ae5d40
 		pr_warning("running in a temporal vortex");
ae5d40
 	}
ae5d40
-	if ((c->tds.flags & UTC_OFF_VALID && c->tds.flags & TIME_TRACEABLE) ||
ae5d40
+	if (((c->tds.flags & UTC_OFF_VALID && c->tds.flags & TIME_TRACEABLE) &&
ae5d40
+	    (c->tds.currentUtcOffset != c->utc_offset)) ||
ae5d40
 	    (c->tds.currentUtcOffset > c->utc_offset)) {
ae5d40
 		pr_info("updating UTC offset to %d", c->tds.currentUtcOffset);
ae5d40
 		c->utc_offset = c->tds.currentUtcOffset;
ae5d40
@@ -1939,14 +1940,6 @@ static void handle_state_decision_event(struct clock *c)
ae5d40
 		best_id = c->dds.clockIdentity;
ae5d40
 	}
ae5d40
 
ae5d40
-	if (cid_eq(&best_id, &c->dds.clockIdentity)) {
ae5d40
-		pr_notice("selected local clock %s as best master",
ae5d40
-			  cid2str(&best_id));
ae5d40
-	} else {
ae5d40
-		pr_notice("selected best master clock %s",
ae5d40
-			  cid2str(&best_id));
ae5d40
-	}
ae5d40
-
ae5d40
 	if (!cid_eq(&best_id, &c->best_id)) {
ae5d40
 		clock_freq_est_reset(c);
ae5d40
 		tsproc_reset(c->tsproc, 1);
ae5d40
@@ -1957,6 +1950,13 @@ static void handle_state_decision_event(struct clock *c)
ae5d40
 		c->master_local_rr = 1.0;
ae5d40
 		c->nrr = 1.0;
ae5d40
 		fresh_best = 1;
ae5d40
+		if (cid_eq(&best_id, &c->dds.clockIdentity)) {
ae5d40
+			pr_notice("selected local clock %s as best master",
ae5d40
+					cid2str(&best_id));
ae5d40
+		} else {
ae5d40
+			pr_notice("selected best master clock %s",
ae5d40
+					cid2str(&best_id));
ae5d40
+		}
ae5d40
 	}
ae5d40
 
ae5d40
 	c->best = best;
ae5d40
ae5d40
commit 766baf345cd4fb025d186f9c9bea5276aba398bc
ae5d40
Author: Amar Subramanyam via Linuxptp-devel <linuxptp-devel@lists.sourceforge.net>
ae5d40
Date:   Wed May 26 12:24:07 2021 +0300
ae5d40
ae5d40
    Log optimization for ptp4l in jbod and client only mode (clientOnly=1 and boundary_clock_jbod=1)
ae5d40
    
ae5d40
    The port other than SLAVE (LISTENING port) prints an error
ae5d40
    "port 1: master state recommended in slave only mode
ae5d40
    ptp4l[1205469.356]: port 1: defaultDS.priority1 probably misconfigured"
ae5d40
    for every ANNOUNCE RECEIPT Timeout.
ae5d40
    
ae5d40
    This log is printed when the event EV_RS_MASTER is thrown
ae5d40
    in clientOnly mode. But single port clientOnly mode will never
ae5d40
    hit this event instead EV_RS_GRAND_MASTER will be hit.
ae5d40
    EV_RS_MASTER is thrown when clientOnly=1 and boundary_clock_jbod=1
ae5d40
    which results in continuous printing. So EV_RS_MASTER check when
ae5d40
    clientOnly=1 to print this error can be avoided.
ae5d40
    
ae5d40
    Signed-off-by: Amar Subramanyam <asubramanyam@altiostar.com>
ae5d40
    Signed-off-by: Karthikkumar Valoor <kvaloor@altiostar.com>
ae5d40
    Signed-off-by: Ramana Reddy <rreddy@altiostar.com>
ae5d40
ae5d40
diff --git a/port.c b/port.c
ae5d40
index 250d46d..b5b775f 100644
ae5d40
--- a/port.c
ae5d40
+++ b/port.c
ae5d40
@@ -2536,7 +2536,7 @@ void port_dispatch(struct port *p, enum fsm_event event, int mdiff)
ae5d40
 static void bc_dispatch(struct port *p, enum fsm_event event, int mdiff)
ae5d40
 {
ae5d40
 	if (clock_slave_only(p->clock)) {
ae5d40
-		if (event == EV_RS_MASTER || event == EV_RS_GRAND_MASTER) {
ae5d40
+		if (event == EV_RS_GRAND_MASTER) {
ae5d40
 			port_slave_priority_warning(p);
ae5d40
 		}
ae5d40
 	}