* [LTP] [PATCH] prio-wake: eliminate deprecated usleep calls @ 2014-07-28 22:05 Gary S. Robertson 2014-07-29 10:46 ` chrubis 0 siblings, 1 reply; 3+ messages in thread From: Gary S. Robertson @ 2014-07-28 22:05 UTC (permalink / raw) To: ltp-list; +Cc: mike.holmes From: "Gary S. Robertson" <gary.robertson@linaro.org> Replaced deprecated usleep calls with calls to rt_nanosleep, which has no potentially adverse interactions with signals. Signed-off-by: Gary S. Robertson <gary.robertson@linaro.org> --- testcases/realtime/func/prio-wake/prio-wake.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/testcases/realtime/func/prio-wake/prio-wake.c b/testcases/realtime/func/prio-wake/prio-wake.c index 18c0405..f34ae30 100644 --- a/testcases/realtime/func/prio-wake/prio-wake.c +++ b/testcases/realtime/func/prio-wake/prio-wake.c @@ -108,10 +108,10 @@ void *master_thread(void *arg) /* make sure children are started */ while (running_threads < rt_threads) - usleep(1000); + rt_nanosleep(1000000); /* give the worker threads a chance to get to sleep in the kernel * in the unlocked broadcast case. */ - usleep(1000); + rt_nanosleep(1000000); start = rt_gettime() - beginrun; -- 1.7.9.5 ------------------------------------------------------------------------------ Infragistics Professional Build stunning WinForms apps today! Reboot your WinForms applications with our WinForms controls. Build a bridge from your legacy apps to the future. http://pubads.g.doubleclick.net/gampad/clk?id=153845071&iu=/4140/ostg.clktrk _______________________________________________ Ltp-list mailing list Ltp-list@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/ltp-list ^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [LTP] [PATCH] prio-wake: eliminate deprecated usleep calls 2014-07-28 22:05 [LTP] [PATCH] prio-wake: eliminate deprecated usleep calls Gary S. Robertson @ 2014-07-29 10:46 ` chrubis [not found] ` <CAF7YWnxyXT2V=yKmEoSUzTbX8Cn9jVPTOK9-2sn_2jZCBOx_Gg@mail.gmail.com> 0 siblings, 1 reply; 3+ messages in thread From: chrubis @ 2014-07-29 10:46 UTC (permalink / raw) To: Gary S. Robertson; +Cc: ltp-list, mike.holmes Hi! > Replaced deprecated usleep calls with calls to rt_nanosleep, > which has no potentially adverse interactions with signals. Deprecated in which sense? In terms of realtime testsuite? Has usleep() caused the test to fail? If so, why? -- Cyril Hrubis chrubis@suse.cz ------------------------------------------------------------------------------ Infragistics Professional Build stunning WinForms apps today! Reboot your WinForms applications with our WinForms controls. Build a bridge from your legacy apps to the future. http://pubads.g.doubleclick.net/gampad/clk?id=153845071&iu=/4140/ostg.clktrk _______________________________________________ Ltp-list mailing list Ltp-list@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/ltp-list ^ permalink raw reply [flat|nested] 3+ messages in thread
[parent not found: <CAF7YWnxyXT2V=yKmEoSUzTbX8Cn9jVPTOK9-2sn_2jZCBOx_Gg@mail.gmail.com>]
* Re: [LTP] [PATCH] prio-wake: eliminate deprecated usleep calls [not found] ` <CAF7YWnxyXT2V=yKmEoSUzTbX8Cn9jVPTOK9-2sn_2jZCBOx_Gg@mail.gmail.com> @ 2014-07-29 18:16 ` chrubis 0 siblings, 0 replies; 3+ messages in thread From: chrubis @ 2014-07-29 18:16 UTC (permalink / raw) To: Gary Robertson; +Cc: ltp-list, Mike Holmes Hi! > > > Replaced deprecated usleep calls with calls to rt_nanosleep, > > > which has no potentially adverse interactions with signals. > > > > Deprecated in which sense? In terms of realtime testsuite? > > > > My apologies for being ambiguous... years of writing pthreads applications > has made this function 'deprecated' by default in my thinking. > usleep should generally be avoided when using many other timer functions > - including nanosleep, which is the basis of rt-nanosleep. > Generally speaking, usleep and nanosleep should not be used in the same > program. > > Its interaction with SIGALRM may cause interference > with other functions using SIGALRM, if any are in use. > > As indicated in the usleep() man page NOTES: > " The interaction of this function with the SIGALRM signal, and > with > other timer functions such as alarm(2), sleep(3), > nanosleep(2), > setitimer(2), timer_create(2), timer_delete(2), > timer_getoverrun(2), > timer_gettime(2), timer_settime(2), ualarm(3) is unspecified. > " Ok. > > Has usleep() caused the test to fail? If so, why? > > > > usleep() is not causing prio-wake test failures in our environment. > > We are getting race conditions among multiple waiter threads > on armv7a processors in the futex / mutex locking code > for the mutex associated with the condition variable in prio-wake. > This is causing one of the threads to 'hang' waiting for a lock > after the lock owner releases it and terminates. Since this > doesn't happen on x86 it appears to be specific to the armv7a - > either in the compiler code generation or in some arch-specific > code somewhere... we are investigating. > > In investigating possible reasons for the 'hangup' I began by > examining the source in prio-wake.c and saw the potentially > problematic usleep calls. Knowing they don't always play > well with nanosleep I eliminated them on the chance that > they were contributing to the hangups... which in this case > they are not. > > However as I said, years of coding pthreads apps > with various timer functions has led me to use only > nanosleep-related timer functions and to avoid usleep > altogether - so I submit this patch as a somewhat > 'nit-picking' minor cleanup. Ok. Can you please sumarize this a bit so that it fits into the commit message and resend the patch? -- Cyril Hrubis chrubis@suse.cz ------------------------------------------------------------------------------ Infragistics Professional Build stunning WinForms apps today! Reboot your WinForms applications with our WinForms controls. Build a bridge from your legacy apps to the future. http://pubads.g.doubleclick.net/gampad/clk?id=153845071&iu=/4140/ostg.clktrk _______________________________________________ Ltp-list mailing list Ltp-list@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/ltp-list ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2014-07-29 18:17 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-07-28 22:05 [LTP] [PATCH] prio-wake: eliminate deprecated usleep calls Gary S. Robertson
2014-07-29 10:46 ` chrubis
[not found] ` <CAF7YWnxyXT2V=yKmEoSUzTbX8Cn9jVPTOK9-2sn_2jZCBOx_Gg@mail.gmail.com>
2014-07-29 18:16 ` chrubis
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox