-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathfelis_probes.h
123 lines (103 loc) · 2.7 KB
/
felis_probes.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
// -*- mode: c++ -*-
#ifndef FELIS_PROBES_H
#define FELIS_PROBES_H
#include <cstdint>
namespace felis {
namespace probes {
struct NumVersionsOnGC {
unsigned long nr;
void operator()() const;
};
struct VersionRead {
bool blocking;
void *handle;
void operator()() const;
};
struct VersionWrite {
void *handle;
long pos;
uint64_t epoch_nr;
void operator()() const;
};
struct WaitCounters {
unsigned long wait_cnt;
uint64_t sid;
uint64_t version_id;
uintptr_t ptr;
void operator()() const;
};
struct VHandleAppend {
void *handle;
uint64_t sid;
int alloc_regionid;
void operator()() const;
};
struct VHandleAppendSlowPath {
void *handle;
void operator()() const;
};
struct VHandleAbsorb {
void *handle;
int size;
void operator()() const;
};
struct VHandleExpand {
void *handle;
unsigned int oldcap;
unsigned int newcap;
void operator()() const;
};
struct OnDemandSplit {
uint64_t sum;
uint64_t nr_batched;
uint64_t nr_splitted;
void operator()() const;
};
struct LocalitySchedule {
int core;
int weight;
uint64_t result;
uint64_t seed;
uint64_t max_seed;
long load;
void operator()() const;
};
struct EndOfPhase {
uint64_t epoch_nr;
int phase_id;
void operator()() const;
};
struct TpccNewOrder {
int piece_id;
int nr_update;
void operator()() const;
};
struct TpccPayment {
int piece_id;
int nr_update;
int warehouse_coreid;
void operator()() const;
};
struct TpccDelivery {
int piece_id;
int nr_update;
void operator()() const;
};
}
}
#define PROBE_LIST \
PROBE_PROXY(felis::probes::NumVersionsOnGC); \
PROBE_PROXY(felis::probes::VersionRead); \
PROBE_PROXY(felis::probes::VersionWrite); \
PROBE_PROXY(felis::probes::WaitCounters); \
PROBE_PROXY(felis::probes::VHandleAppend); \
PROBE_PROXY(felis::probes::VHandleAppendSlowPath); \
PROBE_PROXY(felis::probes::VHandleAbsorb); \
PROBE_PROXY(felis::probes::VHandleExpand); \
PROBE_PROXY(felis::probes::LocalitySchedule); \
PROBE_PROXY(felis::probes::OnDemandSplit); \
PROBE_PROXY(felis::probes::EndOfPhase); \
PROBE_PROXY(felis::probes::TpccNewOrder); \
PROBE_PROXY(felis::probes::TpccPayment); \
PROBE_PROXY(felis::probes::TpccDelivery);
#endif /* FELIS_PROBES_H */