gem5
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
arch
alpha
kernel_stats.hh
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2004-2005 The Regents of The University of Michigan
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;
9
* redistributions in binary form must reproduce the above copyright
10
* notice, this list of conditions and the following disclaimer in the
11
* documentation and/or other materials provided with the distribution;
12
* neither the name of the copyright holders nor the names of its
13
* contributors may be used to endorse or promote products derived from
14
* this software without specific prior written permission.
15
*
16
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
17
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
18
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
19
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
20
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
21
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
22
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
26
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27
*
28
* Authors: Lisa Hsu
29
* Nathan Binkert
30
*/
31
32
#ifndef __ARCH_ALPHA_KERNEL_STATS_HH__
33
#define __ARCH_ALPHA_KERNEL_STATS_HH__
34
35
#include <map>
36
#include <stack>
37
#include <string>
38
#include <vector>
39
40
#include "
cpu/static_inst.hh
"
41
#include "
kern/kernel_stats.hh
"
42
43
class
BaseCPU
;
44
class
ThreadContext
;
45
class
FnEvent;
46
// What does kernel stats expect is included?
47
class
System
;
48
49
namespace
AlphaISA {
50
namespace
Kernel {
51
52
enum
cpu_mode
{
kernel
,
user
,
idle
,
cpu_mode_num
};
53
extern
const
char
*
modestr
[];
54
55
class
Statistics
:
public
::Kernel::Statistics
56
{
57
protected
:
58
Addr
idleProcess
;
59
cpu_mode
themode
;
60
Tick
lastModeTick
;
61
62
void
changeMode
(
cpu_mode
newmode,
ThreadContext
*tc);
63
64
private
:
65
Stats::Vector
_callpal
;
66
// Stats::Vector _faults;
67
68
Stats::Vector
_mode
;
69
Stats::Vector
_modeGood
;
70
Stats::Formula
_modeFraction
;
71
Stats::Vector
_modeTicks
;
72
73
Stats::Scalar
_swap_context
;
74
75
public
:
76
Statistics
(
System
*
system
);
77
78
void
regStats
(
const
std::string &
name
);
79
80
public
:
81
void
mode
(
cpu_mode
newmode,
ThreadContext
*tc);
82
void
context
(
Addr
oldpcbb,
Addr
newpcbb,
ThreadContext
*tc);
83
void
callpal
(
int
code,
ThreadContext
*tc);
84
void
hwrei
() {
_hwrei
++; }
85
86
void
setIdleProcess
(
Addr
idle
,
ThreadContext
*tc);
87
88
public
:
89
void
serialize
(
CheckpointOut
&cp)
const override
;
90
void
unserialize
(
CheckpointIn
&cp)
override
;
91
};
92
93
}
// namespace Kernel
94
}
// namespace AlphaISA
95
96
#endif // __ARCH_ALPHA_KERNEL_STATS_HH__
AlphaISA::Kernel::Statistics::mode
void mode(cpu_mode newmode, ThreadContext *tc)
Definition:
kernel_stats.cc:154
AlphaISA::Kernel::Statistics::regStats
void regStats(const std::string &name)
AlphaISA::Kernel::cpu_mode
cpu_mode
Definition:
kernel_stats.hh:52
AlphaISA::Kernel::idle
Definition:
kernel_stats.hh:52
System
Definition:
system.hh:83
Stats::Vector
A vector of scalar stats.
Definition:
statistics.hh:2499
ThreadContext
ThreadContext is the external interface to all thread state for anything outside of the CPU...
Definition:
thread_context.hh:93
Stats::Scalar
This is a simple scalar statistic, like a counter.
Definition:
statistics.hh:2475
AlphaISA::Kernel::Statistics::changeMode
void changeMode(cpu_mode newmode, ThreadContext *tc)
Definition:
kernel_stats.cc:135
AlphaISA::Kernel::Statistics::hwrei
void hwrei()
Definition:
kernel_stats.hh:84
AlphaISA::Kernel::Statistics::context
void context(Addr oldpcbb, Addr newpcbb, ThreadContext *tc)
Definition:
kernel_stats.cc:165
AlphaISA::Kernel::modestr
const char * modestr[]
Definition:
kernel_stats.cc:51
AlphaISA::Kernel::Statistics::_modeGood
Stats::Vector _modeGood
Definition:
kernel_stats.hh:69
AlphaISA::Kernel::Statistics::lastModeTick
Tick lastModeTick
Definition:
kernel_stats.hh:60
Kernel::Statistics::name
const std::string name() const
Definition:
kernel_stats.hh:69
ArmISA::system
system
Definition:
isa.cc:226
AlphaISA::Kernel::Statistics::unserialize
void unserialize(CheckpointIn &cp) override
Unserialize an object.
Definition:
kernel_stats.cc:197
static_inst.hh
Kernel::Statistics::_hwrei
Stats::Scalar _hwrei
Definition:
kernel_stats.hh:54
Tick
uint64_t Tick
Tick count type.
Definition:
types.hh:63
AlphaISA::Kernel::Statistics::_modeFraction
Stats::Formula _modeFraction
Definition:
kernel_stats.hh:70
AlphaISA::Kernel::Statistics::callpal
void callpal(int code, ThreadContext *tc)
Definition:
kernel_stats.cc:178
AlphaISA::Kernel::Statistics::_mode
Stats::Vector _mode
Definition:
kernel_stats.hh:68
Addr
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
Definition:
types.hh:142
CheckpointIn
Definition:
serialize.hh:340
AlphaISA::Kernel::Statistics::idleProcess
Addr idleProcess
Definition:
kernel_stats.hh:58
AlphaISA::Kernel::cpu_mode_num
Definition:
kernel_stats.hh:52
AlphaISA::Kernel::Statistics::_swap_context
Stats::Scalar _swap_context
Definition:
kernel_stats.hh:73
Stats::Formula
A formula for statistics that is calculated when printed.
Definition:
statistics.hh:2895
AlphaISA::Kernel::Statistics
Definition:
kernel_stats.hh:55
AlphaISA::Kernel::Statistics::themode
cpu_mode themode
Definition:
kernel_stats.hh:59
AlphaISA::Kernel::Statistics::setIdleProcess
void setIdleProcess(Addr idle, ThreadContext *tc)
Definition:
kernel_stats.cc:126
AlphaISA::Kernel::Statistics::_callpal
Stats::Vector _callpal
Definition:
kernel_stats.hh:65
AlphaISA::Kernel::Statistics::Statistics
Statistics(System *system)
Definition:
kernel_stats.cc:53
CheckpointOut
std::ostream CheckpointOut
Definition:
serialize.hh:67
AlphaISA::Kernel::user
Definition:
kernel_stats.hh:52
AlphaISA::Kernel::kernel
Definition:
kernel_stats.hh:52
kernel_stats.hh
AlphaISA::Kernel::Statistics::_modeTicks
Stats::Vector _modeTicks
Definition:
kernel_stats.hh:71
BaseCPU
Definition:
cpu_dummy.hh:45
AlphaISA::Kernel::Statistics::serialize
void serialize(CheckpointOut &cp) const override
Serialize an object.
Definition:
kernel_stats.cc:187
Generated on Fri Jun 9 2017 13:03:35 for gem5 by
doxygen
1.8.6