1d0
<
30,35d28
< /*
< * $Id$
< *
< */
<
< #include "mem/ruby/profiler/StoreTrace.hh"
36a30
> #include "mem/ruby/profiler/StoreTrace.hh"
38,39c32,35
< bool StoreTrace::s_init = false; // Total number of store lifetimes of all lines
< int64 StoreTrace::s_total_samples = 0; // Total number of store lifetimes of all lines
---
> bool StoreTrace::s_init = false; // Total number of store lifetimes of
> // all lines
> int64 StoreTrace::s_total_samples = 0; // Total number of store
> // lifetimes of all lines
45,46c41,43
< StoreTrace::StoreTrace(const Address& addr) :
< m_store_count(-1), m_store_first_to_stolen(-1), m_store_last_to_stolen(-1), m_store_first_to_last(-1)
---
> StoreTrace::StoreTrace(const Address& addr)
> : m_store_count(-1), m_store_first_to_stolen(-1),
> m_store_last_to_stolen(-1), m_store_first_to_last(-1)
48,52c45,51
< StoreTrace::initSummary();
< m_addr = addr;
< m_total_samples = 0;
< m_last_writer = -1; // Really -1 isn't valid, so this will trigger the initilization code
< m_stores_this_interval = 0;
---
> StoreTrace::initSummary();
> m_addr = addr;
> m_total_samples = 0;
>
> // Really -1 isn't valid, so this will trigger the initilization code
> m_last_writer = -1;
> m_stores_this_interval = 0;
59c58,59
< void StoreTrace::print(ostream& out) const
---
> void
> StoreTrace::print(ostream& out) const
61,66c61,66
< out << m_addr;
< out << " total_samples: " << m_total_samples << endl;
< out << "store_count: " << m_store_count << endl;
< out << "store_first_to_stolen: " << m_store_first_to_stolen << endl;
< out << "store_last_to_stolen: " << m_store_last_to_stolen << endl;
< out << "store_first_to_last: " << m_store_first_to_last << endl;
---
> out << m_addr
> << " total_samples: " << m_total_samples << endl
> << "store_count: " << m_store_count << endl
> << "store_first_to_stolen: " << m_store_first_to_stolen << endl
> << "store_last_to_stolen: " << m_store_last_to_stolen << endl
> << "store_first_to_last: " << m_store_first_to_last << endl;
69,70c69,70
< // Class method
< void StoreTrace::initSummary()
---
> void
> StoreTrace::initSummary()
72,79c72,79
< if (!s_init) {
< s_total_samples = 0;
< s_store_count_ptr = new Histogram(-1);
< s_store_first_to_stolen_ptr = new Histogram(-1);
< s_store_last_to_stolen_ptr = new Histogram(-1);
< s_store_first_to_last_ptr = new Histogram(-1);
< }
< s_init = true;
---
> if (!s_init) {
> s_total_samples = 0;
> s_store_count_ptr = new Histogram(-1);
> s_store_first_to_stolen_ptr = new Histogram(-1);
> s_store_last_to_stolen_ptr = new Histogram(-1);
> s_store_first_to_last_ptr = new Histogram(-1);
> }
> s_init = true;
82,83c82,83
< // Class method
< void StoreTrace::printSummary(ostream& out)
---
> void
> StoreTrace::printSummary(ostream& out)
85,89c85,89
< out << "total_samples: " << s_total_samples << endl;
< out << "store_count: " << (*s_store_count_ptr) << endl;
< out << "store_first_to_stolen: " << (*s_store_first_to_stolen_ptr) << endl;
< out << "store_last_to_stolen: " << (*s_store_last_to_stolen_ptr) << endl;
< out << "store_first_to_last: " << (*s_store_first_to_last_ptr) << endl;
---
> out << "total_samples: " << s_total_samples << endl;
> out << "store_count: " << (*s_store_count_ptr) << endl;
> out << "store_first_to_stolen: " << (*s_store_first_to_stolen_ptr) << endl;
> out << "store_last_to_stolen: " << (*s_store_last_to_stolen_ptr) << endl;
> out << "store_first_to_last: " << (*s_store_first_to_last_ptr) << endl;
92,93c92,93
< // Class method
< void StoreTrace::clearSummary()
---
> void
> StoreTrace::clearSummary()
95,100c95,100
< StoreTrace::initSummary();
< s_total_samples = 0;
< s_store_count_ptr->clear();
< s_store_first_to_stolen_ptr->clear();
< s_store_last_to_stolen_ptr->clear();
< s_store_first_to_last_ptr->clear();
---
> StoreTrace::initSummary();
> s_total_samples = 0;
> s_store_count_ptr->clear();
> s_store_first_to_stolen_ptr->clear();
> s_store_last_to_stolen_ptr->clear();
> s_store_first_to_last_ptr->clear();
103c103,104
< void StoreTrace::store(NodeID node)
---
> void
> StoreTrace::store(NodeID node)
105c106
< Time current = g_eventQueue_ptr->getTime();
---
> Time current = g_eventQueue_ptr->getTime();
107c108
< assert((m_last_writer == -1) || (m_last_writer == node));
---
> assert((m_last_writer == -1) || (m_last_writer == node));
109,112c110,113
< m_last_writer = node;
< if (m_last_writer == -1) {
< assert(m_stores_this_interval == 0);
< }
---
> m_last_writer = node;
> if (m_last_writer == -1) {
> assert(m_stores_this_interval == 0);
> }
114,117c115,118
< if (m_stores_this_interval == 0) {
< // A new proessor just wrote the line, so reset the stats
< m_first_store = current;
< }
---
> if (m_stores_this_interval == 0) {
> // A new proessor just wrote the line, so reset the stats
> m_first_store = current;
> }
119,120c120,121
< m_last_store = current;
< m_stores_this_interval++;
---
> m_last_store = current;
> m_stores_this_interval++;
123c124,125
< void StoreTrace::downgrade(NodeID node)
---
> void
> StoreTrace::downgrade(NodeID node)
125,130c127,132
< if (node == m_last_writer) {
< Time current = g_eventQueue_ptr->getTime();
< assert(m_stores_this_interval != 0);
< assert(m_last_store != 0);
< assert(m_first_store != 0);
< assert(m_last_writer != -1);
---
> if (node == m_last_writer) {
> Time current = g_eventQueue_ptr->getTime();
> assert(m_stores_this_interval != 0);
> assert(m_last_store != 0);
> assert(m_first_store != 0);
> assert(m_last_writer != -1);
132,137c134,139
< // Per line stats
< m_store_first_to_stolen.add(current - m_first_store);
< m_store_count.add(m_stores_this_interval);
< m_store_last_to_stolen.add(current - m_last_store);
< m_store_first_to_last.add(m_last_store - m_first_store);
< m_total_samples++;
---
> // Per line stats
> m_store_first_to_stolen.add(current - m_first_store);
> m_store_count.add(m_stores_this_interval);
> m_store_last_to_stolen.add(current - m_last_store);
> m_store_first_to_last.add(m_last_store - m_first_store);
> m_total_samples++;
139,145c141,147
< // Global stats
< assert(s_store_first_to_stolen_ptr != NULL);
< s_store_first_to_stolen_ptr->add(current - m_first_store);
< s_store_count_ptr->add(m_stores_this_interval);
< s_store_last_to_stolen_ptr->add(current - m_last_store);
< s_store_first_to_last_ptr->add(m_last_store - m_first_store);
< s_total_samples++;
---
> // Global stats
> assert(s_store_first_to_stolen_ptr != NULL);
> s_store_first_to_stolen_ptr->add(current - m_first_store);
> s_store_count_ptr->add(m_stores_this_interval);
> s_store_last_to_stolen_ptr->add(current - m_last_store);
> s_store_first_to_last_ptr->add(m_last_store - m_first_store);
> s_total_samples++;
147,152c149,154
< // Initilize for next go round
< m_stores_this_interval = 0;
< m_last_store = 0;
< m_first_store = 0;
< m_last_writer = -1;
< }
---
> // Initilize for next go round
> m_stores_this_interval = 0;
> m_last_store = 0;
> m_first_store = 0;
> m_last_writer = -1;
> }
154,158d155
<
< bool node_less_then_eq(const StoreTrace* n1, const StoreTrace* n2)
< {
< return (n1->getTotal() > n2->getTotal());
< }