Re: [PATCH] [man-pages] adjtimex.2: document clock_adjtime

From: Arnd Bergmann
Date: Tue Nov 21 2017 - 17:09:23 EST


On Tue, Nov 21, 2017 at 5:06 PM, Richard Cochran
<richardcochran@xxxxxxxxx> wrote:
> On Tue, Nov 21, 2017 at 09:06:37AM +0100, Arnd Bergmann wrote:
>>
>> I copied that line from clock_gettime() man page. I suppose we want to
>> fix change this in both pages, right? Any suggestions for a good way to
>> express your explanation in the man page? I suppose we don't want to
>> go into details of the implementation there but still capture the possible
>> corner cases.
>
> Dynamic clockids are a Linux specific extension. This should be
> explained with a paragraph or two on the gettime man page, along with
> an example using the macros.
>
> #define CLOCKFD 3
> #define FD_TO_CLOCKID(fd) ((~(clockid_t) (fd) << 3) | CLOCKFD)
> #define CLOCKID_TO_FD(clk) ((unsigned int) ~((clk) >> 3))
>
> Then, the adjtimex page can say, see gettime.
>
> Let me try to come up with a text over the (USA) holiday weekend.

Thanks! There is no rush here, take your time. One more question:
I see that ptp_clock_adjtime doesn't call timekeeping_validate_timex(),
so a number of the error conditions are not caught there. Should we
document that as intended, or change it to behave the same way
as do_adjtimex()?

I also see that ptp_clock_adjtime() ignores all other flags whenever
ADJ_SETOFFSET is set, while __do_adjtimex() can do ADJ_SETOFFSET
and ADJ_FREQUENCY (or any other combination) in a single syscall,
which matches what is documented in the man page.

Arnd