Re: Changing Kernel thread priorities

From: Thomas Gleixner
Date: Tue Jun 07 2011 - 04:43:53 EST


On Tue, 7 Jun 2011, Monica Puig-Pey wrote:
> El 07/06/11 10:27, Johannes Bauer escribiÃ:
> > There's a reason all RT irq threads are started at 50, its plain
> > impossible to do better.
> >
>
> That's it!
> If I work with embedded system where I know all my tasks running and there is
> not a user how could I do it?

init scripts run from user space and you can adjust the priority there.

> What I tried is create the kernel thread in my init_module using:
>
> #include <linux/kthread.h>
>
> struct task_struct *kthread_create(int (*threadfn)(void *data),
> void *data,
> const char namefmt[], ...)
> and then running it with:
>
> #include <linux/sched.h>
>
> extern int wake_up_process(struct task_struct *tsk);
>
> These functions stars a Kthread which has a NON RT priority. I can see this
> using the ps command from user space.
> Because it's not a real time thread is why I want, better need, to change its
> priority, to have only real time threads running in my driver. I want to use
> the Kthread as a bottom half for the interrupts.

Use threaded interrupt handlers. That's what they are made for.

Thanks,

tglx