* How to establish a priority to an interrupt handler
@ 2011-05-17 11:51 Monica Puig-Pey
2011-05-18 8:01 ` Clemens Ladisch
0 siblings, 1 reply; 4+ messages in thread
From: Monica Puig-Pey @ 2011-05-17 11:51 UTC (permalink / raw)
To: linux-kernel
Hi,
I'm using Ubuntu 10.04 with the 2.6.31-11-rt patch installed. I'm
developing a PCI device driver using hardware interrupts.
As I read at the RT wiki
(https://rt.wiki.kernel.org/index.php/CONFIG_PREEMPT_RT_Patch )
interrupts are moved to kernel threads called Threaded Interrupts in the
RT patch.
I would like to give a priority chosen by me to my IRQ handler, but I
don't know how to do it, or if it is possible (it seems it is).
I've found (http://lwn.net/Articles/302043/ ) that what I had to use in
order to get Threaded Interrupt is:
int request_threaded_irq(unsigned int irq, irq_handler_t handler,
irq_handler_t quick_check_handler,
unsigned long flags, const char *name, void *dev)
But there is not priority there!
Using ps -eo pid,pri,rtprio,cmd I've seen my handler runs with priority 50.
I also used :
int request_irq (unsigned int irq, void (*handler) (int, void *, struct
pt_regs *), unsigned long irqflags, const char *devname, void *dev_id);
and using ps command here my handler still runs with priority 50.
Shouldn't it work as a non threaded interrupt then? Why 50 instead 99 or
the highest priority one?
Which function should I use to chose the priority for the IRQ thread?
Is there any other function to call from this context where my handler
could know its priority?
Please I wish to be personally CC'ed the answers/comments posted to the
list in response to my posting because I'm not subscribed to the list.
Thank you very much
Mónica
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: How to establish a priority to an interrupt handler
2011-05-17 11:51 How to establish a priority to an interrupt handler Monica Puig-Pey
@ 2011-05-18 8:01 ` Clemens Ladisch
0 siblings, 0 replies; 4+ messages in thread
From: Clemens Ladisch @ 2011-05-18 8:01 UTC (permalink / raw)
To: Monica Puig-Pey; +Cc: linux-kernel
Monica Puig-Pey wrote:
> I'm developing a PCI device driver using hardware interrupts.
> I would like to give a priority chosen by me to my IRQ handler,
Please note that
1) priorities are relative to the other priorites currently in use,
so assigning a fixed priority does not make sense unless you know
all the other priorites; and
2) it is the job of the administrator, not of the driver writer, to
determine which device gets the highest priority.
Regards,
Clemens
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: How to establish a priority to an interrupt handler
2011-05-16 10:26 Monica Puig-Pey
@ 2011-05-16 10:51 ` David Kastrup
0 siblings, 0 replies; 4+ messages in thread
From: David Kastrup @ 2011-05-16 10:51 UTC (permalink / raw)
To: linux-rt-users
Monica Puig-Pey <puigpeym@unican.es> writes:
> Hi,
>
> I'm using Ubuntu 10.04 with the 2.6.31-11-rt patch installed. I'm
> developing a PCI device driver using hardware interrupts.
> As I read at the RT wiki
> (https://rt.wiki.kernel.org/index.php/CONFIG_PREEMPT_RT_Patch )
> interrupts are moved to kernel threads called Threaded Interrupts in
> the RT patch.
>
> I would like to give a priority chosen by me to my IRQ handler, but I
> don't know how to do it, or if it is possible (it seems it is).
This may not answer your question, but
apt-get install rtirq-init
might be all you need to do in order to get the interrupt priorities set
and sorted out for your purposes (well, for sound
recording/processing/playback it usually works reasonably well).
Even if not, taking a look at what the rtirq service script does might
give you good ideas.
--
David Kastrup
^ permalink raw reply [flat|nested] 4+ messages in thread
* How to establish a priority to an interrupt handler
@ 2011-05-16 10:26 Monica Puig-Pey
2011-05-16 10:51 ` David Kastrup
0 siblings, 1 reply; 4+ messages in thread
From: Monica Puig-Pey @ 2011-05-16 10:26 UTC (permalink / raw)
To: linux-rt-users
Hi,
I'm using Ubuntu 10.04 with the 2.6.31-11-rt patch installed. I'm
developing a PCI device driver using hardware interrupts.
As I read at the RT wiki
(https://rt.wiki.kernel.org/index.php/CONFIG_PREEMPT_RT_Patch )
interrupts are moved to kernel threads called Threaded Interrupts in the
RT patch.
I would like to give a priority chosen by me to my IRQ handler, but I
don't know how to do it, or if it is possible (it seems it is).
I've found (http://lwn.net/Articles/302043/ ) that what I had to use in
order to get Threaded Interrupt is:
int request_threaded_irq(unsigned int irq, irq_handler_t handler,
irq_handler_t quick_check_handler,
unsigned long flags, const char *name, void *dev)
But there is not priority there!
Using ps -eo pid,pri,rtprio,cmd I've seen my handler runs with priority 50.
I also used :
int request_irq (unsigned int irq, void (*handler) (int, void *, struct
pt_regs *), unsigned long irqflags, const char *devname, void *dev_id);
and using ps command here my handler still runs with priority 50.
Shouldn't it work as a non threaded interrupt then? Why 50 instead 99 or
the highest priority one?
Which function should I use to chose the priority for the IRQ thread?
Is there any other function to call from this context where my handler
could know its priority?
Thank you
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
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2011-05-18 7:59 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-05-17 11:51 How to establish a priority to an interrupt handler Monica Puig-Pey
2011-05-18 8:01 ` Clemens Ladisch
-- strict thread matches above, loose matches on Subject: below --
2011-05-16 10:26 Monica Puig-Pey
2011-05-16 10:51 ` David Kastrup
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.