Re: [RFC] sched: low latency feedback to userspace

From: Peter Zijlstra
Date: Mon May 09 2016 - 07:18:41 EST


On Mon, May 09, 2016 at 12:18:54PM +0200, Maximilian Krüger wrote:
> I am planning to extend the CFS as part of my master thesis. I want
> user-threads to allow to decide whether to enter a critical section or call
> sched_yield()

sched_yield() for anything other than SCHED_FIFO / SCHED_DEADLINE is a
'bug'. That is, calling sched_yield() outside of those two cases is
undefined behaviour and the kernel is free to eat your granny and set
your pet on fire.

> For tight synchronized workloads it might be useful, to only start certain
> short tasks, when they still can be completed in the current time slice
> without being interrupted by the scheduler.
> Since low latency is key, my current plan is to use a shared-mapped page for
> signaling and only use a syscall for the setup. I'd be curious, if you might
> find this useful in general and if there is a chance for getting this
> accepted upstream, given my benchmarks can prove gives the intended
> benefits.

Schemes like this have been proposed many times (Google might find them
for you in your favourite LKML archive) and shot down the same number of
times.

Such proposals always end up needing to define a 'limit', which is
artificial and subject to creep, also such soft preempt-disable or boost
schemes have very open ended semantics. They also become useless if
_everyone_ requests them at the same time -- something not unlikely
since every userspace program thinks it is the most important thing
under the sun.


Would something like:

http://lkml.kernel.org/r/20151027235635.16059.11630.stgit@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

and

http://lkml.kernel.org/r/1459789313-4917-1-git-send-email-mathieu.desnoyers@xxxxxxxxxxxx

work for what you want to achieve? If not; please explain in more detail
why you want what you propose.