Re: [PATCH v2) posix-timers: make it configurable

From: Josh Triplett
Date: Wed Sep 14 2016 - 16:58:23 EST


On Wed, Sep 14, 2016 at 04:46:54PM -0400, Nicolas Pitre wrote:
> Many embedded systems typically don't need them. This removes about
> 22KB from the kernel binary size on ARM when configured out.
>
> Corresponding syscalls are routed to a stub logging the attempt to
> use those syscalls which should be enough of a clue if they were
> disabled without proper consideration. They are: timer_create,
> timer_gettime: timer_getoverrun, timer_settime, timer_delete,
> clock_adjtime.
>
> The clock_settime, clock_gettime, clock_getres and clock_nanosleep syscalls
> are replaced by simple wrappers compatible with CLOCK_REALTIME,
> CLOCK_MONOTONIC and CLOCK_BOOTTIME only.
>
> Signed-off-by: Nicolas Pitre <nico@xxxxxxxxxx>
> ---
>
> Changes from RFC/v1:
>
> - Stubbed-out functions moved to static inlines.
> - The timer signal handling code is now removed.
> - The list of removed syscalls is explicitly documented.
> - The clock_settime, clock_gettime, clock_getres and clock_nanosleep
> syscalls are minimally preserved as this required very little code.
>
> I'm now able to boot a copy of Fedora 21 with this patch and
> CONFIG_POSIX_TIMERS=n with no apparent issues.

This looks quite reasonable.

Does booting a standard distro really require providing clock_settime?

I'd still prefer to see the special-case sys_ni support dropped,
especially since the most common syscalls now remain. However, if
others want to see it kept, I won't object too strongly; whoever ends up
implementing a common (and optional) version of that infrastructure for
all syscalls can fold this into it.

- Josh Triplett