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

Reply via email to