View | Details | Raw Unified | Return to ticket 1748
Collapse All | Expand All

(-)a/src/common/slurm_jobacct_gather.c (-3 / +3 lines)
Lines 872-881 extern void jobacctinfo_pack(jobacctinfo_t *jobacct, Link Here
872
               pack64(jobacct->max_pages, buffer);
872
               pack64(jobacct->max_pages, buffer);
873
               pack64(jobacct->tot_pages, buffer);
873
               pack64(jobacct->tot_pages, buffer);
874
               pack32((uint32_t)jobacct->min_cpu, buffer);
874
               pack32((uint32_t)jobacct->min_cpu, buffer);
875
               pack32((uint32_t)jobacct->tot_cpu, buffer);
875
               pack32((uint32_t)jobacct->act_cpufreq, buffer);
876
               pack32((uint32_t)jobacct->act_cpufreq, buffer);
876
               pack64((uint64_t)jobacct->energy.consumed_energy, buffer);
877
               pack64((uint64_t)jobacct->energy.consumed_energy, buffer);
877
               packdouble((double)jobacct->tot_cpu, buffer);
878
               packdouble((double)jobacct->max_disk_read, buffer);
878
               packdouble((double)jobacct->max_disk_read, buffer);
879
               packdouble((double)jobacct->tot_disk_read, buffer);
879
               packdouble((double)jobacct->tot_disk_read, buffer);
880
               packdouble((double)jobacct->max_disk_write, buffer);
880
               packdouble((double)jobacct->max_disk_write, buffer);
Lines 960-969 extern int jobacctinfo_unpack(jobacctinfo_t **jobacct, Link Here
960
               safe_unpack64(&(*jobacct)->max_pages, buffer);
960
               safe_unpack64(&(*jobacct)->max_pages, buffer);
961
               safe_unpack64(&(*jobacct)->tot_pages, buffer);
961
               safe_unpack64(&(*jobacct)->tot_pages, buffer);
962
               safe_unpack32(&(*jobacct)->min_cpu, buffer);
962
               safe_unpack32(&(*jobacct)->min_cpu, buffer);
963
               safe_unpack32(&(*jobacct)->tot_cpu, buffer);
963
               safe_unpack32(&(*jobacct)->act_cpufreq, buffer);
964
               safe_unpack32(&(*jobacct)->act_cpufreq, buffer);
964
               safe_unpack64(&(*jobacct)->energy.consumed_energy, buffer);
965
               safe_unpack64(&(*jobacct)->energy.consumed_energy, buffer);
965
               safe_unpackdouble(&(*jobacct)->tot_cpu, buffer);
966
               safe_unpackdouble(&(*jobacct)->max_disk_read, buffer);
966
               safe_unpackdouble(&(*jobacct)->max_disk_read, buffer);
967
               safe_unpackdouble(&(*jobacct)->tot_disk_read, buffer);
967
               safe_unpackdouble(&(*jobacct)->tot_disk_read, buffer);
968
               safe_unpackdouble(&(*jobacct)->max_disk_write, buffer);
968
               safe_unpackdouble(&(*jobacct)->max_disk_write, buffer);
Lines 1008-1014 extern int jobacctinfo_unpack(jobacctinfo_t **jobacct, Link Here
1008
               safe_unpack64(&(*jobacct)->max_pages, buffer);
1008
               safe_unpack64(&(*jobacct)->max_pages, buffer);
1009
               safe_unpack64(&(*jobacct)->tot_pages, buffer);
1009
               safe_unpack64(&(*jobacct)->tot_pages, buffer);
1010
               safe_unpack32(&(*jobacct)->min_cpu, buffer);
1010
               safe_unpack32(&(*jobacct)->min_cpu, buffer);
1011
               safe_unpackdouble(&(*jobacct)->tot_cpu, buffer);
1011
               safe_unpack32(&(*jobacct)->tot_cpu, buffer);
1012
               safe_unpack32(&(*jobacct)->act_cpufreq, buffer);
1012
               safe_unpack32(&(*jobacct)->act_cpufreq, buffer);
1013
               safe_unpack32(&uint32_tmp, buffer);
1013
               safe_unpack32(&uint32_tmp, buffer);
1014
               (*jobacct)->energy.consumed_energy = (uint64_t) uint32_tmp;
1014
               (*jobacct)->energy.consumed_energy = (uint64_t) uint32_tmp;
(-)a/src/common/slurm_jobacct_gather.h (-3 / +3 lines)
Lines 115-125 struct jobacctinfo { Link Here
115
                            (used to figure out ave later) */
115
                            (used to figure out ave later) */
116
       uint32_t min_cpu; /* min cpu time */
116
       uint32_t min_cpu; /* min cpu time */
117
       jobacct_id_t min_cpu_id; /* contains which task it was on */
117
       jobacct_id_t min_cpu_id; /* contains which task it was on */
118
       double tot_cpu; /* total cpu time(used to figure out ave later) */
118
       uint32_t tot_cpu; /* total cpu time(used to figure out ave later) */
119
       uint32_t act_cpufreq; /* actual cpu frequency */
119
       uint32_t act_cpufreq; /* actual cpu frequency */
120
       acct_gather_energy_t energy;
120
       acct_gather_energy_t energy;
121
       double last_total_cputime;
121
       uint32_t last_total_cputime;
122
       double this_sampled_cputime;
122
       uint32_t this_sampled_cputime;
123
       uint32_t current_weighted_freq;
123
       uint32_t current_weighted_freq;
124
       uint32_t current_weighted_power;
124
       uint32_t current_weighted_power;
125
       double max_disk_read; /* max disk read data */
125
       double max_disk_read; /* max disk read data */
(-)a/src/plugins/jobacct_gather/common/common_jag.c (-9 / +9 lines)
Lines 658-664 static void _record_profile(struct jobacctinfo *jobacct) Link Here
658
       acct_gather_profile_dataset_t dataset[] = {
658
       acct_gather_profile_dataset_t dataset[] = {
659
               { "CPUFrequency", PROFILE_FIELD_UINT64 },
659
               { "CPUFrequency", PROFILE_FIELD_UINT64 },
660
               { "CPUTime", PROFILE_FIELD_DOUBLE },
660
               { "CPUTime", PROFILE_FIELD_UINT64 },
661
               { "CPUUtilization", PROFILE_FIELD_DOUBLE },
661
               { "CPUUtilization", PROFILE_FIELD_DOUBLE },
662
               { "RSS", PROFILE_FIELD_UINT64 },
662
               { "RSS", PROFILE_FIELD_UINT64 },
663
               { "VMSize", PROFILE_FIELD_UINT64 },
663
               { "VMSize", PROFILE_FIELD_UINT64 },
Lines 703-721 static void _record_profile(struct jobacctinfo *jobacct) Link Here
703
       /* delta from last snapshot */
703
       /* delta from last snapshot */
704
       if (!jobacct->last_time) {
704
       if (!jobacct->last_time) {
705
               data[FIELD_CPUTIME].d = 0.0;
705
               data[FIELD_CPUTIME].u64 = 0;
706
               data[FIELD_CPUUTIL].d = 0.0;
706
               data[FIELD_CPUUTIL].d = 0.0;
707
               data[FIELD_READ].d = 0.0;
707
               data[FIELD_READ].d = 0.0;
708
               data[FIELD_WRITE].d = 0.0;
708
               data[FIELD_WRITE].d = 0.0;
709
       } else {
709
       } else {
710
               data[FIELD_CPUTIME].d =
710
               data[FIELD_CPUTIME].u64 =
711
                       jobacct->tot_cpu - jobacct->last_total_cputime;
711
                       jobacct->tot_cpu - jobacct->last_total_cputime;
712
               et = (jobacct->cur_time - jobacct->last_time);
712
               et = (jobacct->cur_time - jobacct->last_time);
713
               if (!et)
713
               if (!et)
714
                       data[FIELD_CPUUTIL].d = 0.0;
714
                       data[FIELD_CPUUTIL].d = 0.0;
715
               else
715
               else
716
                       data[FIELD_CPUUTIL].d =
716
                       data[FIELD_CPUUTIL].d =
717
                               (100.0 * (double)data[FIELD_CPUTIME].d) /
717
                               (100.0 * (double)data[FIELD_CPUTIME].u64) /
718
                               ((double) et);
718
                               ((double) et);
719
               data[FIELD_READ].d = jobacct->tot_disk_read -
719
               data[FIELD_READ].d = jobacct->tot_disk_read -
Lines 838-845 extern void jag_common_poll_data( Link Here
838
       itr = list_iterator_create(task_list);
838
       itr = list_iterator_create(task_list);
839
       while ((jobacct = list_next(itr))) {
839
       while ((jobacct = list_next(itr))) {
840
               double cpu_calc;
840
               uint32_t cpu_calc;
841
               double last_total_cputime;
841
               uint32_t last_total_cputime;
842
               if (!(prec = list_find_first(prec_list, _find_prec, jobacct)))
842
               if (!(prec = list_find_first(prec_list, _find_prec, jobacct)))
843
                       continue;
843
                       continue;
Lines 854-860 extern void jag_common_poll_data( Link Here
854
               last_total_cputime = jobacct->tot_cpu;
854
               last_total_cputime = jobacct->tot_cpu;
855
               cpu_calc = (double)(prec->ssec + prec->usec)/hertz;
855
               cpu_calc = (prec->ssec + prec->usec)/hertz;
856
               /* tally their usage */
856
               /* tally their usage */
857
               jobacct->max_rss =
857
               jobacct->max_rss =
858
                       MAX(jobacct->max_rss, prec->rss);
858
                       MAX(jobacct->max_rss, prec->rss);
Lines 885-891 extern void jag_common_poll_data( Link Here
885
               jobacct->user_cpu_sec = prec->usec/hertz;
885
               jobacct->user_cpu_sec = prec->usec/hertz;
886
               jobacct->sys_cpu_sec = prec->ssec/hertz;
886
               jobacct->sys_cpu_sec = prec->ssec/hertz;
887
               debug2("%s: %d mem size %"PRIu64" %"PRIu64" "
887
               debug2("%s: %d mem size %"PRIu64" %"PRIu64" "
888
                      "time %f(%u+%u)", __func__,
888
                      "time %u(%u+%u)", __func__,
889
                      jobacct->pid, jobacct->max_rss,
889
                      jobacct->pid, jobacct->max_rss,
890
                      jobacct->max_vsize, jobacct->tot_cpu,
890
                      jobacct->max_vsize, jobacct->tot_cpu,
891
                      jobacct->user_cpu_sec,
891
                      jobacct->user_cpu_sec,
Lines 900-906 extern void jag_common_poll_data( Link Here
900
                       _update_weighted_freq(jobacct, sbuf);
900
                       _update_weighted_freq(jobacct, sbuf);
901
               debug("%s: Task average frequency = %u "
901
               debug("%s: Task average frequency = %u "
902
                      "pid %d mem size %"PRIu64" %"PRIu64" "
902
                      "pid %d mem size %"PRIu64" %"PRIu64" "
903
                      "time %f(%u+%u)", __func__,
903
                      "time %u(%u+%u)", __func__,
904
                      jobacct->act_cpufreq,
904
                      jobacct->act_cpufreq,
905
                      jobacct->pid, jobacct->max_rss,
905
                      jobacct->pid, jobacct->max_rss,
906
                      jobacct->max_vsize, jobacct->tot_cpu,
906
                      jobacct->max_vsize, jobacct->tot_cpu,

Return to ticket 1748