RE: [EXT] Re: [PATCH v1] timer:clock:ptp: add support the dynamic posix clock alarm set for ptp
From: Po Liu <hidden>
Date: 2019-05-08 03:30:08
Also in:
linux-arm-kernel, lkml, netdev
Hi Richard, Thank you for your reply. Br, Po Liu
-----Original Message----- From: Richard Cochran [mailto:richardcochran@gmail.com] Sent: 2019年5月7日 21:50 To: Po Liu <redacted> Cc: netdev@vger.kernel.org; linux-kernel@vger.kernel.org; linuxppc- dev@lists.ozlabs.org; linux-arm-kernel@lists.infradead.org; Y.b. Lu [off-list ref]; Claudiu Manoil [off-list ref]; davem@davemloft.net; Leo Li [off-list ref]; Roy Zang [off-list ref]; Mingkai Hu [off-list ref]; deepa.kernel@gmail.com Subject: [EXT] Re: [PATCH v1] timer:clock:ptp: add support the dynamic posix clock alarm set for ptp Caution: EXT Email On Sun, May 05, 2019 at 05:02:05AM +0000, Po Liu wrote:quoted
Current kernel code do not support the dynamic posix clock alarm set. This code would support it by the posix timer structure. 319 const struct k_clock clock_posix_dynamic = { 320 .clock_getres = pc_clock_getres, 321 .clock_set = pc_clock_settime, 322 .clock_get = pc_clock_gettime, 323 .clock_adj = pc_clock_adjtime, 324 + .timer_create = pc_timer_create, 325 + .timer_del = pc_timer_delete, 326 + .timer_set = pc_timer_set, 327 + .timer_arm = pc_timer_arm, }Sorry, NAK, since we decided some time ago not to support timer_* operations on dynamic clocks. You get much better application level timer performance by synchronizing CLOCK_REALTIME to your PHC and using clock_nanosleep() with CLOCK_REALTIME or CLOCK_MONOTONIC.
The code intend to get alarm by interrupt of ptp hardware. The code to fix ptp not support to application layer to get the alarm interrupt. Do you mean the synchronizing at application layer by PHC (using clock_nanosleep()) to the CLOCK_REALTIME source? Then the kernel could using the hrtimer with CLOCK_REALTIME?
quoted
This won't change the user space system call code. Normally the user space set alarm by timer_create() and timer_settime(). Reference code are tools/testing/selftests/ptp/testptp.c.That program still has misleading examples. Sorry about that. I'll submit a patch to remove them.
Is there any replace method for an application code to get alarm interrupt by the ptp source?
quoted
+static int pc_timer_create(struct k_itimer *new_timer) { + return 0; +} +This of course would never work. Consider what happens when two or more timers are created and armed. Thanks, Richard