From: Eric Rannaud <eric.rannaud@gmail.com>
To: linux-api@vger.kernel.org, linux-man@vger.kernel.org
Subject: clock_settime(2) error for non-settable clocks
Date: Fri, 20 Mar 2020 11:02:24 -0700 [thread overview]
Message-ID: <CA+zRj8U5_NaY4ZQXj9r=f58KcO3pq5k9HZt9KxRYHnOOk=e1WQ@mail.gmail.com> (raw)
If clock_id is a valid clock on the system (i.e. it can be passed to
clock_gettime(2)), clock_settime(clock_id, &ts) sets errno to, either:
- EINVAL if CONFIG_POSIX_TIMERS is not enabled (kernel/posix-stubs.c);
- EINVAL if CONFIG_POSIX_TIMERS is enabled (kernel/posix-timers.c)
and the k_clock has no set function (e.g. CLOCK_BOOTTIME);
- EACCES for dynamic posix clock devices that lack F_WRITE
(kernel/posix-time.c);
- EOPNOTSUPP for dynamic posix clock devices that have F_WRITE but
don't have a clock_settime op.
- EOPNOTSUPP for drivers/ptp/ptp_kvm.c (they provide a clock_settime
op that returns -EOPNOTSUPP directly, rather than opt to leave
clock_settime NULL which would do the same thing, see previous point).
The manpage for clock_settime(2) is not very clear:
EINVAL The clk_id specified is not supported on this system.
EPERM clock_settime() does not have permission to set the clock indi‐
cated.
To me, the manpage reads like EPERM should be expected when trying to
set a clock that is not settable.
Should we update the manpage to more fully explain the range of
possible errors or instead try to have more consistent errors? For
syscalls, what's the backward-compatibility contract for errno values?
next reply other threads:[~2020-03-20 18:02 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-03-20 18:02 Eric Rannaud [this message]
2020-03-21 3:56 ` clock_settime(2) error for non-settable clocks Aleksa Sarai
2020-03-26 8:37 ` Michael Kerrisk (man-pages)
2020-03-29 20:49 ` Michael Kerrisk (man-pages)
2020-04-02 11:48 ` Michael Kerrisk (man-pages)
2020-04-02 14:23 ` [PATCH 1/1] clock_getres.2: dynamic POSIX clock devices can return other errors Eric Rannaud
2020-04-02 19:55 ` Michael Kerrisk (man-pages)
2020-04-02 20:06 ` Eric Rannaud
2020-04-02 20:19 ` Michael Kerrisk (man-pages)
2020-04-02 20:49 ` Eric Rannaud
2020-04-02 20:50 ` Eric Rannaud
2020-04-03 7:02 ` Michael Kerrisk (man-pages)
2020-04-03 16:42 ` Eric Rannaud
2020-04-20 11:13 ` Michael Kerrisk (man-pages)
2020-04-02 14:29 ` clock_settime(2) error for non-settable clocks Eric Rannaud
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='CA+zRj8U5_NaY4ZQXj9r=f58KcO3pq5k9HZt9KxRYHnOOk=e1WQ@mail.gmail.com' \
--to=eric.rannaud@gmail.com \
--cc=linux-api@vger.kernel.org \
--cc=linux-man@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.