
A new time traceable flag was added to pmc agent to store the current time traceable status. This flag replaces the utc_offset_traceable flag in the HA clock selection algorithm and status command. Test plan: HA clock selection algorithm PASS: Verify the clock source which time isn't traceable is discarded by the algorithm if ha_gm_timeTraceable is enabled. PASS: Verify the clock source which time is traceable isn't discarded by the algorithm if ha_gm_timeTraceable is enabled. Regression: status command PASS: Verify the response of status command shows the correct GM time traceable. The 'valid sources' command is used to get a list of interfaces which the clock is matching the requirements. The response contains a space separated list of interfaces, or "None" when not a single clock is matching all the requirements. Test plan: valid sources command PASS: Verify that a space separated list of interface is returned when one or more clocks match the requirements. PASS: Verify that the string "None" is returned when not a single clock match the requirements. Now the GM time traceable check is enabled by default as it is an important check for both T-GM and T-BC scenarios. The GM time traceable check is controlled in configuration by using the ha_gm_timeTraceable setting, and it can be disabled using the value 0 (ha_gm_timeTraceable 0). Test plan: default value PASS Verify the check is performed by default. PASS Verify the user can disable the check by configuration. Bonus: Fixed the behavior when none clock is matching the requirements and the active clock source is disabled using the 'disable source <interface>' command. The interface is must be disabled and a new clock source is selected. Test plan: none clock is matching the requirements PASS: Verify that the active source can be disabled and a new one is selected. PASS: Verify that an attempt to disable the last active interface fails and an appopriated message is given as response. PASS: Verify that the interface with higher priority is selected after re-enabling it. PASS: Verify the active clock source doesn't change if another interface is disabled. PASS: Verify the active clock source doesn't change if another interface is re-enabled. Story: 2010723 Task: 48702 Change-Id: I64193575a995e520d36460c0ebb8dd452fa8c2b8 Signed-off-by: Andre Mauricio Zelak <andre.zelak@windriver.com>
68 lines
2.3 KiB
Diff
68 lines
2.3 KiB
Diff
From 38a530d94fc5aa73bde424d05e2e38348e64d7e5 Mon Sep 17 00:00:00 2001
|
|
From: Miroslav Lichvar <mlichvar@redhat.com>
|
|
Date: Wed, 18 May 2022 11:33:36 +0200
|
|
Subject: [PATCH 8/54] sysoff: Change log level of ioctl error messages.
|
|
|
|
Change the log level of ioctl error messages to the error level to make
|
|
them visible in default configuration, with the exception of EOPNOTSUPP
|
|
which is expected in probing and should stay at the debug level to avoid
|
|
confusing users.
|
|
|
|
Signed-off-by: Miroslav Lichvar <mlichvar@redhat.com>
|
|
[commit 270709323a161ff1cb83af511ce50691152c75cf upstream]
|
|
Signed-off-by: Douglas Henrique Koerich <douglashenrique.koerich@windriver.com>
|
|
Signed-off-by: Andre Mauricio Zelak <andre.zelak@windriver.com>
|
|
---
|
|
sysoff.c | 14 +++++++++++---
|
|
1 file changed, 11 insertions(+), 3 deletions(-)
|
|
|
|
diff --git a/sysoff.c b/sysoff.c
|
|
index 5d3b907..a425275 100644
|
|
--- a/sysoff.c
|
|
+++ b/sysoff.c
|
|
@@ -28,6 +28,14 @@
|
|
|
|
#define NS_PER_SEC 1000000000LL
|
|
|
|
+static void print_ioctl_error(const char *name)
|
|
+{
|
|
+ if (errno == EOPNOTSUPP)
|
|
+ pr_debug("ioctl %s: %s", name, strerror(errno));
|
|
+ else
|
|
+ pr_err("ioctl %s: %s", name, strerror(errno));
|
|
+}
|
|
+
|
|
static int64_t pctns(struct ptp_clock_time *t)
|
|
{
|
|
return t->sec * NS_PER_SEC + t->nsec;
|
|
@@ -38,7 +46,7 @@ static int sysoff_precise(int fd, int64_t *result, uint64_t *ts)
|
|
struct ptp_sys_offset_precise pso;
|
|
memset(&pso, 0, sizeof(pso));
|
|
if (ioctl(fd, PTP_SYS_OFFSET_PRECISE, &pso)) {
|
|
- pr_debug("ioctl PTP_SYS_OFFSET_PRECISE: %m");
|
|
+ print_ioctl_error("PTP_SYS_OFFSET_PRECISE");
|
|
return -errno;
|
|
}
|
|
*result = pctns(&pso.sys_realtime) - pctns(&pso.device);
|
|
@@ -98,7 +106,7 @@ static int sysoff_extended(int fd, int n_samples,
|
|
memset(&pso, 0, sizeof(pso));
|
|
pso.n_samples = n_samples;
|
|
if (ioctl(fd, PTP_SYS_OFFSET_EXTENDED, &pso)) {
|
|
- pr_debug("ioctl PTP_SYS_OFFSET_EXTENDED: %m");
|
|
+ print_ioctl_error("PTP_SYS_OFFSET_EXTENDED");
|
|
return -errno;
|
|
}
|
|
*result = sysoff_estimate(&pso.ts[0][0], 1, n_samples, ts, delay);
|
|
@@ -112,7 +120,7 @@ static int sysoff_basic(int fd, int n_samples,
|
|
memset(&pso, 0, sizeof(pso));
|
|
pso.n_samples = n_samples;
|
|
if (ioctl(fd, PTP_SYS_OFFSET, &pso)) {
|
|
- perror("ioctl PTP_SYS_OFFSET");
|
|
+ print_ioctl_error("PTP_SYS_OFFSET");
|
|
return -errno;
|
|
}
|
|
*result = sysoff_estimate(pso.ts, 0, n_samples, ts, delay);
|
|
--
|
|
2.29.2
|
|
|