Messages in this thread | | | Date | Tue, 7 Jun 2011 10:40:49 +0200 | From | Monica Puig-Pey <> | Subject | Re: Changing Kernel thread priorities |
| |
El 06/06/11 18:49, Mark Hounschell escribió: > On 06/06/2011 07:58 AM, Monica Puig-Pey wrote: >> El 06/06/11 13:54, Rolando Martins escribió: >>> Hi, >>> I use the following: >>> >>> PIDs=$(ps -eLo pid,cls,rtprio,pri,nice,cmd | grep -i "irq" | awk '{ >>> print $1; }' | xargs echo) >>> for i in $PIDs >>> do >>> ret=$(chrt -f -p 99 $i) >>> done >>> >>> This will change the kernel thread associated with an irq handler to >>> RT FIFO prio 99. >>> Just change the script to your specific interrupt. >>> >>> Hope it helps, >>> Rolando >>> >>> On Mon, Jun 6, 2011 at 12:47 PM, Monica Puig-Pey<puigpeym@unican.es> >>> wrote: >>>> I am writing a driver which has one kernel thread associated with it. >>>> I want to change the priority of this thread, so that I can specify the >>>> order in which it is scheduled following an interrupt. >>>> I'm using: >>>> >>>> sched_setscheduler(struct task_struct *, int, struct sched_param *); >>>> >>>> but it doesn't work. I tried to change the priority from the >>>> init_module, >>>> and also from the Kernel Thread, but there is no way. >>>> >>>> Kernel version is 2.6.31-11-rt >>>> >>>> What do I call to change a kernel thread priority? >>>> >>>> Thanks you very much >>>> >>>> Mónica >>>> >>>> -- >>>> To unsubscribe from this list: send the line "unsubscribe >>>> linux-rt-users" in >>>> the body of a message to majordomo@vger.kernel.org >>>> More majordomo info at http://vger.kernel.org/majordomo-info.html >>>> >> >> I need to change the priority from inside the driver, when creating the >> kernel thread. >> Your script is useful but it is done in user context, >> Any other help please? > > What I do is record the PID of the thread in the driver, then create an > IOCTL for your driver that user land can call that either returns the > PID so you can do it in user land, or cause the IOCTL code to do it in > the driver. > > The same can be done with the affinity of the IRQ if you record the IRQ > number. > > Mark > -- > To unsubscribe from this list: send the line "unsubscribe > linux-rt-users" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html
But I don't have de PID of my Kthread, I only have the task_struc * that gives me the function:
struct task_struct *kthread_create(int (*threadfn)(void *data), void *data, const char namefmt[], ...)
How could I get the PID, and which function should I use in the IOCTL (kernel context) for changing its priority?
Thank you so much for your help
Mónica -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |