[CM] Fwd: Linux/Midi Test

lieven moors lievenmoors at gmail.com
Tue Aug 11 12:41:03 PDT 2009


Ok I managed, apparently if you change to SCHED_OTHER, the only value you
can use for the priority is 0, in order to set it. I thought I could use 
the 'nice' value...

I changed the realtime thread of CM to SCHED_OTHER because I thought it 
might reveal a problem
in Juce with realtime scheduling (I had terrible results when running 
the test program with realtime scheduling).
But still no luck. Even with SCHED_OTHER, and with the changes to 
juce_amalgamated, CM doesn't sounds tight
with a very simple process.

Thanks for all your help today, and I'll have another stab at it later.

Greetings


Kjetil S. Matheussen wrote:
>
>
> On Tue, 11 Aug 2009, lieven moors wrote:
>
>> It's seems that the only way I got a good timing, was by running the 
>> process
>> in a normal, non realtime thread. I can change the realtime priority 
>> of the CM thread
>> to 1 (lowest), but I cannot change it into a normal priority thread 
>> (I don't know how).
>> Could you tell me what (and where) to change, so that the CM thread 
>> wouldn't use realtime priority?
>>
>> Or perhaps kjetil: do you know how to do that without recompiling CM?
>>
>
> You can use the chrt command to get/set scheduling policy and priority.
>
>
> For setting scheduling policy and priority in c, I use the following 
> function in das_watchdog:
>
> static int set_pid_priority(pid_t pid,int policy,int priority,char 
> *message,char *name){
>   struct sched_param par={0};
>   par.sched_priority=priority;
>   if((sched_setscheduler(pid,policy,&par)!=0)){
>     print_error(stderr,message,pid,name,strerror(errno));
>     return 0;
>   }
>   return 1;
> }
>
>
>
> To set normal priority for a process, it can be called like this:
>
> set_pid_priority(pid,SCHED_OTHER,0,"Could not set pid %d (\"%s\") to 
> SCHED_OTHER (%s).\n","no name"))
>
>



More information about the Cmdist mailing list