> -----Original Message-----
> From: Vladimir Oltean <olte...@gmail.com>
> Sent: Tuesday, July 07, 2020 9:08 AM
> To: Keller, Jacob E <jacob.e.kel...@intel.com>; richardcoch...@gmail.com
> Cc: linuxptp-devel@lists.sourceforge.net
> Subject: Re: [Linuxptp-devel] [PATCH] ts2phc_phc_master: specify start time to
> PPS master as 0.000000000
> 
> What modification do you think should be done to the kernel ABI?
> This is what is currently in place:
> 
> struct ptp_perout_request {
>       struct ptp_clock_time start;  /* Absolute start time. */
>       struct ptp_clock_time period; /* Desired period, zero means disable. */
>       unsigned int index;           /* Which channel to configure. */
>       unsigned int flags;
>       unsigned int rsv[4];          /* Reserved for future use. */
> };
> 
> Most interesting to me would be the "flags" field. The v2 of the ioctl
> can currently only have:
> 
> #define PTP_PEROUT_ONE_SHOT (1<<0)
> 
> Maybe something like this?
> 
> #define PTP_PEROUT_RELATIVE_START_TIME (1<<1)
> 
> with the meaning of 'just set up the clock generator to start ASAP (with
> an unspecified definition of ASAP) with this phase offset in
> nanoseconds, relative to 0 which corresponds to the closest integer
> multiple of the period in the PHC time base'.
> 
> What would be the valid range of 'start' in the case where (flags &
> PTP_PEROUT_RELATIVE_START_TIME) is set?
> 

What would start even be used for? We have a period already, and it sounds like 
relative start wouldn't even use a start value?

> - Zero to $('period' - 1) nanoseconds, or
> - Zero to infinity, with a modulo performed by somebody (probably the
>   PTP core)?
> 
> Also, there's the question of what to do about the sysfs ABI. Currently
> you can't pass the flags through that:
> 
>       cnt = sscanf(buf, "%u %lld %u %lld %u", &req.perout.index,
>                    &req.perout.start.sec, &req.perout.start.nsec,
>                    &req.perout.period.sec, &req.perout.period.nsec);
>       if (cnt != 5)
>               goto out;
> 
> Do we want to permit another sscanf for optional flags at the end? Would
> the flags be textual or numbers (0, 1, 2, 3)?

I don't know how stringent the sysfs interface needs to be on avoiding ABI 
breakage, but we probably want to be careful here. Personally I really dislike 
this interface as I constantly have to lookup what order each thing is in. I'd 
rather see it replaced with something more akin to "name=value" or "name value" 
pairs.. though in practice if we simply make the current userspace tools better 
then it wouldn't be that relevant since those would be easier to use overall 
anwyays...

> 
> Thanks,
> -Vladimir


_______________________________________________
Linuxptp-devel mailing list
Linuxptp-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linuxptp-devel

Reply via email to