#include "types.hh" #include "util.hh" #include "affinity.hh" #if HAVE_SCHED_H #include #endif namespace nix { #if HAVE_SCHED_SETAFFINITY static bool didSaveAffinity = false; static cpu_set_t savedAffinity; #endif void setAffinityTo(int cpu) { #if HAVE_SCHED_SETAFFINITY if (sched_getaffinity(0, sizeof(cpu_set_t), &savedAffinity) == -1) return; didSaveAffinity = true; printMsg(lvlDebug, format("locking this thread to CPU %1%") % cpu); cpu_set_t newAffinity; CPU_ZERO(&newAffinity); CPU_SET(cpu, &newAffinity); if (sched_setaffinity(0, sizeof(cpu_set_t), &newAffinity) == -1) printMsg(lvlError, format("failed to lock thread to CPU %1%") % cpu); #endif } int lockToCurrentCPU() { #if HAVE_SCHED_SETAFFINITY int cpu = sched_getcpu(); if (cpu != -1) setAffinityTo(cpu); return cpu; #else return -1; #endif } void restoreAffinity() { #if HAVE_SCHED_SETAFFINITY if (!didSaveAffinity) return; if (sched_setaffinity(0, sizeof(cpu_set_t), &savedAffinity) == -1) printMsg(lvlError, "failed to restore affinity %1%"); #endif } } '/guix/'>summaryrefslogtreecommitdiff
path: root/gnu/build/activation.scm
AgeCommit message (Expand)Author
2022-12-17activation: Firmware activation handles missing support in kernel....Marius Bakke
2022-03-01initrd: Use non-hyphenated kernel command-line parameter names....Maxim Cournoyer
2021-07-29services: setuid: More configurable setuid support....Chris Lemmer-Webber
2021-04-03activation: Do not dereference symlinks during home directory creation....Maxime Devos
2021-03-10services: Prevent following symlinks during activation....Maxime Devos
2021-02-09activation: Do not make setuid programs setgid-root [security]....Ludovic Courtès
2020-06-09activation: Fix function call for system activation...Royce Strange
2020-06-08system: Support activation service for the Hurd....Jan (janneke) Nieuwenhuizen
2020-01-06activation: Check whether /proc/sys/kernel/modprobe exists....kanichos@yandex.ru
2020-01-02activation: Keep going when failing to create one of the setuid programs....Ludovic Courtès