From 415abead1e5d8b1223adc7032ec3d09f95778ef4 Mon Sep 17 00:00:00 2001 From: Niels de Vos Date: Tue, 22 Dec 2020 08:58:06 +0100 Subject: [PATCH] build: only use --cpuset options when the cgroup controller is available Fixes: #1670 Signed-off-by: Niels de Vos --- Makefile | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index b197c3724..0d6b54437 100644 --- a/Makefile +++ b/Makefile @@ -16,8 +16,18 @@ CONTAINER_CMD?=$(shell docker version >/dev/null 2>&1 && echo docker) ifeq ($(CONTAINER_CMD),) CONTAINER_CMD=$(shell podman version >/dev/null 2>&1 && echo podman) endif -CPUS?=$(shell nproc --ignore=1) -CPUSET?=--cpuset-cpus=0-${CPUS} + +# Recent versions of Podman do not allow non-root to use --cpuset options. +# Set HAVE_CPUSET to 1 when cpuset support is available. +ifeq ($(UID),0) + HAVE_CPUSET ?= $(shell grep -c -w cpuset /sys/fs/cgroup/cgroup.controllers 2>/dev/null) +else + HAVE_CPUSET ?= $(shell grep -c -w cpuset /sys/fs/cgroup/user.slice/user-$(UID).slice/cgroup.controllers 2>/dev/null) +endif +ifeq ($(HAVE_CPUSET),1) + CPUS ?= $(shell nproc --ignore=1) + CPUSET ?= --cpuset-cpus=0-${CPUS} +endif CSI_IMAGE_NAME=$(if $(ENV_CSI_IMAGE_NAME),$(ENV_CSI_IMAGE_NAME),quay.io/cephcsi/cephcsi) USE_PULLED_IMAGE ?= no