diff --git a/src/slurmd/slurmd/slurmd.c b/src/slurmd/slurmd/slurmd.c index c334e884b6438e73cc059d3bd4964ecef15ecd2c..efff0cdda941e807dafcb16100450c0ab76608dd 100644 --- a/src/slurmd/slurmd/slurmd.c +++ b/src/slurmd/slurmd/slurmd.c @@ -171,7 +171,8 @@ static void _hup_handler(int); static void _increment_thd_count(void); static void _init_conf(void); static void _install_fork_handlers(void); -static void _kill_old_slurmd(void); +static bool _is_core_spec_cray(void); +static void _kill_old_slurmd(void); static int _memory_spec_init(void); static void _msg_engine(void); static void _print_conf(void); @@ -1966,6 +1967,17 @@ static int _resource_spec_init(void) return SLURM_SUCCESS; } +/* Return TRUE if CoreSpecPlugin=core_spec/cray */ +static bool _is_core_spec_cray(void) +{ + bool use_core_spec_cray = false; + char *core_spec_plugin = slurm_get_core_spec_plugin(); + if (core_spec_plugin && strstr(core_spec_plugin, "cray")) + use_core_spec_cray = true; + xfree(core_spec_plugin); + return use_core_spec_cray; +} + /* * If configured, initialize core specialization */ @@ -1977,6 +1989,10 @@ static int _core_spec_init(void) info("No specialized cores configured by default on this node"); return SLURM_SUCCESS; } + if (_is_core_spec_cray()) { /* No need to use cgroups */ + debug("Using core_spec/cray to manage specialized cores"); + return SLURM_SUCCESS; + } if (!check_cgroup_job_confinement()) { error("Resource spec: cgroup job confinement not configured"); return SLURM_ERROR;