What is interrupt rescheduling (RES)? What causes this? How is this done in the Linux kernel?

What is the difference between RES: Reset Interrupts and LOC: Local Timer Interrupts? What is responsible for interrupting RES? Is the LOC the same as the general timer interrupt generated by the h / w timer in the processor?

Also, please give some clarity as to which part of the scheduler is invoked during timer interrupt and RES interrupt? How does this happen in the Linux kernel?

Thanks in advance.

+6
source share
1 answer

Interrupt transfer is a way of the Linux kernel to wake up a CPU-core downtime to schedule a thread on it. On SMP systems, this is often done by the scheduler to spread the load across multiple processor cores.

The scheduler is trying to distribute processor activity across as many cores as possible. The general rule is that it is desirable that on all cores with lower power (lower clock frequencies), as many processes are involved as one core operating at full speed, while the other cores are sleeping.

Relay interrupts are implemented using Inter-Processor Interrupts (IPI) . For more information, check out this article in Porting Interrupts to Linux .


Local timer interrupts are raised by the APIC for a particular CPU core. Only this processor processor receives interrupts and processes them. For a brief description of its various benefits, check out this answer .

+9
source

Source: https://habr.com/ru/post/952337/


All Articles