hi: 2011/7/11 Dave Hylands <dhylands@xxxxxxxxx>: > Hi Milody, > > On Sun, Jul 10, 2011 at 8:55 PM, loody <miloody@xxxxxxxxx> wrote: >> hi: >> >> 2011/7/11 Mulyadi Santosa <mulyadi.santosa@xxxxxxxxx>: >>> Hi... >>> > > ...snip... > >>> AFAIK they are user mode libc functions... >> I found there are the same export_symbols in kernel. >> I use them to dynamically change the priority. >> It works but I found something interesting: >> 1. if thread use schedule algorithm of SCHED_NORMAL, it cannot change >> the priority. >> 2. can we set the priority to any number less than (MAX_USER_RT_PRIO-1)? >> ( I tried to set the priority as 99, but it fail) > > You need to change the scheduling algorithim to be SCHED_FIFO or > SCHED_RR in order to use the real-time priorities. I saw kernel restrict the algorithm as SCHED_FIFO and SCHED_RR to change the priority. What are the differences between rt_priority, prio, static_prio and normal_prio? sched_setscheduler seems only change rt_priority. normal_prio is MAX_RT_PRIO-1 - t_priority prio will be min(normal_prio, task_top_pi_waiter) what is the real priority that kthread runs after calling sched_setscheduler ? > >> 3. can we get the name of thread from task_struct or pid? >> (I use "cat /proc/338/status", I can see the name of thread. But I >> look around the task_struct, I cannot find any name information in >> it.) > > You can use the comm field from the task struct. This can be set using > the prctl API and passing in PR_SET_NAME. You can see the task name by > doing something like > > ps -T -o pid,ppid,user,time,comm > > Normally, ps shows the args column. > > -- > Dave Hylands > Shuswap, BC, Canada > http://www.davehylands.com > -- Regards, _______________________________________________ Kernelnewbies mailing list Kernelnewbies@xxxxxxxxxxxxxxxxx http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies