
We use the CentOS 8 version of the source package and apply the same six patches that we applied to the previous version, with one caveat. Patch 3 had an additional test in it of the uncalibrated state, and this test does not exist in the upstream version of the patch. Now patch 3 is identical to the upstream version. All five upstream patches have been refreshed to what was actually accepted upstream and thus now contain proper git headers. The logic of those five patches remain as they were, with the one exception noted in the previous paragraph. Patch 6 has also now been given a proper git header. Change-Id: Ifd44680d2f190dc0c5662bd05bd214fccf50a2fd Story: 2009130 Task: 43199 Signed-off-by: Jim Somerville <Jim.Somerville@windriver.com>
79 lines
2.5 KiB
Diff
79 lines
2.5 KiB
Diff
From 1779482f39e6513995b13fdbd350f7aee8495b7e Mon Sep 17 00:00:00 2001
|
|
Message-Id: <1779482f39e6513995b13fdbd350f7aee8495b7e.1630418391.git.Jim.Somerville@windriver.com>
|
|
In-Reply-To: <0389752e3aecf8d2b2743f16ce1408a58088bea9.1630418391.git.Jim.Somerville@windriver.com>
|
|
References: <0389752e3aecf8d2b2743f16ce1408a58088bea9.1630418391.git.Jim.Somerville@windriver.com>
|
|
From: Miroslav Lichvar <mlichvar@redhat.com>
|
|
Date: Mon, 31 May 2021 11:07:53 +0200
|
|
Subject: [PATCH 2/6] clock: Reset clock check on best clock/port change.
|
|
|
|
Reset the clock check when the best clock or port changes, together with
|
|
the other state like current estimated delay and frequency. This avoids
|
|
false positives if the clock is controlled by an external process when
|
|
not synchronized by PTP (e.g. phc2sys -rr).
|
|
|
|
Reviewed-by: Jacob Keller <jacob.e.keller@intel.com>
|
|
Signed-off-by: Miroslav Lichvar <mlichvar@redhat.com>
|
|
[commit 262a49b07eaccc0f0237e3cd4df01b185b8f664f upstream]
|
|
Signed-off-by: Jim Somerville <Jim.Somerville@windriver.com>
|
|
---
|
|
clock.c | 2 ++
|
|
clockcheck.c | 9 ++++++++-
|
|
clockcheck.h | 6 ++++++
|
|
3 files changed, 16 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/clock.c b/clock.c
|
|
index d955710..49bd4a9 100644
|
|
--- a/clock.c
|
|
+++ b/clock.c
|
|
@@ -1911,6 +1911,8 @@ static void handle_state_decision_event(struct clock *c)
|
|
|
|
if (!cid_eq(&best_id, &c->best_id) || best != c->best) {
|
|
clock_freq_est_reset(c);
|
|
+ if (c->sanity_check)
|
|
+ clockcheck_reset(c->sanity_check);
|
|
tsproc_reset(c->tsproc, 1);
|
|
if (!tmv_is_zero(c->initial_delay))
|
|
tsproc_set_delay(c->tsproc, c->initial_delay);
|
|
diff --git a/clockcheck.c b/clockcheck.c
|
|
index d48a578..d0b4714 100644
|
|
--- a/clockcheck.c
|
|
+++ b/clockcheck.c
|
|
@@ -47,9 +47,16 @@ struct clockcheck *clockcheck_create(int freq_limit)
|
|
if (!cc)
|
|
return NULL;
|
|
cc->freq_limit = freq_limit;
|
|
+ clockcheck_reset(cc);
|
|
+ return cc;
|
|
+}
|
|
+
|
|
+void clockcheck_reset(struct clockcheck *cc)
|
|
+{
|
|
+ cc->freq_known = 0;
|
|
cc->max_freq = -CHECK_MAX_FREQ;
|
|
cc->min_freq = CHECK_MAX_FREQ;
|
|
- return cc;
|
|
+ cc->last_ts = 0;
|
|
}
|
|
|
|
int clockcheck_sample(struct clockcheck *cc, uint64_t ts)
|
|
diff --git a/clockcheck.h b/clockcheck.h
|
|
index 78aca48..1ff86eb 100644
|
|
--- a/clockcheck.h
|
|
+++ b/clockcheck.h
|
|
@@ -33,6 +33,12 @@ struct clockcheck;
|
|
*/
|
|
struct clockcheck *clockcheck_create(int freq_limit);
|
|
|
|
+/**
|
|
+ * Reset a clock check.
|
|
+ * @param cc Pointer to a clock check obtained via @ref clockcheck_create().
|
|
+ */
|
|
+void clockcheck_reset(struct clockcheck *cc);
|
|
+
|
|
/**
|
|
* Perform the sanity check on a time stamp.
|
|
* @param cc Pointer to a clock check obtained via @ref clockcheck_create().
|
|
--
|
|
2.29.2
|
|
|