From 50fcda9dabd92a006472bb7a5eb2bf56112406e0 Mon Sep 17 00:00:00 2001
From: Danny Auble <da@llnl.gov>
Date: Fri, 6 Jun 2008 21:07:52 +0000
Subject: [PATCH] ok things are correct now

---
 src/common/jobacct_common.c                   | 33 +++++++++++--------
 .../mysql/mysql_jobacct_process.c             |  8 ++---
 src/sacct/options.c                           |  5 +++
 3 files changed, 29 insertions(+), 17 deletions(-)

diff --git a/src/common/jobacct_common.c b/src/common/jobacct_common.c
index 74f555bf17f..1eafc3290ac 100644
--- a/src/common/jobacct_common.c
+++ b/src/common/jobacct_common.c
@@ -48,6 +48,7 @@ uint32_t cont_id = (uint32_t)NO_VAL;
 uint32_t acct_job_id = 0;
 uint32_t job_mem_limit = 0;
 bool pgid_plugin = false;
+uint32_t mult = 1000;
 
 static void _pack_jobacct_id(jobacct_id_t *jobacct_id, Buf buffer)
 {
@@ -67,6 +68,7 @@ unpack_error:
 static void _pack_sacct(sacct_t *sacct, Buf buffer)
 {
 	int i=0;
+	uint32_t temp;
 
 	if(!sacct) {
 		for(i=0; i<8; i++)
@@ -79,14 +81,19 @@ static void _pack_sacct(sacct_t *sacct, Buf buffer)
 		return;
 	} 
 
-	pack32((uint32_t)sacct->max_vsize, buffer);
-	pack32((uint32_t)sacct->ave_vsize, buffer);
-	pack32((uint32_t)sacct->max_rss, buffer);
-	pack32((uint32_t)sacct->ave_rss, buffer);
-	pack32((uint32_t)sacct->max_pages, buffer);
-	pack32((uint32_t)sacct->ave_pages, buffer);
-	pack32((uint32_t)sacct->min_cpu, buffer);
-	pack32((uint32_t)sacct->ave_cpu, buffer);
+	pack32(sacct->max_vsize, buffer);
+	temp = sacct->ave_vsize * mult;
+	pack32(temp, buffer);
+	pack32(sacct->max_rss, buffer);
+	temp = (uint32_t)sacct->ave_rss * mult;
+	pack32(temp, buffer);
+	pack32(sacct->max_pages, buffer);
+	temp = (uint32_t)sacct->ave_pages * mult;
+	pack32(temp, buffer);
+	temp = (uint32_t)sacct->min_cpu * mult;
+	pack32(temp, buffer);
+	temp = (uint32_t)sacct->ave_cpu * mult;
+	pack32(temp, buffer);
 
 	_pack_jobacct_id(&sacct->max_vsize_id, buffer);
 	_pack_jobacct_id(&sacct->max_rss_id, buffer);
@@ -104,17 +111,17 @@ static int _unpack_sacct(sacct_t *sacct, Buf buffer)
 
 	safe_unpack32(&sacct->max_vsize, buffer);
 	safe_unpack32(&temp, buffer);
-	sacct->ave_vsize = temp;
+	sacct->ave_vsize = temp / mult;
 	safe_unpack32(&sacct->max_rss, buffer);
 	safe_unpack32(&temp, buffer);
-	sacct->ave_rss = temp;
+	sacct->ave_rss = temp / mult;
 	safe_unpack32(&sacct->max_pages, buffer);
 	safe_unpack32(&temp, buffer);
-	sacct->ave_pages = temp;
+	sacct->ave_pages = temp / mult;
 	safe_unpack32(&temp, buffer);
-	sacct->min_cpu = temp;
+	sacct->min_cpu = temp / mult;
 	safe_unpack32(&temp, buffer);
-	sacct->ave_cpu = temp;
+	sacct->ave_cpu = temp / mult;
 	if(_unpack_jobacct_id(&sacct->max_vsize_id, buffer) != SLURM_SUCCESS)
 		goto unpack_error;
 	if(_unpack_jobacct_id(&sacct->max_rss_id, buffer) != SLURM_SUCCESS)
diff --git a/src/plugins/accounting_storage/mysql/mysql_jobacct_process.c b/src/plugins/accounting_storage/mysql/mysql_jobacct_process.c
index d084d00f7f0..426c30ef180 100644
--- a/src/plugins/accounting_storage/mysql/mysql_jobacct_process.c
+++ b/src/plugins/accounting_storage/mysql/mysql_jobacct_process.c
@@ -405,17 +405,17 @@ extern List mysql_jobacct_process_get_jobs(mysql_conn_t *mysql_conn,
 				step->tot_cpu_usec += 
 				step->user_cpu_usec + step->sys_cpu_usec;
 			step->sacct.max_vsize =
-				atoi(step_row[STEP_REQ_MAX_VSIZE]) * 1024;
+				atoi(step_row[STEP_REQ_MAX_VSIZE]);
 			step->sacct.max_vsize_id.taskid = 
 				atoi(step_row[STEP_REQ_MAX_VSIZE_TASK]);
 			step->sacct.ave_vsize = 
-				atof(step_row[STEP_REQ_AVE_VSIZE]) * 1024;
+				atof(step_row[STEP_REQ_AVE_VSIZE]);
 			step->sacct.max_rss =
-				atoi(step_row[STEP_REQ_MAX_RSS]) * 1024;
+				atoi(step_row[STEP_REQ_MAX_RSS]);
 			step->sacct.max_rss_id.taskid = 
 				atoi(step_row[STEP_REQ_MAX_RSS_TASK]);
 			step->sacct.ave_rss = 
-				atof(step_row[STEP_REQ_AVE_RSS]) * 1024;
+				atof(step_row[STEP_REQ_AVE_RSS]);
 			step->sacct.max_pages =
 				atoi(step_row[STEP_REQ_MAX_PAGES]);
 			step->sacct.max_pages_id.taskid = 
diff --git a/src/sacct/options.c b/src/sacct/options.c
index c1f56487f46..76d8f8c60a3 100644
--- a/src/sacct/options.c
+++ b/src/sacct/options.c
@@ -307,6 +307,11 @@ int get_data(void)
 			/* now aggregate the aggregatable */
 			job->alloc_cpus = MAX(job->alloc_cpus, step->ncpus);
 
+			step->sacct.ave_rss *= 1024;
+			step->sacct.max_rss *= 1024;
+			step->sacct.ave_vsize *= 1024;
+			step->sacct.max_vsize *= 1024;
+
 			if(step->state < JOB_COMPLETE)
 				continue;
 			job->tot_cpu_sec += step->tot_cpu_sec;
-- 
GitLab