diff --git a/src/plugins/switch/cray/util.c b/src/plugins/switch/cray/util.c index 462d635297b27090ac779556e6fd58c87345579c..f30dce3dcabd765e742aacc85240af457bbcef2e 100644 --- a/src/plugins/switch/cray/util.c +++ b/src/plugins/switch/cray/util.c @@ -81,6 +81,18 @@ int create_apid_dir(uint64_t apid, uid_t uid, gid_t gid) return SLURM_SUCCESS; } +/* Return TRUE if the job is packing tasks onto nodes */ +static bool _pack_node_test(uint16_t task_dist) +{ + if (task_dist & SLURM_DIST_PACK_NODES) + return true; + if (task_dist & SLURM_DIST_NO_PACK_NODES) + return false; + if (slurm_get_select_type_param() & CR_PACK_NODES) + return true; + return false; +} + /* * Set job environment variables used by LLI and PMI */ @@ -175,8 +187,8 @@ int set_job_env(stepd_step_rec_t *job, slurm_cray_jobinfo_t *sw_job) non_smp = 1; break; } - if ((non_smp == 0) && - (slurm_get_select_type_param() & CR_PACK_NODES)) { + + if ((non_smp == 0) && _pack_node_test(job->task_dist)) { CRAY_INFO("Non-SMP ordering identified; CR_PACK_NODES"); non_smp = 1; }