Welcome to Soft32 Linux Forums!
FAQFAQ    SearchSearch      ProfileProfile    Private MessagesPrivate Messages   Log inLog in

irq sharing between devices

 
   Soft32 Home -> Linux -> System Development RSS
Next:  Bug#544455: deja-dup: Category should be set to S..  
Author Message
kavi

External


Since: Sep 04, 2009
Posts: 4



(Msg. 1) Posted: Fri Sep 04, 2009 10:15 pm
Post subject: irq sharing between devices
Archived from groups: comp>os>linux>development>system (more info?)

Hi,
if I have two/three devices sharing the same interrupt num having
three interrupt handlers ,say pci devices , which interrupt handler
will get called when there is a interrupt.
Against the interrupt number, these two/three interrupt handlers will
be registered in interrupt descriptor table.Am I correct?
Should there be register which says which actual interrupt is
generated? So, in which device this register will be present?

Basically I m trying to understand how irq sharing is happening in
Linux.

Thanks in advance.

kavi
Back to top
Login to vote
Tim Roberts

External


Since: Jul 16, 2003
Posts: 24



(Msg. 2) Posted: Sat Sep 05, 2009 2:12 pm
Post subject: Re: irq sharing between devices [Login to view extended thread Info.]
Archived from groups: per prev. post (more info?)

kavi <mekaviraj DeleteThis @gmail.com> wrote:
>
>if I have two/three devices sharing the same interrupt num having
>three interrupt handlers ,say pci devices , which interrupt handler
>will get called when there is a interrupt.

All of them. Presumably, all but one of the handlers will realize that the
interrupt was not for them, and do nothing (quickly).

>Against the interrupt number, these two/three interrupt handlers will
>be registered in interrupt descriptor table.Am I correct?

Well, they will be registered in the kernel's interrupt tables. The
hardware IDT can only have one handler, which points to a kernel routine
that calls all of the registered handlers.

>Should there be register which says which actual interrupt is
>generated? So, in which device this register will be present?

Yes. Every PCI hardware device must have a register that says "yes, I
really did fire an interrupt."
--
Tim Roberts, timr DeleteThis @probo.com
Providenza & Boekelheide, Inc.
Back to top
Login to vote
Saravana

External


Since: Sep 08, 2009
Posts: 1



(Msg. 3) Posted: Tue Sep 08, 2009 7:48 am
Post subject: Re: irq sharing between devices [Login to view extended thread Info.]
Archived from groups: per prev. post (more info?)

On Sep 6, 2:12 am, Tim Roberts <t....DeleteThis@probo.com> wrote:
> kavi <mekavi....DeleteThis@gmail.com> wrote:
>
> >if I have two/three devices sharing the same interrupt num having
> >three interrupt handlers ,say pci devices , which interrupt handler
> >will get called when there is a interrupt.
>
> All of them.  Presumably, all but one of the handlers will realize that the
> interrupt was not for them, and do nothing (quickly).
>
> >Against the interrupt number, these two/three interrupt handlers will
> >be registered in interrupt descriptor table.Am I correct?
>
> Well, they will be registered in the kernel's interrupt tables.  The
> hardware IDT can only have one handler, which points to a kernel routine
> that calls all of the registered handlers.
>
> >Should there be register which says which actual interrupt is
> >generated? So, in which device this register will be present?
>
> Yes.  Every PCI hardware device must have a register that says "yes, I
> really did fire an interrupt."
> --
> Tim Roberts, t....DeleteThis@probo.com
> Providenza & Boekelheide, Inc.





Thanks Tim !!
Back to top
Login to vote
kavi

External


Since: Sep 04, 2009
Posts: 4



(Msg. 4) Posted: Tue Sep 08, 2009 10:27 am
Post subject: Re: irq sharing between devices [Login to view extended thread Info.]
Archived from groups: per prev. post (more info?)

On Sep 6, 2:12 am, Tim Roberts <t....DeleteThis@probo.com> wrote:
> kavi <mekavi....DeleteThis@gmail.com> wrote:
>
> >if I have two/three devices sharing the same interrupt num having
> >three interrupt handlers ,say pci devices , which interrupt handler
> >will get called when there is a interrupt.
>
> All of them.  Presumably, all but one of the handlers will realize that the
> interrupt was not for them, and do nothing (quickly).
>
> >Against the interrupt number, these two/three interrupt handlers will
> >be registered in interrupt descriptor table.Am I correct?
>
> Well, they will be registered in the kernel's interrupt tables.  The
> hardware IDT can only have one handler, which points to a kernel routine
> that calls all of the registered handlers.
>
> >Should there be register which says which actual interrupt is
> >generated? So, in which device this register will be present?
>
> Yes.  Every PCI hardware device must have a register that says "yes, I
> really did fire an interrupt."
> --
> Tim Roberts, t....DeleteThis@probo.com
> Providenza & Boekelheide, Inc.

Thanks Tim !!
Back to top
Login to vote
David Schwartz

External


