Re: disabling/masking interrupts

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

 



On Sat, 16 Oct 2004 08:08:26 +0300, Perfect Stranger
<gilmour@xxxxxxxxxxx> wrote:

> Selective enabling/disabling of IRQs is not the same as global
> masking/unmasking of maskable interrupts. When the IF flag of the eflags
> register is clear, each maskable interrupt issued by the PIC is temporarily
> ignored by the CPU

It might actually be helpful not to get too stuck in to how x86 does
this. If you're out to understand how the kernel handles general
concepts, such as interrupt generation, then it's not entirely useful
to view everything in terms of particular Intel CPU registers :-).

> so the disables interrupts are not sent at all while the masked interrupts
> are sent but ignored by the CPU .. is this right ?

Yes. They might be processed at a later stage, depending upon whether
the line is unmasked and what is done to the PIC.

> in case it's right i've jumped to this conclusion : disabled interrupts are
> not lost cause they aren't send at all .. they are queued, but masked
> interrupts are lost cause they are sent but ignored by the CPU
> correct me please ..

Disabled interrupts on the device aren't generated in the first place
to be ignored. Masked interrupts in the PIC are queued for later
handling when unmasking, disabled interrupts on the CPU result in the
processor getting interrupted when subsequently enabled, if the PIC is
still asserting the INT (or equilavent) pin(s).

Jon.

--
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