diff options
author | Tony Gutierrez <anthony.gutierrez@amd.com> | 2017-01-19 11:59:34 -0500 |
---|---|---|
committer | Tony Gutierrez <anthony.gutierrez@amd.com> | 2017-01-19 11:59:34 -0500 |
commit | 1961a942f395d0b880461106a09761b92e2d53f6 (patch) | |
tree | bc70ed383e9f04cc28d3742eaeab6091d0b45929 | |
parent | 42044645b9e3a60bd77a84de6c356033d6133004 (diff) | |
download | gem5-1961a942f395d0b880461106a09761b92e2d53f6.tar.xz |
ruby: guard usage of GPUCoalescer code in Profiler
the GPUCoalescer code is used in the ruby profiler regardless of
whether or not the coalescer code has been compiled, which can
lead to link/run time errors. here we add #ifdefs to guard the
usage of GPUCoalescer code. eventually we should refactor this
code to use probe points.
-rwxr-xr-x | SConstruct | 3 | ||||
-rw-r--r-- | src/mem/ruby/profiler/Profiler.cc | 22 |
2 files changed, 24 insertions, 1 deletions
diff --git a/SConstruct b/SConstruct index f8eac47e6..8a72419b4 100755 --- a/SConstruct +++ b/SConstruct @@ -1502,6 +1502,9 @@ for variant_path in variant_paths: "target ISA combination" env['USE_KVM'] = False + if env['BUILD_GPU']: + env.Append(CPPDEFINES=['BUILD_GPU']) + # Warn about missing optional functionality if env['USE_KVM']: if not main['HAVE_PERF_ATTR_EXCLUDE_HOST']: diff --git a/src/mem/ruby/profiler/Profiler.cc b/src/mem/ruby/profiler/Profiler.cc index 04e8331c4..900714e5d 100644 --- a/src/mem/ruby/profiler/Profiler.cc +++ b/src/mem/ruby/profiler/Profiler.cc @@ -56,7 +56,24 @@ #include "mem/protocol/RubyRequest.hh" #include "mem/ruby/network/Network.hh" #include "mem/ruby/profiler/AddressProfiler.hh" + +/** + * the profiler uses GPUCoalescer code even + * though the GPUCoalescer is not built for + * all ISAs, which can lead to run/link time + * errors. here we guard the coalescer code + * with ifdefs as there is no easy way to + * refactor this code without removing + * GPUCoalescer stats from the profiler. + * + * eventually we should use probe points + * here, but until then these ifdefs will + * serve. + */ +#ifdef BUILD_GPU #include "mem/ruby/system/GPUCoalescer.hh" +#endif + #include "mem/ruby/system/Sequencer.hh" using namespace std; @@ -361,10 +378,12 @@ Profiler::collateStats() if (seq != NULL) { m_outstandReqHistSeqr.add(seq->getOutstandReqHist()); } +#ifdef BUILD_GPU GPUCoalescer *coal = ctr->getGPUCoalescer(); if (coal != NULL) { m_outstandReqHistCoalsr.add(coal->getOutstandReqHist()); } +#endif } } @@ -423,7 +442,7 @@ Profiler::collateStats() } } } - +#ifdef BUILD_GPU GPUCoalescer *coal = ctr->getGPUCoalescer(); if (coal != NULL) { // add all the latencies @@ -464,6 +483,7 @@ Profiler::collateStats() } } } +#endif } } } |