diff --git a/src/slurmctld/step_mgr.c b/src/slurmctld/step_mgr.c index e41e3de3242d5ddecebdf0fd4e5ada7376e483d5..cbf2feb07309d2ec0851c7b550a6133b37d492c0 100644 --- a/src/slurmctld/step_mgr.c +++ b/src/slurmctld/step_mgr.c @@ -1103,7 +1103,7 @@ step_create(job_step_create_request_msg_t *step_specs, return ESLURM_PATHNAME_TOO_LONG; /* we can figure out the cpus_per_task here by reversing what happens - * in srun, record argument, plus save/restore in slurm v1.4 */ + * in srun, record argument in slurm v1.4 */ cpus_per_task_work = step_specs->cpu_count / step_specs->num_tasks; if (cpus_per_task_work < 1) cpus_per_task_work = 1; @@ -1990,6 +1990,7 @@ extern void dump_job_step_state(struct step_record *step_ptr, Buf buffer) pack16(step_ptr->cyclic_alloc, buffer); pack16(step_ptr->port, buffer); pack16(step_ptr->ckpt_interval, buffer); + pack16(step_ptr->cpus_per_task, buffer); pack8(step_ptr->no_kill, buffer); @@ -2036,7 +2037,7 @@ extern int load_step_state(struct job_record *job_ptr, Buf buffer) struct step_record *step_ptr = NULL; uint8_t no_kill; uint16_t step_id, cyclic_alloc, port, batch_step, bit_cnt; - uint16_t ckpt_interval; + uint16_t ckpt_interval, cpus_per_task; uint32_t core_size, cpu_count, exit_code, mem_per_task, name_len; time_t start_time, pre_sus_time, tot_sus_time, ckpt_time; char *host = NULL, *ckpt_path = NULL, *core_job = NULL; @@ -2049,6 +2050,7 @@ extern int load_step_state(struct job_record *job_ptr, Buf buffer) safe_unpack16(&cyclic_alloc, buffer); safe_unpack16(&port, buffer); safe_unpack16(&ckpt_interval, buffer); + safe_unpack16(&cpus_per_task, buffer); safe_unpack8(&no_kill, buffer); @@ -2105,6 +2107,7 @@ extern int load_step_state(struct job_record *job_ptr, Buf buffer) /* set new values */ step_ptr->step_id = step_id; step_ptr->cpu_count = cpu_count; + step_ptr->cpus_per_task= cpus_per_task; step_ptr->cyclic_alloc = cyclic_alloc; step_ptr->name = name; step_ptr->network = network; @@ -2120,7 +2123,6 @@ extern int load_step_state(struct job_record *job_ptr, Buf buffer) step_ptr->pre_sus_time = pre_sus_time; step_ptr->tot_sus_time = tot_sus_time; step_ptr->ckpt_time = ckpt_time; - step_ptr->cpus_per_task = 1; /* Need to save/restore in v1.4 */ slurm_step_layout_destroy(step_ptr->step_layout); step_ptr->step_layout = step_layout;