Richard,
Calvin> output of strace
strace ./testptp -d /dev/ptp0 -g
execve("./testptp", ["./testptp", "-d", "/dev/ptp0", "-g"], [/* 20 vars */]) = 0
brk(0) = 0x1aa3000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x7f0f8e45d000
access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=41323, ...}) = 0
mmap(NULL, 41323, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f0f8e452000
close(3) = 0
open("/lib64/librt.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0`\"@\2265\0\0\0"...,
832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=48128, ...}) = 0
mmap(0x3596400000, 2128984, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3,
0) = 0x3596400000
mprotect(0x3596407000, 2093056, PROT_NONE) = 0
mmap(0x3596606000, 8192, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x6000) = 0x3596606000
close(3) = 0
open("/lib64/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3,
"\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\260\27\202\2255\0\0\0"..., 832)
= 832
fstat(3, {st_mode=S_IFREG|0755, st_size=2076800, ...}) = 0
mmap(0x3595800000, 3896632, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3,
0) = 0x3595800000
mprotect(0x35959ad000, 2097152, PROT_NONE) = 0
mmap(0x3595bad000, 24576, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1ad000) = 0x3595bad000
mmap(0x3595bb3000, 17720, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x3595bb3000
close(3) = 0
open("/lib64/libpthread.so.0", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\320k\0\2265\0\0\0"...,
832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=145176, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x7f0f8e451000
mmap(0x3596000000, 2208760, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3,
0) = 0x3596000000
mprotect(0x3596017000, 2093056, PROT_NONE) = 0
mmap(0x3596216000, 8192, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x16000) = 0x3596216000
mmap(0x3596218000, 13304, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x3596218000
close(3) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x7f0f8e450000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x7f0f8e44f000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x7f0f8e44e000
arch_prctl(ARCH_SET_FS, 0x7f0f8e44f700) = 0
mprotect(0x3595bad000, 16384, PROT_READ) = 0
mprotect(0x3596216000, 4096, PROT_READ) = 0
mprotect(0x3596606000, 4096, PROT_READ) = 0
mprotect(0x3595621000, 4096, PROT_READ) = 0
munmap(0x7f0f8e452000, 41323) = 0
set_tid_address(0x7f0f8e44f9d0) = 2589
set_robust_list(0x7f0f8e44f9e0, 24) = 0
rt_sigaction(SIGRTMIN, {0x3596006720, [], SA_RESTORER|SA_SIGINFO,
0x359600f500}, NULL, 8) = 0
rt_sigaction(SIGRT_1, {0x35960067b0, [], SA_RESTORER|SA_RESTART|SA_SIGINFO,
0x359600f500}, NULL, 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8) = 0
getrlimit(RLIMIT_STACK, {rlim_cur=8192*1024, rlim_max=RLIM64_INFINITY}) = 0
open("/dev/ptp0", O_RDWR) = 3
clock_gettime(0xffffffe3 /* CLOCK_??? */, {1393947888, 731912808}) = 0
open("/proc/cpuinfo", O_RDONLY) = 4
read(4, "processor\t: 0\nvendor_id\t: Genuin"..., 4096) = 3764
close(4) = 0
dup(2) = 4
fcntl(4, F_GETFL) = 0x8402 (flags
O_RDWR|O_APPEND|O_LARGEFILE)
brk(0) = 0x1aa3000
brk(0x1ac4000) = 0x1ac4000
brk(0) = 0x1ac4000
fstat(4, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 0), ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x7f0f8e45c000
lseek(4, 0, SEEK_CUR) = -1 ESPIPE (Illegal seek)
write(4, "clock_gettime %m: Invalid argume"..., 35clock_gettime %m: Invalid
argument
) = 35
close(4) = 0
munmap(0x7f0f8e45c000, 4096) = 0
close(3) = 0
exit_group(0) = ?
+++ exited with 0 +++
Calvin> Here is output of ltrace
[root@V4-CALVIN ptptest]# ltrace ./testptp -d /dev/ptp0 -g
unexpected breakpoint at 0x35954016df
(0, 0, 0, -1, 0x1f25bc2)
= 0x3595623260
__libc_start_main(0x400ed4, 4, 0x7fff7d779898, 0x401790, 0x401820 <unfinished
...>
strrchr("./testptp", '/')
= "/testptp"
getopt(4, 0x7fff7d779898, "a:A:cd:e:f:ghp:P:sSt:v")
= 100
getopt(4, 0x7fff7d779898, "a:A:cd:e:f:ghp:P:sSt:v")
= 103
getopt(4, 0x7fff7d779898, "a:A:cd:e:f:ghp:P:sSt:v")
= -1
open("/dev/ptp0", 2, 022556611134)
= 4
clock_gettime(0xffffffdb, 0x7fff7d779690, 0x7fff7d779690, -1, 0)
= 0xffffffff
perror("clock_gettime %m"clock_gettime %m: Invalid argument
) = <void>
close(4)
= 0
+++ exited (status 0) +++
Thanks!
Calvin
-----Original Message-----
From: Richard Cochran [mailto:[email protected]]
Sent: Tuesday, March 04, 2014 10:18 AM
To: Pham, Calvin
Cc: [email protected]
Subject: Re: [Linuxptp-users] phc2sys[273995.639]: failed to read clock:
Invalid argument
On Tue, Mar 04, 2014 at 01:55:56PM +0000, Pham, Calvin wrote:
>
> > testptp -g
> [root@V4-CALVIN ptp]# ./testptp -g
> gettime: CLK_ID 0xffffffe3
> clock time: 1393941119.523279956 or Tue Mar 4 08:51:59 2014
> clock_gettime %m: Invalid argument
[ It looks like you changed testptp to always print the time. ]
I looked at the igb driver, and it always returns 0 for its gettime method. So
now this looks more like a glibc bug.
Can you run 'testptp -g' under strace and ltrace and post the results?
Thanks,
Richard
------------------------------------------------------------------------------
Subversion Kills Productivity. Get off Subversion & Make the Move to Perforce.
With Perforce, you get hassle-free workflows. Merge that actually works.
Faster operations. Version large binaries. Built-in WAN optimization and the
freedom to use Git, Perforce or both. Make the move to Perforce.
http://pubads.g.doubleclick.net/gampad/clk?id=122218951&iu=/4140/ostg.clktrk
_______________________________________________
Linuxptp-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/linuxptp-users