From 0a10685239dba14e69d381618675a46021ad8225 Mon Sep 17 00:00:00 2001 From: Danny Auble <da@llnl.gov> Date: Thu, 27 Apr 2006 21:05:21 +0000 Subject: [PATCH] cleaned up some stuff, got things looking good hopefully for both linux and AIX --- src/plugins/jobacct/aix/jobacct_aix.c | 1 + .../jobacct/common/common_slurmstepd.c | 1 + src/plugins/jobacct/common/jobacct_common.c | 8 ++++--- src/sacct/process.c | 4 ++-- src/sacct/sacct_stat.c | 21 +++++++------------ 5 files changed, 17 insertions(+), 18 deletions(-) diff --git a/src/plugins/jobacct/aix/jobacct_aix.c b/src/plugins/jobacct/aix/jobacct_aix.c index 20640ea2ba1..ebabd49855c 100644 --- a/src/plugins/jobacct/aix/jobacct_aix.c +++ b/src/plugins/jobacct/aix/jobacct_aix.c @@ -246,6 +246,7 @@ int jobacct_p_add_task(pid_t pid, uint16_t tid) struct jobacctinfo *jobacct_p_stat_task(pid_t pid) { + _get_process_data(); return common_stat_task(pid); } diff --git a/src/plugins/jobacct/common/common_slurmstepd.c b/src/plugins/jobacct/common/common_slurmstepd.c index e83f603de96..372e37567ec 100644 --- a/src/plugins/jobacct/common/common_slurmstepd.c +++ b/src/plugins/jobacct/common/common_slurmstepd.c @@ -54,6 +54,7 @@ extern int common_add_task(pid_t pid, uint16_t tid) } jobacct->pid = pid; + jobacct->min_cpu = 0; debug2("adding task %u pid %d to jobacct", tid, pid); list_push(task_list, jobacct); slurm_mutex_unlock(&jobacct_lock); diff --git a/src/plugins/jobacct/common/jobacct_common.c b/src/plugins/jobacct/common/jobacct_common.c index 440db011af6..e1336976279 100644 --- a/src/plugins/jobacct/common/jobacct_common.c +++ b/src/plugins/jobacct/common/jobacct_common.c @@ -59,7 +59,7 @@ extern int common_init_struct(struct jobacctinfo *jobacct, uint16_t tid) jobacct->max_pages = 0; jobacct->max_pages_task = tid; jobacct->tot_pages = 0; - jobacct->min_cpu = 0; + jobacct->min_cpu = (uint32_t)NO_VAL; jobacct->min_cpu_task = tid; jobacct->tot_cpu = 0; @@ -241,8 +241,10 @@ extern void common_aggregate(struct jobacctinfo *dest, dest->max_pages_task = from->max_pages_task; } dest->tot_pages += from->tot_pages; - - if((dest->min_cpu > from->min_cpu)) { + if((dest->min_cpu > from->min_cpu) + || (dest->min_cpu == (uint32_t)NO_VAL)) { + if(from->min_cpu == (uint32_t)NO_VAL) + from->min_cpu = 0; dest->min_cpu = from->min_cpu; dest->min_cpu_task = from->min_cpu_task; } diff --git a/src/sacct/process.c b/src/sacct/process.c index 7acd3e1c59c..c7d5cd7df7e 100644 --- a/src/sacct/process.c +++ b/src/sacct/process.c @@ -466,8 +466,8 @@ void aggregate_sacct(sacct_t *dest, sacct_t *from) dest->max_pages_task = from->max_pages_task; } dest->ave_pages += from->ave_pages; - - if((dest->min_cpu > from->min_cpu) + + if((dest->min_cpu > from->min_cpu) || (dest->min_cpu == (float)NO_VAL)) { dest->min_cpu = from->min_cpu; dest->min_cpu_task = from->min_cpu_task; diff --git a/src/sacct/sacct_stat.c b/src/sacct/sacct_stat.c index 59642ad6426..bc0907de3d3 100644 --- a/src/sacct/sacct_stat.c +++ b/src/sacct/sacct_stat.c @@ -154,8 +154,7 @@ int _sacct_query(resource_allocation_response_msg_t *job, uint32_t step_id) int *span = set_span(job->node_cnt, 0); forward_t forward; int thr_count = 0; - float tempf = 0; - + debug("getting the stat of job %d on %d nodes", job->job_id, job->node_cnt); @@ -242,17 +241,13 @@ int _sacct_query(resource_allocation_response_msg_t *job, uint32_t step_id) step.sacct.max_rss *= 1024; step.sacct.ave_vsize *= 1024; step.sacct.max_vsize *= 1024; - tempf = step.sacct.ave_cpu/step.ntasks; - tempf /= 100; - step.sacct.ave_cpu = (uint32_t)tempf; - tempf = step.sacct.min_cpu/100; - step.sacct.min_cpu = (uint32_t)tempf; - tempf = step.sacct.ave_rss/step.ntasks; - step.sacct.ave_rss = (uint32_t)tempf; - tempf = step.sacct.ave_vsize/step.ntasks; - step.sacct.ave_vsize = (uint32_t)tempf; - tempf = step.sacct.ave_pages/step.ntasks; - step.sacct.ave_pages = (uint32_t)tempf; + + step.sacct.ave_cpu /= step.ntasks; + step.sacct.ave_cpu /= 100; + step.sacct.min_cpu /= 100; + step.sacct.ave_rss /= step.ntasks; + step.sacct.ave_vsize /= step.ntasks; + step.sacct.ave_pages /= step.ntasks; } xfree(msg_array_ptr); jobacct_g_free(r.jobacct); -- GitLab