On Tue, 16 Jun 2009, Uwe Kleine-König wrote: > On Tue, Jun 16, 2009 at 07:59:28AM +0000, Martin Shepherd wrote: > > Suresh Kumar SHUKLA <suresh.shukla <at> st.com> writes: > > > // get IRQ descriptor from IRQ, it contains pid > > > desc = &irq_desc[IRQ_BASIC_TIMER_3_1]; > > > > That's a very useful clue. I was thinking that I would have to walk the process > > tree to find the thread by name. Following up on this clue, it appears as though > > in kernel 2.6.29.4 I should be able to use desc=irq_to_desc(irq) to look up the > > IRQ descriptor, then use pid=get_task_pid(desc->thread), to get the PID of the > > IRQ thread, then use sys_sched_setscheduler(pid,...) to change its priority. > > I'll try that out in the morning. > I wouldn't recommend calling sys_sched_setscheduler from kernel space. > That's the userspace API and you need to pass a __user pointer as third > argument. > > The right way is to do this change from userspace. What a nonsense. Care to look at the code ? The irq/softirq threads call sys_sched_setscheduler() already to change their priorities. The right way to do this is to have an interface set_irq_thread_prio(irq, prio) Thanks, tglx