[LTP] [PATCH 5/5] open_posix: condvar/schedule: mask SIGALRM in SCHED_OTHER threads

Cyril Hrubis chrubis@suse.cz
Tue Feb 23 11:00:27 CET 2016


Hi!
> > I guess that the test could be changed to:
> > 
> > * Lock one high priority thread on cond variable
> > * Run one low priority thread that does sleep(1) then
> >   calls pthread_cond_signal()
> > * Run one bussy loop low priority thread
> > 
> > That way we would avoid the signal handlers entirely. What do you think?
> 
> Would it be enough to:
> - call set_affinity_single() to have it all run on single CPU
> - spawn high prio thread and wait for it to block on condition
> - spawn low prio thread and singal condition, then busy loop for couple seconds
>
> And we can be also sure that high prio thread preempted low prio thread
> regardless of number of CPUs on system.
>

Good idea. I would use affinity on the bussy thread and the high
priority thread and let the low priority thread that calls the signal
function without any affinity.

That way the condition signaling would be trully asynchronous on SMP
system (and the test will work on single CPU as well since SCHED_RR will
wake up the signaling thread sooner or later since it has the same
priority as the bussy loop one).

> Also, any objections if we split the series? If I fix 1/5 and skip 5/5
> for now, those 4 could go in now and then next series would be series
> that removes signal handlers from all.

Sure. I've acked these patches allready :)

-- 
Cyril Hrubis
chrubis@suse.cz


More information about the Ltp mailing list