From 9603a226abf7df2b896c31143ca630b38855c277 Mon Sep 17 00:00:00 2001 From: Danny Auble <da@llnl.gov> Date: Mon, 14 Dec 2009 18:30:23 +0000 Subject: [PATCH] fix undercount issue for bluegene systems --- src/slurmctld/job_mgr.c | 10 ++++++++-- src/slurmctld/slurmctld.h | 3 ++- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/slurmctld/job_mgr.c b/src/slurmctld/job_mgr.c index 73f82ec3b9d..5461d6b969e 100644 --- a/src/slurmctld/job_mgr.c +++ b/src/slurmctld/job_mgr.c @@ -3829,7 +3829,11 @@ extern int job_update_cpu_cnt(struct job_record *job_ptr, int node_inx) { uint16_t cpu_cnt=0, i=0; int curr_node_inx; - +#ifdef HAVE_BG + /* This function doesn't apply to a bluegene system since the + cpu count isn't set up on that system. */ + return SLURM_SUCCESS; +#endif xassert(job_ptr); if(!job_ptr->job_resrcs || !job_ptr->job_resrcs->node_bitmap) { error("job_update_cpu_cnt: " @@ -3849,6 +3853,7 @@ extern int job_update_cpu_cnt(struct job_record *job_ptr, int node_inx) break; curr_node_inx += job_ptr->job_resrcs->cpu_array_reps[i]; } + /* info("removing %u from %u", cpu_cnt, job_ptr->cpu_cnt); */ job_ptr->cpu_cnt -= cpu_cnt; if((int)job_ptr->cpu_cnt < 0) { error("job_update_cpu_cnt: " @@ -4306,7 +4311,8 @@ void pack_job(struct job_record *dump_job_ptr, uint16_t show_flags, Buf buffer) packstr(dump_job_ptr->wckey, buffer); packstr(dump_job_ptr->alloc_node, buffer); pack_bit_fmt(dump_job_ptr->node_bitmap, buffer); - if (IS_JOB_COMPLETING(dump_job_ptr)) + + if (IS_JOB_COMPLETING(dump_job_ptr) && dump_job_ptr->cpu_cnt) pack32(dump_job_ptr->cpu_cnt, buffer); else if (dump_job_ptr->total_procs) pack32(dump_job_ptr->total_procs, buffer); diff --git a/src/slurmctld/slurmctld.h b/src/slurmctld/slurmctld.h index 117cf5bf993..e2576439984 100644 --- a/src/slurmctld/slurmctld.h +++ b/src/slurmctld/slurmctld.h @@ -379,7 +379,8 @@ struct job_record { * checkpointed */ char *comment; /* arbitrary comment */ uint32_t cpu_cnt; /* current count of cpus held - * by the job */ + * by the job (N/A for + * bluegene systems) */ uint16_t cr_enabled; /* specify if if Consumable Resources * is enabled. Needed since CR deals * with a finer granularity in its -- GitLab