Since: Apr 25, 2007
Posts: 134



(Msg. 5) Posted: Tue Sep 08, 2009 2:16 pm
Post subject: Re: irq sharing between devices [Login to view extended thread Info.]
Archived from groups: per prev. post (more info?)

On Sep 4, 10:15 pm, kavi <mekavi....DeleteThis@gmail.com> wrote:
> Hi,
> if I have two/three devices sharing the same interrupt num having
> three interrupt handlers ,say pci devices , which interrupt handler
> will get called when there is a interrupt.
> Against the interrupt number, these two/three interrupt handlers will
> be registered in interrupt descriptor table.Am I correct?
> Should there be register which says which actual interrupt is
> generated? So, in which device this register will be present?
>
> Basically I m trying to understand how irq sharing is happening in
> Linux.

Devices which support IRQ sharing have an interrupt handler that first
checks the device to see if it issued the interrupt. If it did not,
they return immediately. The kernel will call all the interrupt
handlers in succession.

Pretty much every modern device that supports IRQ sharing has a
register that indicates what IRQs it has issued and why. So if it's,
say, a network card, there will be a register that has several bit
flags, one for send interrupt, one for receive interrupt, one for
media change interrupt, and so on. The interrupt driver will read that
register and if none of the flags are set, it will return.

You need this even if there is no interrupt sharing, as it provides a
quick way to tell what interrupt handling code the driver needs to
run.

DS
Back to top
Login to vote
kavi

External


Since: Sep 04, 2009
Posts: 4



(Msg. 6) Posted: Thu Sep 10, 2009 11:01 am
Post subject: Re: irq sharing between devices [Login to view extended thread Info.]
Archived from groups: per prev. post (more info?)

On Sep 9, 2:16 am, David Schwartz <dav... DeleteThis @webmaster.com> wrote:
> On Sep 4, 10:15 pm, kavi <mekavi... DeleteThis @gmail.com> wrote:
>
> > Hi,
> > if I have two/three devices sharing the same interrupt num having
> > three interrupt handlers ,say pci devices , which interrupt handler
> > will get called when there is a interrupt.
> > Against the interrupt number, these two/three interrupt handlers will
> > be registered in interrupt descriptor table.Am I correct?
> > Should there be register which says which actual interrupt is
> > generated? So, in which device this register will be present?
>
> > Basically I m trying to understand how irq sharing is happening in
> > Linux.
>
> Devices which support IRQ sharing have an interrupt handler that first
> checks the device to see if it issued the interrupt. If it did not,
> they return immediately. The kernel will call all the interrupt
> handlers in succession.
>
> Pretty much every modern device that supports IRQ sharing has a
> register that indicates what IRQs it has issued and why. So if it's,
> say, a network card, there will be a register that has several bit
> flags, one for send interrupt, one for receive interrupt, one for
> media change interrupt, and so on. The interrupt driver will read that
> register and if none of the flags are set, it will return.
>
> You need this even if there is no interrupt sharing, as it provides a
> quick way to tell what interrupt handling code the driver needs to
> run.
>
> DS

Thanks David !!
You really got gr8 insight into these subjects Smile
Back to top
Login to vote
David Schwartz

External


Since: Apr 25, 2007
Posts: 134



(Msg. 7) Posted: Thu Sep 10, 2009 6:26 pm
Post subject: Re: irq sharing between devices [Login to view extended thread Info.]
Archived from groups: per prev. post (more info?)

On Sep 10, 11:01 am, kavi <mekavi....RemoveThis@gmail.com> wrote:

> Thanks David !!
> You really got gr8 insight into these subjects Smile

You're welcome. That's why they pay me the big bucks. (The green ones
that you can actually *spend*!)

DS
Back to top
Login to vote
Display posts from previous:   
Related Topics:
RFC3971 - Does anyone know if RFC3971 support is being developed for Linux? It does not seem to be implemented in the mainline..

Size 8 bit, 16 bit, 32 bit and 64 bit systems. - I need to find out what is the size of following data structures in 8 bit, 16 bit, 32 bit, and 64 bit systems. struct....

Size 8 bit, 16 bit, 32 bit and 64 bit systems. - I need to find out what is the size of following data structures in 8 bit, 16 bit, 32 bit, and 64 bit systems. struct....

Access shared memory from kernel module - Hi All, I wanted to know if shared memory created in user space can be accessed from a loadable kernel module. Have no...

Controlling UART transmission of bytes - I'm programming an ARM's UART that comes with a library implementing the standard unix termios interface. Regarding..

Fwd: Re: Phis in /proc/bus/input/devices same for all devi.. - Hi, can anybody reply to this and share his/her opinion? Thanks a lot Michal ---------- Předaná zpráva ----------...
       Soft32 Home -> Linux -> System Development All times are: Pacific Time (US & Canada) (change)
Page 1 of 1

 
You can post new topics in this forum
You can reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

Categories:
 Windows
  Linux
 Mac
 PDA


[ Contact us | Terms of Service/Privacy Policy ]