RE: interrupts top and bottom half

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

 



Hi,

>-----Original Message-----
>From: rahul N. [mailto:rahul8143@xxxxxxxxx]
>Sent: Saturday, September 24, 2005 2:59 PM
>To: kernelnewbies@xxxxxxxxxxxx
>Subject: interrupts top and bottom half
>
>Hello,
>         I am learning linux internals where i got problem in
understanding
>top level interrupts and bottom level interrupts.

Whenever a interrupt is received, kernel needs to service that
interrupt. The servicing includes acknowledging the interrupt and then
doing some other less important non-time critical work in response.
Sometimes this other work may also be time critical, for e.g. copying
packetet from network card to kernel buffers.  

This servicing of interrupt is performed by kernel in two parts
First is called top halves (or interrupt handler) which does the work of
acknowledging the interrupt and doing any associated time critical work.
This part is expected to complete quickly so the resumption of
interrupted code (that was executing at the time of interrupt) can be
started as early as possible. 

The rest of work which is not that time critical, is scheduled at a
later time and constitutes the bottom half (bottom level interrupt
handling). 

>can anybody write for me whats the differece between them and when
software
>and hardware interrupts are invoked?

Software interrupts are programmed for e.g. using "int3" instructions.
System calls are example of software interrupt.

Hardware interrupts comes from actual devices like those from I/O, n/w
devices. h/w interrupts can be masked if required (not for all cases
though).

Sanjay
>regards,
>rahul.
>


--
Kernelnewbies: Help each other learn about the Linux kernel.
Archive:       http://mail.nl.linux.org/kernelnewbies/
FAQ:           http://kernelnewbies.org/faq/



[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux