Можно ли изолировать процессор от планировщика linux в коде и предоставить пользователю права на это, чтобы он не был пользователем root?
Я могу легко установить привязку процессора к процессу / потоку:
// set thread affinity to core 1
cpu_set_t cpu_set;
CPU_ZERO(&cpu_set);
CPU_SET(1, &cpu_set);
sched_setaffinity(tid, sizeof(cpu_set_t), &cpu_set);
Теперь я бы хотел изолировать этот процессор от всех других процессов в системе.
Я знаю, что могу сделать это на Redhat, используя тунца:
sudo tuna --cpus 1 --isolate
sudo tuna --cpus 3 --isolate
Я где-то читал, что можно выделить следующим образом:
sudo echo 0 > /sys/devices/system/cpu/cpu1/online
sudo echo 1 > /sys/devices/system/cpu/cpu1/isolated
sudo echo 1 > /sys/devices/system/cpu/cpu1/online
Однако попытки создать файл isolated
не удаются с Permission denied
Наконец, есть ли способ предоставить определенному пользователю права на выделение процессора (так же, как можно увеличить определенные пределы в /etc/security/limits.conf
)?
username hard memlock unlimited
username soft memlock unlimited
username - rtprio 99