I agree.
I made a change and now it converges:
2017-06-13T13:59:05.703456-04:00 bco2 phc2sys: [27.336] reconfiguring after
port state change
2017-06-13T13:59:05.703467-04:00 bco2 phc2sys: [27.336] selecting
CLOCK_REALTIME for synchronization
2017-06-13T13:59:05.703474-04:00 bco2 phc2sys: [27.336] selecting eth2 as the
master clock
2017-06-13T13:59:05.703523-04:00 bco2 phc2sys: [27.336] phc offset 168017291 s0
freq -0 delay 47
2017-06-13T13:59:06.703660-04:00 bco2 phc2sys: [28.337] phc offset 167991798 s0
freq -0 delay 49
2017-06-13T13:59:07.703828-04:00 bco2 phc2sys: [29.337] phc offset 167966620 s0
freq -0 delay 42
2017-06-13T13:59:08.536030-04:00 bco2 phc2sys: [30.337] phc offset 167941573 s1
freq -25332 delay 45
2017-06-13T13:59:09.536165-04:00 bco2 phc2sys: [31.337] phc offset -360 s2
freq -25469 delay 50
2017-06-13T13:59:10.536299-04:00 bco2 phc2sys: [32.337] phc offset 168 s2
freq -25200 delay 45
diff --git a/clockadj.c b/clockadj.c
index 5eb7cce..86c7b33 100644
--- a/clockadj.c
+++ b/clockadj.c
@@ -73,7 +73,7 @@ double clockadj_get_freq(clockid_t clkid)
pr_err("failed to read out the clock frequency adjustment: %m");
} else {
f = tx.freq / 65.536;
- if (clkid == CLOCK_REALTIME && realtime_nominal_tick)
+ if (clkid == CLOCK_REALTIME && realtime_nominal_tick && tx.tick)
f += 1e3 * realtime_hz * (tx.tick -
realtime_nominal_tick);
I think this older version of the kernel (2.6.32-504.el6.x86_64) is returning
0 for tx.tick.
Any thoughts on whether this is a valid fix?
I also had to make another small change to get the latest code to build on RHEL
6.8:
diff --git a/rtnl.c b/rtnl.c
index 251b5f3..1266731 100644
--- a/rtnl.c
+++ b/rtnl.c
@@ -17,6 +17,7 @@
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
#include <asm/types.h>
+#include <sys/socket.h>
#include <linux/netlink.h>
#include <linux/rtnetlink.h>
#include <net/if.h>
thanks for looking at this.
Brian Olson
br...@amergint.com
719-522-2808
"we mutually pledge to each other our Lives, our Fortunes and our sacred Honor."
> On Jun 13, 2017, at 11:55 AM, Miroslav Lichvar <mlich...@redhat.com> wrote:
>
> On Tue, Jun 13, 2017 at 10:35:42AM -0600, Brian Olson wrote:
>> double clockadj_get_freq(clockid_t clkid)
>> {
>> double f = 0.0;
>> struct timex tx;
>> memset(&tx, 0, sizeof(tx));
>> if (clock_adjtime(clkid, &tx) < 0) {
>
> From your logs it seems the problem is that clock_adjtime() returns
> zero ticks instead of 10000 for the REALTIME clock. I suspect it's a
> kernel or possibly glibc bug.
>
> --
> Miroslav Lichvar
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Linuxptp-users mailing list
Linuxptp-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linuxptp-users