#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/tests/databases.scm
AgeCommit message (Expand)Author
2024-12-09tests: Adjust for new return value of ‘start-service’....In Shepherd 1.0, the “running value” of processes is no longer a plain integer; instead, it is a (process …) sexp. This commit adjusts tests to this change in a way that works both for 1.0 and for previous versions. * gnu/tests/databases.scm (run-memcached-test) (run-mysql-test): Don’t expect PID to be a number. * gnu/tests/docker.scm (run-docker-test) (run-docker-system-test, run-oci-container-test): Likewise. * gnu/tests/guix.scm (run-guix-build-coordinator-test) (run-guix-data-service-test, run-nar-herder-test) (run-bffe-test): Likewise. * gnu/tests/ldap.scm (run-ldap-test): Likewise. * gnu/tests/monitoring.scm (run-prometheus-node-exporter-server-test): Likewise. * gnu/tests/virtualization.scm (run-libvirt-test) (run-qemu-guest-agent-test, run-childhurd-test): Likewise. * gnu/tests/web.scm (run-webserver-test, run-php-fpm-test) (run-hpcguix-web-server-test, run-patchwork-test) (run-agate-test): Likewise * gnu/tests/ssh.scm (run-ssh-test): Accept a number, an ‘inetd-service’ sexp, or a ‘process’ sexp. Change-Id: I8c7a37a981f0788780fbc33752a38e7f9a026437 Ludovic Courtès