On Sun, May 05, 2019 at 05:02:05AM +0000, Po Liu wrote: > 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. > 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. > +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