Предположим, у меня есть переменная для каждого процессора, объявленная с DEFINE_PER_CPU(struct var, var)
и связанная с каждым struct var
атрибутом int count
. Это происходит во время инициализации системы и поэтому (предположительно) находится в init/main.c
. Далее предположим, что у меня есть increment_count()
функция, определенная как
void increment_count() {
per_cpu(var, get_cpu()).count += 1;
put_cpu();
}
. Я бы хотел, чтобы increment_count
вызывался ядром каждые x
миллисекунд, начиная с инициализации системы. Некоторый джиттер в интервале времени в порядке. Как это можно реализовать на практике? Кроме того, нужно ли явно выгружать текущий запущенный поток, чтобы разрешить запуск потока increment_count()
?