Boston Linux & Unix (BLU) Home | Calendar | Mail Lists | List Archives | Desktop SIG | Hardware Hacking SIG
Wiki | Flickr | PicasaWeb | Video | Maps & Directions | Installfests | Keysignings
Linux Cafe | Meeting Notes | Blog | Linux Links | Bling | About BLU

BLU Discuss list archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Interrupt Service Routine or BH

Sounds like the sort of question you'd want to direct towards the 
kernel mailing list.

On Jul 3, 2004, at 9:02 AM, <karina.popkova at> wrote:

> Hello
> I am writing a paper for school and need help.
> I am aware that there have been changes to the
> Interrupt Handling functionality, particularly
> in the kernel version 2.4 and up through 2.6.x.
> In the old days (when was that) an Interrupt was
> serviced in two steps. That is, the Interrupt Handler
> was broken into two parts, a Top Half and a Bottom Half (BH).
> The Top Half would run to acknowledge the interrupt,
> identify the hardware device raising the Interrupt,
> check for data or status on the I/O device and return as
> quickly as possible to avoid missing any new interrupts.
> Then, the Bottom Half (of the service routine) was scheduled
> at some later time to complete the service of the Interrupt
> or to do the actual work required to service the hardware device.
> Then, the color or shape of the Bottom Half began to evolve
> whereby Tasklets, Softirqs and Work Queues took on the idea
> of the earlier Bottom Half. Now, the mention of a Bottom Half
> was really in a generic reference to the notion of "deferred work"
> or a BH that still accomplished the real work of the Interrupt Handler.
> Specifically, the old idea of a Bottom Half became generic
> in a sense, but was actually performed by one of three constructs.
> These new software constructs, Softirqs, Tasklets and Work Queues
> were really created to improve Scalability and allow more efficient
> use of SMP (symmetric multiprocessor) platforms as well.
> Some articles mention a neat example of networking where the
> Top Half notes that a packet has arrived off of the connection.
> But the real processing of the packet is done by a softirq (or BH).
> This is understandable,
> So, my question is really this.
> When would a softirq be used? What is the criteria to select a
> softirq in lieu of a tasklet or a work queue, to perform
> deferred work, or that work of a BH?
> I can?t seem to find any notes on why a Tasklet would be a
> better selection for use as a BH, rather than using a Work Queue
> or a softirq?
> I did read that one of these constructs, if running on
> one select CPU, would then NOT be runnable on another CPU.
> I did read about one of the constructs as being serializable
> versus ?non-serializable?.
> Can someone elaborate on selection of these constructs or
> any of this idea of processing bottom halves of
> Linux Interrupts or ISRs?
> -karina
> Karina Popkova
> _______________________________________________
> Discuss mailing list
> Discuss at

BLU is a member of BostonUserGroups
BLU is a member of BostonUserGroups
We also thank MIT for the use of their facilities.

Valid HTML 4.01! Valid CSS!

Boston Linux & Unix /