Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 7 May 1996 21:12:32 +0200
From:      se@zpr.uni-koeln.de (Stefan Esser)
To:        "Amancio Hasty Jr." <hasty@rah.star-gate.com>
Cc:        freebsd-hackers@freebsd.org
Subject:   Re: shared interrupts?
Message-ID:  <199605071912.AA04379@Sisyphos>
In-Reply-To: "Amancio Hasty Jr." <hasty@rah.star-gate.com> "Re: shared interrupts?" (May  6, 16:02)

next in thread | previous in thread | raw e-mail | index | archive | help
On May 6, 16:02, "Amancio Hasty Jr." wrote:
} Subject: Re: shared interrupts?
} > > Is it possible for PCI devices to shared interrupts?
} > 
} > Yes.
} > 
} > > And if so how does one identify which device is generating the interrupt?
} > 
} > One asks each device sharing the interrupt "Are *yo* talking to *me*?".
} > 
} > 8-).
} 
} Okay, specifically how does one ask each device "Are you really talking
} to me?"

Well, that specific question is easy to answer (but I 
don't know whether you'll like this particular answer :)

It is device specific ...

There is a linked list of devices belonging to each IRQ 
that is actually being shared, and a meta-handler polls 
each device in this list, possibly leading to more than 
one interrupt being serviced.

(You are not interested in knowing whether this device
originally caused this polling cycle, it suffices to
check whether it could take advantage of service now :)

It is good practice to have the interrupt handler in a 
PCI driver just do a quick check in the device's status 
register, whether this device is in a state that requires 
service and to just return if it wasn't.

Regards, STefan
-- 
 Stefan Esser, Zentrum fuer Paralleles Rechnen		Tel:	+49 221 4706021
 Universitaet zu Koeln, Weyertal 80, 50931 Koeln	FAX:	+49 221 4705160
 ==============================================================================
 http://www.zpr.uni-koeln.de/~se			  <se@ZPR.Uni-Koeln.DE>



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199605071912.AA04379>