Gilles Carry wrote:
> This is mainly to put back the main thread as SCHED_OTHER
> when doing disk I/O. (stats dump...)
> In some circumstances, disk I/O within an RT task might hang the
> system. (deadlock)
Wha? Can you elaborate on an example case?
While it isn't advisable to perform I/O during latency sensitive
sections for code, or while holding certain locks, etc., the system
should not deadlock! If it doesn, we have ourselves a bug.
--
Darren Hart
> ---
> testcases/realtime/include/librttest.h | 5 +++++
> testcases/realtime/lib/librttest.c | 13 +++++++++++++
> 2 files changed, 18 insertions(+), 0 deletions(-)
>
> diff --git a/testcases/realtime/include/librttest.h
> b/testcases/realtime/include/librttest.h
> index b56f81e..bb30ee7 100644
> --- a/testcases/realtime/include/librttest.h
> +++ b/testcases/realtime/include/librttest.h
> @@ -302,6 +302,11 @@ int set_thread_priority(pthread_t pthread, int prio);
> */
> int set_priority(int prio);
>
> +/* Change the priority of the current context (usually called from main())
> + * and its policy to SCHED_OTHER
> + */
> +int set_priority_other(int prio);
> +
> /* all_threads_quit: signal all threads to quit */
> void all_threads_quit(void);
>
> diff --git a/testcases/realtime/lib/librttest.c
> b/testcases/realtime/lib/librttest.c
> index ed1f097..c82fb95 100644
> --- a/testcases/realtime/lib/librttest.c
> +++ b/testcases/realtime/lib/librttest.c
> @@ -267,6 +267,19 @@ int set_priority(int prio)
> return ret;
> }
>
> +int set_priority_other(int prio)
> +{
> + struct sched_param sp;
> + int ret = 0;
> +
> + sp.sched_priority = prio;
> + if (sched_setscheduler(0, SCHED_OTHER, &sp) != 0) {
> + perror("sched_setscheduler");
> + ret = -1;
> + }
> + return ret;
> +}
> +
> void join_thread(int i)
> {
> struct thread *p, *t = NULL;
--
Darren Hart
IBM Linux Technology Center
Real-Time Linux Team
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list