changeset cdd51a15e9be in /z/repo/gem5
details: http://repo.gem5.org/gem5?cmd=changeset;node=cdd51a15e9be
description:
        ruby: eliminate non-determinism from ruby.stats output

        Get rid of non-deterministic "stats" in ruby.stats output
        such as time & date of run, elapsed & CPU time used,
        and memory usage.  These values cause spurious
        miscomparisons when looking at output diffs (though
        they don't affect regressions, since the regressions
        pass/fail status currently ignores ruby.stats entirely).

        Most of this information is already captured in other
        places (time & date in stdout, elapsed time & mem usage
        in stats.txt), where the regression script is smart
        enough to filter it out.  It seems easier to get rid of
        the redundant output rather than teaching the
        regression tester to ignore the same information in
        two different places.

diffstat:

 src/mem/ruby/profiler/Profiler.cc |  71 ---------------------------------------
 src/mem/ruby/system/System.cc     |   6 ---
 2 files changed, 0 insertions(+), 77 deletions(-)

diffs (126 lines):

diff -r 4eec8250c38d -r cdd51a15e9be src/mem/ruby/profiler/Profiler.cc
--- a/src/mem/ruby/profiler/Profiler.cc Tue Oct 15 18:22:41 2013 -0400
+++ b/src/mem/ruby/profiler/Profiler.cc Tue Oct 15 18:22:49 2013 -0400
@@ -42,9 +42,6 @@
    ----------------------------------------------------------------------
 */
 
-// Allows use of times() library call, which determines virtual runtime
-#include <sys/resource.h>
-#include <sys/times.h>
 #include <sys/types.h>
 #include <unistd.h>
 
@@ -64,9 +61,6 @@
 using namespace std;
 using m5::stl_helpers::operator<<;
 
-static double process_memory_total();
-static double process_memory_resident();
-
 Profiler::Profiler(const Params *p)
     : SimObject(p)
 {
@@ -385,50 +379,14 @@
     out << "Profiler Stats" << endl;
     out << "--------------" << endl;
 
-    time_t real_time_current = time(NULL);
-    double seconds = difftime(real_time_current, m_real_time_start_time);
-    double minutes = seconds / 60.0;
-    double hours = minutes / 60.0;
-    double days = hours / 24.0;
     Cycles ruby_cycles = g_system_ptr->curCycle()-m_ruby_start;
 
-    if (!short_stats) {
-        out << "Elapsed_time_in_seconds: " << seconds << endl;
-        out << "Elapsed_time_in_minutes: " << minutes << endl;
-        out << "Elapsed_time_in_hours: " << hours << endl;
-        out << "Elapsed_time_in_days: " << days << endl;
-        out << endl;
-    }
-
-    // print the virtual runtimes as well
-    struct tms vtime;
-    times(&vtime);
-    seconds = (vtime.tms_utime + vtime.tms_stime) / 100.0;
-    minutes = seconds / 60.0;
-    hours = minutes / 60.0;
-    days = hours / 24.0;
-    out << "Virtual_time_in_seconds: " << seconds << endl;
-    out << "Virtual_time_in_minutes: " << minutes << endl;
-    out << "Virtual_time_in_hours:   " << hours << endl;
-    out << "Virtual_time_in_days:    " << days << endl;
-    out << endl;
-
     out << "Ruby_current_time: " << g_system_ptr->curCycle() << endl;
     out << "Ruby_start_time: " << m_ruby_start << endl;
     out << "Ruby_cycles: " << ruby_cycles << endl;
     out << endl;
 
     if (!short_stats) {
-        out << "mbytes_resident: " << process_memory_resident() << endl;
-        out << "mbytes_total: " << process_memory_total() << endl;
-        if (process_memory_total() > 0) {
-            out << "resident_ratio: "
-                << process_memory_resident()/process_memory_total() << endl;
-        }
-        out << endl;
-    }
-
-    if (!short_stats) {
         out << "Busy Controller Counts:" << endl;
         for (uint32_t i = 0; i < MachineType_NUM; i++) {
             uint32_t size = MachineType_base_count((MachineType)i);
@@ -571,35 +529,6 @@
     m_busyBankCount++;
 }
 
-// Helper function
-static double
-process_memory_total()
-{
-    // 4kB page size, 1024*1024 bytes per MB,
-    const double MULTIPLIER = 4096.0 / (1024.0 * 1024.0);
-    ifstream proc_file;
-    proc_file.open("/proc/self/statm");
-    int total_size_in_pages = 0;
-    int res_size_in_pages = 0;
-    proc_file >> total_size_in_pages;
-    proc_file >> res_size_in_pages;
-    return double(total_size_in_pages) * MULTIPLIER; // size in megabytes
-}
-
-static double
-process_memory_resident()
-{
-    // 4kB page size, 1024*1024 bytes per MB,
-    const double MULTIPLIER = 4096.0 / (1024.0 * 1024.0);
-    ifstream proc_file;
-    proc_file.open("/proc/self/statm");
-    int total_size_in_pages = 0;
-    int res_size_in_pages = 0;
-    proc_file >> total_size_in_pages;
-    proc_file >> res_size_in_pages;
-    return double(res_size_in_pages) * MULTIPLIER; // size in megabytes
-}
-
 void
 Profiler::rubyWatch(int id)
 {
diff -r 4eec8250c38d -r cdd51a15e9be src/mem/ruby/system/System.cc
--- a/src/mem/ruby/system/System.cc     Tue Oct 15 18:22:41 2013 -0400
+++ b/src/mem/ruby/system/System.cc     Tue Oct 15 18:22:49 2013 -0400
@@ -136,12 +136,6 @@
 void
 RubySystem::printStats(ostream& out)
 {
-    const time_t T = time(NULL);
-    tm *localTime = localtime(&T);
-    char buf[100];
-    strftime(buf, 100, "%b/%d/%Y %H:%M:%S", localTime);
-    out << "Real time: " << buf << endl;
-
     m_profiler_ptr->printStats(out);
 }
 
_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev

Reply via email to