Re: Priorities of IRQ handlers
From: Arnaldo Carvalho de Melo <hidden>
Date: 2007-11-28 15:05:32
Em Wed, Nov 28, 2007 at 08:12:24AM -0600, K.R. Foley escreveu:
John Sigler wrote:quoted
Hello Steven, Steven Rostedt wrote:quoted
John Sigler wrote:quoted
I need to change the priorities of several soft and hard IRQ handlers. Namely, o reduce the prio of "softirq-timer" handler to 10 o reduce the prio of IRQ14 and IRQ15 handlers to 20 (my flash drives do not support DMA BTW...) o boost the prio of my I/O boards' IRQ handlers to 60 (there can be 1 or 2 boards, the driver is a kernel module which is loaded after the system has booted.) I've written a short program that calls sched_setscheduler(pid, SCHED_FIFO, ¶m); with the appropriate pid, which I look up using ps -efLook for the program "chrt". It does this for you. This program is available in all major distributions of Linux.Thanks for the tip. For the record, I found schedutils on Robert Love's page: http://rlove.org/ http://rlove.org/misc/schedutils-1.5.0.tar.gz However, I had already solved that part of the problem with a program of my own. My real problem is: the IRQ handlers for the I/O boards are only instantiated when the kernel module is inserted. How do I /reliably/ determine their pid?What about something like: chrt -f -p 99 `/sbin/pidof 'IRQ 8'`
If he knows that IRQ 8 is associated with his device, that is ok, but how to map device -> IRQ in the first place?
quoted
e.g. on one system, the IRQ handler for my I/O board is IRQ5 with pid 745. On another system, it's IRQ20 with pid 808. On a third system they're IRQ20 and IRQ21 with pid 239 and 240.
See? Perhaps he could use a kernel command line where he would tell that for the string used in request_irq the kthread priority should be N. IIRC there was somebody trying to write a patch to support this at some point in this list... - Arnaldo