Re: Interrupt Priority

Tech-Archive recommends: Repair Windows Errors & Optimize Windows Performance



The IA-32 manual is more recent and comes directly from the CPU
manufacturer. Other, older documents apply to
obsolete cpu's or modes not relevant for protected mode operation.

--PA

"sawer" <sawer@xxxxxxxxxxxxxxxxxxxxxxxxx> wrote in message news:28AE8346-95FF-474E-9708-562B73D489B8@xxxxxxxxxxxxxxxx
One more source:

1-)divide error interrupt, INT n, INT0 highest
2-)NMI
3-)INTR
4-)TRAP flag (single step)
lowest

And The IA-32 Intel(R) Architecture Software Developer's Manual Volume 3_
System Programming Guide:


Table 5-2. Priority Among Simultaneous Exceptions and Interrupts
Priority Description
1 (Highest) Hardware Reset and Machine Checks
- RESET
- Machine Check

2 Trap on Task Switch
- T flag in TSS is set

3 External Hardware Interventions
- FLUSH
- STOPCLK
- SMI
- INIT

4 Traps on the Previous Instruction
- Breakpoints
- Debug Trap Exceptions (TF flag set or data/I-O breakpoint)

5 Nonmaskable Interrupts (NMI)

6 Maskable Hardware Interrupts

7 Code Breakpoint Fault

8 Faults from Fetching Next Instruction
- Code-Segment Limit Violation
- Code Page Fault

9 Faults from Decoding the Next Instruction
- Instruction length > 15 bytes
- Invalid Opcode
- Coprocessor Not Available

10 (Lowest) Faults on Executing an Instruction
- Overflow
- Bound error
- Invalid TSS
- Segment Not Present
- Stack fault
- General Protection
- Data Page Fault
- Alignment Check
- x87 FPU Floating-point exception
- SIMD floating-point exception

I don't understand why all of them are different.

"sawer" wrote:

Hi
I searched for interrupts and found some informations that conflicts..

The first one:

Interrupts:
1) Reset: caused by change in voltage on RESET input pin
2) Internal interrupts: caused by executing certain non-flow control
instructions.
3) Software interrupts: caused by executing INT instruction.
4) Non-maskable interrupt: Caused by change in voltage on the NMI pin.
5) External hardware interrupts: Caused by change in voltage on the INTR pin
The order of the five interrupt classed listed above is the same as their
priority order.
Reset has the highest priority and external hardware interrupts the lowest.



The second one:

Lower interrupt vectors have higher priority
Lower priority can't interrupt higher priority
Higher priority can interrupt lower priority
ISR for INT 21h is running
Computer gets request from device attached to IRQ8 (INT 78h)
INT 21h procedure must finish before IRQ8 device can be serviced
ISR for INT 21h is running
Computer gets request from Timer 0 IRQ0 (INT 8h)
Code for INT 21h gets interrupted, ISR for timer runs immediately, INT21h
finishes afterwards



Which one is true for windows kernel?

Is software interrupts(INT) priority higher than external hardware
interrupt(IRQ) or vice versa?
Thanks...


.



Relevant Pages

  • RE: Interrupt Priority
    ... Priority Among Simultaneous Exceptions and Interrupts ... Code Breakpoint Fault ... Faults from Fetching Next Instruction ...
    (microsoft.public.win32.programmer.kernel)
  • Interrupts vs Faults
    ... x86 but i still would like to know how x86 handles interrupts and ... My concerns are with Interrupt Cycle that dictates that interrupts are ... checked only after executing the current instruction. ... So my intitution is that a fault causes the current instruction to be ...
    (comp.lang.asm.x86)
  • [tip:x86/apic] x86, apic: Reclaim IDT vectors 0x20-0x2f
    ... Reclaim 16 IDT vectors and make them available for general allocation. ... an otherwise-unusable APIC priority level and put it to use. ... * Vectors 0x30-0x3f are used for ISA interrupts. ...
    (Linux-Kernel)
  • Re: [RFC][PATCH] irq: remove IRQF_DISABLED
    ... The "irq's disabled fastpath" thing has been there since pretty much day ... allowing higher priority interrupts to "preempt" ... lower priority ones, which this would effectively render useless. ... The problems with enabling irqs in hardirq handlers are that you get ...
    (Linux-Kernel)
  • Re: 8052 emulator in C
    ... when you see an instruction "add a, b", you write out the line "regs.a ... and including some way for interrupts to jump in. ... Run that through your host compiler, ... written to get it cycle exact, but it ran so everybody was happy and their asm ...
    (comp.arch.embedded)