Re: [PATCH] prctl: Add PR_SET_TIMERSLACK_PID for setting timer slack of an arbitrary thread.

From: Andrew Morton
Date: Fri Feb 05 2016 - 15:50:18 EST


On Fri, 5 Feb 2016 12:44:04 -0800 Kees Cook <keescook@xxxxxxxxxxxx> wrote:

> On Fri, Feb 5, 2016 at 12:39 PM, John Stultz <john.stultz@xxxxxxxxxx> wrote:
> > On Fri, Feb 5, 2016 at 12:32 PM, Andrew Morton
> > <akpm@xxxxxxxxxxxxxxxxxxxx> wrote:
> >> On Fri, 5 Feb 2016 12:23:13 -0800 John Stultz <john.stultz@xxxxxxxxxx> wrote:
> >>> On Fri, Feb 5, 2016 at 12:13 PM, Andrew Morton
> >>> <akpm@xxxxxxxxxxxxxxxxxxxx> wrote:
> >>>>
> >>>> IOW, it would be more consistent to add sys_set_timer_slack()?
> >>>
> >>> I'm fine with moving this way.
> >>>
> >>> Ruchi/Rom: Any objections to that idea?
> >>>
> >>> Thomas/Arjan: Any other functionality we should consider including
> >>> when adding a syscall to tweak timer slack?
> >>
> >> A syscall is quite a bit more fuss - implement it on x86_64, provide a
> >> no-op default in sys_ni.c, add a test suite into
> >> tools/testing/selftests (mainly for arch maintainers), wait for the
> >> various arch maintainers to wire it up.
> >
> > Yea. It is. And I'm not excited to start over on this, but this
> > functionality has already run into trouble in the Android tree, as the
> > PR_SET_TIMERSLACK_PID value has hit multiple collisions over time. So
> > this functionality upstream would help resolve that pain.
> >
> >> Fortunately the build system now emits little messages which tell
> >> maintainers that there's a new syscall which needs looking at.
> >>
> >> And a manpage will be needed, but a prctl manpage patch would have been
> >> needed anyway.
> >
> > Yea.
>
> Could this be exposed as a writable /proc entry instead? Like the oom_* stuff?

/proc/<pid>/timer_slack_ns, guarded by ptrace_may_access(), documented
under Documentation/? Yup, that would work. It's there for all
architectures from day one and there is precedent. It's not as nice,
but /proc nasties will always be with us.