Можно ли изолировать процессор от планировщика linux в коде и предоставить права пользователя для этого, чтобы он не был root?изолировать процессор в коде без sudo?
можно легко установить на процессор сродством процесса/потока:
// 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
fail с Permission denied
Наконец, существует ли способ предоставить определенные права пользователя для изоляции процессора (как можно увеличить определенные лимиты в /etc/security/limits.conf
)?
username hard memlock unlimited
username soft memlock unlimited
username - rtprio 99
Допустимо использовать 'setfacl (1)' для добавления правильной возможности (проверьте 'возможности (7)' для деталей, возможно 'CAP_SYS_NICE',' CAP_SYS_RESOURCE' или 'CAP_SYS_ADMIN') для исполняемого файла? – sarnold