Messages in this thread | | | Date | Tue, 31 Aug 2010 11:02:28 -0400 | From | Mathieu Desnoyers <> | Subject | Re: [RFC PATCH 00/11] sched: CFS low-latency features |
| |
* Mathieu Desnoyers (mathieu.desnoyers@efficios.com) wrote: > * Peter Zijlstra (peterz@infradead.org) wrote: > > On Fri, 2010-08-27 at 14:32 -0400, Mathieu Desnoyers wrote: > > > > > > These are problems you get only when you allow spawning any number of threads. > > > If, instead, you create a thread pool at timer creation, then you can allow > > > concurrency without problems with spawner context and error proparation. > > > > That would be a massive resource waste for the normal case where the > > interval > handler runtime. > > Not if the application can configure this value. So the "normal" case could be > set to 1 single thread. Only resource-intensive apps would set this differently, > e.g. to the detected number of cpus.
.. but as we discussed in private, this would involve adding extra attribute fields to what the standard proposes. I think the problem comes from the fact that POSIX considers the pthread attributes to contain every possible thread attribute one can imagine, which does not take into account the internal kernel state set by other interfaces.
So this leaves us with a single-threaded SIGEV_THREAD, which is pretty much useless. But at least it is not totally impossible for glibc to get it right by moving to an implementation which uses only one thread.
So until one finds the time to work on fixing glibc SIGEV_THREAD timers, I would strongly recommend against using it.
Thanks,
Mathieu
> > Mathieu > > > -- > Mathieu Desnoyers > Operating System Efficiency R&D Consultant > EfficiOS Inc. > http://www.efficios.com
-- Mathieu Desnoyers Operating System Efficiency R&D Consultant EfficiOS Inc. http://www.efficios.com
| |