Что вызывает apic_timer_interrupt ()? - PullRequest
0 голосов
/ 14 марта 2020

Я нахожусь на CentOS 7 (ядро 3.10.0-1062.1.2.el7.x86_64).

По некоторым причинам мое приложение с жесткой l oop (на изолированном ядре, которое находится на nohz_full список) имеет apic_timer_interrupt примерно раз в 1 сек c. Это не локальное прерывание по таймеру.

Мое фиктивное приложение:

#include <cstdio>
#include <cstdlib>
#include <ctime>
#include <cstdint>

int main(int argc, char** argv) {
        srand(time(nullptr));
        int32_t i = 0;
        while (i != rand()) i = rand() * -1;
        printf("%d", i);
}

/proc/sched_debug показало, что ядро ​​выполняет только одну задачу:

cpu#5, 2900.000 MHz
  .nr_running                    : 1

dmesg показал, что ядро ​​использует динамический c тик:

[Sun Mar 15 23:11:30 2020] NO_HZ: Full dynticks CPUs: 2-11.

Есть идеи?

...