Hi! > > > 2. linux default sched_rt_runtime_us gives 0.05s to be used by > > > SCHED_OTHER (non-RT tasks) (Documentation/scheduler/sched-rt-group.txt) > > > If we set also main thread to use SCHED_FIFO, then this shouldn't be > > > problem. > > > > That shouldn't be much of problem, the main thread would pick up once > > the realtime threads are locked on mutexes/cond vars. Or am I mistaken > > here? > > (assuming all threads are bound to single CPU) > That's true, but (the way I understand it) non-rt main thread can also run > when scheduler thinks that RT processes are monopolizing CPU for too long.
As I understand it, it's a anti lockup measure so if the kernel detects that realtime threads has been running for nearly a second in a row it stops the execution and schedules some other threads. But that shouldn't be the case here. > So you can't be sure that thread is actually on "mutex". > > thread_func(): > pthread_mutex_lock(&c_mutex); > pthread_cond_signal(&cond); > pthread_mutex_unlock(&c_mutex); > --> here scheduler decides it's time to give a chance to non-rt threads > and runs main thread, condition was already signalled so main thinks > thread is already blocking on mutex > pthread_mutex_lock(&mutex); > > If we set SCHED_FIFO also on main thread with lowest priority, then > it shouldn't run regardless of value in sched_rt_runtime_us. That is why I said that we have to wait for the lowest priority thread to run. Giving the main thread even lower priority is a way of doing that. -- Cyril Hrubis [email protected] ------------------------------------------------------------------------------ October Webinars: Code for Performance Free Intel webinars can help you accelerate application performance. Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from the latest Intel processors and coprocessors. See abstracts and register > http://pubads.g.doubleclick.net/gampad/clk?id=60134791&iu=/4140/ostg.clktrk _______________________________________________ Ltp-list mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/ltp-list
