Profiler.hh (9497:2759161b9d7f) Profiler.hh (9507:d2ab6d889fc7)
1/*
2 * Copyright (c) 1999-2008 Mark D. Hill and David A. Wood
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are
7 * met: redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer;

--- 111 unchanged lines hidden (view full) ---

120 {
121 m_average_latency_estimate.add(latency);
122 }
123
124 void recordPrediction(bool wasGood, bool wasPredicted);
125
126 void startTransaction(int cpu);
127 void endTransaction(int cpu);
1/*
2 * Copyright (c) 1999-2008 Mark D. Hill and David A. Wood
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are
7 * met: redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer;

--- 111 unchanged lines hidden (view full) ---

120 {
121 m_average_latency_estimate.add(latency);
122 }
123
124 void recordPrediction(bool wasGood, bool wasPredicted);
125
126 void startTransaction(int cpu);
127 void endTransaction(int cpu);
128 void profilePFWait(Time waitTime);
128 void profilePFWait(Cycles waitTime);
129
130 void controllerBusy(MachineID machID);
131 void bankBusy();
132
129
130 void controllerBusy(MachineID machID);
131 void bankBusy();
132
133 void missLatency(Time t,
134 RubyRequestType type,
133 void missLatency(Cycles t, RubyRequestType type,
135 const GenericMachineType respondingMach);
136
134 const GenericMachineType respondingMach);
135
137 void missLatencyWcc(Time issuedTime,
138 Time initialRequestTime,
139 Time forwardRequestTime,
140 Time firstResponseTime,
141 Time completionTime);
136 void missLatencyWcc(Cycles issuedTime, Cycles initialRequestTime,
137 Cycles forwardRequestTime, Cycles firstResponseTime,
138 Cycles completionTime);
142
139
143 void missLatencyDir(Time issuedTime,
144 Time initialRequestTime,
145 Time forwardRequestTime,
146 Time firstResponseTime,
147 Time completionTime);
140 void missLatencyDir(Cycles issuedTime, Cycles initialRequestTime,
141 Cycles forwardRequestTime, Cycles firstResponseTime,
142 Cycles completionTime);
148
143
149 void swPrefetchLatency(Time t,
150 RubyRequestType type,
144 void swPrefetchLatency(Cycles t, RubyRequestType type,
151 const GenericMachineType respondingMach);
152
153 void sequencerRequests(int num) { m_sequencer_requests.add(num); }
154
155 void print(std::ostream& out) const;
156
157 void rubyWatch(int proc);
158 bool watchAddress(Address addr);
159
160 // return Ruby's start time
145 const GenericMachineType respondingMach);
146
147 void sequencerRequests(int num) { m_sequencer_requests.add(num); }
148
149 void print(std::ostream& out) const;
150
151 void rubyWatch(int proc);
152 bool watchAddress(Address addr);
153
154 // return Ruby's start time
161 Time
162 getRubyStartTime()
163 {
164 return m_ruby_start;
165 }
155 Cycles getRubyStartTime() { return m_ruby_start; }
166
167 // added by SS
168 bool getHotLines() { return m_hot_lines; }
169 bool getAllInstructions() { return m_all_instructions; }
170
171 private:
172 void printRequestProfile(std::ostream &out);
173 void printDelayProfile(std::ostream &out);

--- 7 unchanged lines hidden (view full) ---

181 AddressProfiler* m_inst_profiler_ptr;
182
183 std::vector<int64> m_instructions_executed_at_start;
184 std::vector<int64> m_cycles_executed_at_start;
185
186 std::ostream* m_periodic_output_file_ptr;
187 int64_t m_stats_period;
188
156
157 // added by SS
158 bool getHotLines() { return m_hot_lines; }
159 bool getAllInstructions() { return m_all_instructions; }
160
161 private:
162 void printRequestProfile(std::ostream &out);
163 void printDelayProfile(std::ostream &out);

--- 7 unchanged lines hidden (view full) ---

171 AddressProfiler* m_inst_profiler_ptr;
172
173 std::vector<int64> m_instructions_executed_at_start;
174 std::vector<int64> m_cycles_executed_at_start;
175
176 std::ostream* m_periodic_output_file_ptr;
177 int64_t m_stats_period;
178
189 Time m_ruby_start;
179 Cycles m_ruby_start;
190 time_t m_real_time_start_time;
191
192 int64_t m_busyBankCount;
193 Histogram m_multicast_retry_histogram;
194
195 Histogram m_filter_action_histogram;
196 Histogram m_tbeProfile;
197

--- 67 unchanged lines hidden ---
180 time_t m_real_time_start_time;
181
182 int64_t m_busyBankCount;
183 Histogram m_multicast_retry_histogram;
184
185 Histogram m_filter_action_histogram;
186 Histogram m_tbeProfile;
187

--- 67 unchanged lines hidden ---