|
gem5 [DEVELOP-FOR-25.0]
|
State of a counter within the PMU. More...
#include <pmu.hh>
Public Member Functions | |
| CounterState (PMU &pmuReference, uint64_t counter_id, const bool is_64_bit) | |
| void | serialize (CheckpointOut &cp) const override |
| Serialize an object. | |
| void | unserialize (CheckpointIn &cp) override |
| Unserialize an object. | |
| uint64_t | add (uint64_t delta) |
| Add an event count to the counter and check for overflow. | |
| bool | isFiltered () const |
| void | detach () |
| Detach the counter from its event. | |
| void | attach (const std::shared_ptr< PMUEvent > &event) |
| Attach this counter to an event. | |
| uint64_t | getCounterId () const |
| Obtain the counter id. | |
| uint64_t | getValue () const |
| rReturn the counter value | |
| void | setValue (uint64_t val) |
| overwrite the value of the counter | |
Public Member Functions inherited from gem5::Serializable | |
| Serializable () | |
| virtual | ~Serializable () |
| void | serializeSection (CheckpointOut &cp, const char *name) const |
| Serialize an object into a new section. | |
| void | serializeSection (CheckpointOut &cp, const std::string &name) const |
| void | unserializeSection (CheckpointIn &cp, const char *name) |
| Unserialize an a child object. | |
| void | unserializeSection (CheckpointIn &cp, const std::string &name) |
Public Attributes | |
| EventTypeId | eventId |
| Counter event ID. | |
| PMEVTYPER_t | filter |
| Filtering settings (evtCount is unused) | |
| bool | enabled |
| Is the counter enabled? | |
| bool | overflow64 |
| Is this a 64-bit counter? | |
Protected Member Functions | |
| template<typename ... Args> | |
| void | debugCounter (const char *mainString, Args &...args) const |
Protected Attributes | |
| std::shared_ptr< PMUEvent > | sourceEvent |
| PmuEvent currently in use (if any) | |
| uint64_t | counterId |
| id of the counter instance | |
| uint64_t | value |
| Current value of the counter. | |
| bool | resetValue |
| Flag keeping track if the counter has been reset. | |
| PMU & | pmu |
Additional Inherited Members | |
Static Public Member Functions inherited from gem5::Serializable | |
| static const std::string & | currentSection () |
| Gets the fully-qualified name of the active section. | |
| static void | generateCheckpointOut (const std::string &cpt_dir, std::ofstream &outstream) |
| Generate a checkpoint file so that the serialization can be routed to it. | |
|
inline |
Definition at line 433 of file pmu.hh.
References counterId, enabled, eventId, filter, overflow64, gem5::ArmISA::PMU::PMU(), pmu, resetValue, sourceEvent, and value.
| uint64_t gem5::ArmISA::PMU::CounterState::add | ( | uint64_t | delta | ) |
Add an event count to the counter and check for overflow.
| delta | Number of events to add to the counter. |
Definition at line 805 of file pmu.cc.
References counterId, gem5::ArmISA::PMU::isFiltered(), overflow64, pmu, resetValue, and value.
| void gem5::ArmISA::PMU::CounterState::attach | ( | const std::shared_ptr< PMUEvent > & | event | ) |
Attach this counter to an event.
| the | event to attach the counter to |
Definition at line 565 of file pmu.cc.
References gem5::MipsISA::event, resetValue, sourceEvent, and value.
Referenced by gem5::ArmISA::PMU::updateCounter().
|
inlineprotected |
Definition at line 517 of file pmu.hh.
References counterId, gem5::csprintf(), eventId, sourceEvent, and warn.
Referenced by getValue(), and setValue().
| void gem5::ArmISA::PMU::CounterState::detach | ( | ) |
Detach the counter from its event.
Definition at line 552 of file pmu.cc.
References counterId, DPRINTFS, eventId, pmu, and sourceEvent.
Referenced by gem5::ArmISA::PMU::updateCounter().
|
inline |
Obtain the counter id.
Definition at line 470 of file pmu.hh.
References counterId.
Referenced by gem5::ArmISA::PMU::updateCounter().
| uint64_t gem5::ArmISA::PMU::CounterState::getValue | ( | ) | const |
rReturn the counter value
Definition at line 576 of file pmu.cc.
References debugCounter(), sourceEvent, and value.
Referenced by gem5::ArmISA::PMU::getCounterValue().
| bool gem5::ArmISA::PMU::CounterState::isFiltered | ( | ) | const |
Definition at line 525 of file pmu.cc.
References gem5::ArmISA::el, gem5::ArmISA::EL0, gem5::ArmISA::EL1, gem5::ArmISA::EL2, gem5::ArmISA::EL3, filter, panic, and pmu.
|
overridevirtual |
Serialize an object.
Output an object's state into the current checkpoint section.
| cp | Checkpoint state |
Implements gem5::Serializable.
Definition at line 789 of file pmu.cc.
References eventId, overflow64, SERIALIZE_SCALAR, and value.
| void gem5::ArmISA::PMU::CounterState::setValue | ( | uint64_t | val | ) |
overwrite the value of the counter
| the | new counter value |
Definition at line 588 of file pmu.cc.
References debugCounter(), resetValue, sourceEvent, gem5::X86ISA::val, and value.
Referenced by gem5::ArmISA::PMU::setCounterValue().
|
overridevirtual |
Unserialize an object.
Read an object's state from the current checkpoint section.
| cp | Checkpoint state |
Implements gem5::Serializable.
Definition at line 797 of file pmu.cc.
References eventId, overflow64, UNSERIALIZE_SCALAR, and value.
|
protected |
id of the counter instance
Definition at line 506 of file pmu.hh.
Referenced by add(), CounterState(), debugCounter(), detach(), and getCounterId().
| bool gem5::ArmISA::PMU::CounterState::enabled |
Is the counter enabled?
Definition at line 496 of file pmu.hh.
Referenced by CounterState(), gem5::ArmISA::PMU::updateAllCounters(), and gem5::ArmISA::PMU::updateCounter().
| EventTypeId gem5::ArmISA::PMU::CounterState::eventId |
Counter event ID.
Definition at line 490 of file pmu.hh.
Referenced by CounterState(), debugCounter(), detach(), gem5::ArmISA::PMU::getCounterTypeRegister(), serialize(), gem5::ArmISA::PMU::setCounterTypeRegister(), unserialize(), and gem5::ArmISA::PMU::updateCounter().
| PMEVTYPER_t gem5::ArmISA::PMU::CounterState::filter |
Filtering settings (evtCount is unused)
Definition at line 493 of file pmu.hh.
Referenced by CounterState(), gem5::ArmISA::PMU::getCounterTypeRegister(), isFiltered(), and gem5::ArmISA::PMU::setCounterTypeRegister().
| bool gem5::ArmISA::PMU::CounterState::overflow64 |
Is this a 64-bit counter?
Definition at line 499 of file pmu.hh.
Referenced by add(), CounterState(), serialize(), and unserialize().
|
protected |
Definition at line 514 of file pmu.hh.
Referenced by add(), CounterState(), detach(), and isFiltered().
|
protected |
Flag keeping track if the counter has been reset.
Definition at line 512 of file pmu.hh.
Referenced by add(), attach(), CounterState(), and setValue().
|
protected |
PmuEvent currently in use (if any)
Definition at line 503 of file pmu.hh.
Referenced by attach(), CounterState(), debugCounter(), detach(), getValue(), and setValue().
|
protected |
Current value of the counter.
Definition at line 509 of file pmu.hh.
Referenced by add(), attach(), CounterState(), getValue(), serialize(), setValue(), and unserialize().