17 #ifndef METADATA_HPP__
18 #define METADATA_HPP__
20 #include <stm/config.h>
56 #if defined(STM_CPU_X86)
57 uintptr_t
id:(8*
sizeof(uintptr_t))-1;
61 uintptr_t
id:(8*
sizeof(uintptr_t))-1;
132 static const uint32_t
BITS = 8*
sizeof(uintptr_t);
136 void setbit(
unsigned slot);
139 bool getbit(
unsigned slot);
145 bool setif(
unsigned slot);
169 #if defined(STM_WS_WORDLOG)
171 #elif defined(STM_WS_BYTELOG)
174 # error WriteSet logging granularity configuration error.
222 for (
int i = 0; i < 18; ++i)
239 #ifdef STM_COUNTCONSEC_YES
240 typedef toxic_histogram_t
toxic_t;
247 #endif // METADATA_HPP__
volatile uintptr_t owner
Definition: metadata.hpp:159
orec_t * o
Definition: metadata.hpp:83
MiniVector< bytelock_t * > ByteLockList
Definition: metadata.hpp:182
MiniVector< nanorec_t > NanorecList
Definition: metadata.hpp:185
uint32_t buckets[18]
Definition: metadata.hpp:205
Definition: metadata.hpp:115
void setbit(unsigned slot)
Definition: algs.hpp:392
Definition: stm_fraser.c:61
bool getbit(unsigned slot)
Definition: algs.hpp:407
uint32_t max
Definition: metadata.hpp:196
Definition: metadata.hpp:97
Definition: metadata.hpp:128
Definition: metadata.hpp:231
void onCommit(uint32_t aborts)
Definition: algs.hpp:468
bool setif(unsigned slot)
Definition: algs.hpp:437
Definition: metadata.hpp:193
void onCommit(uint32_t)
Definition: metadata.hpp:233
volatile uintptr_t val
Definition: metadata.hpp:117
volatile uint32_t owner
Definition: metadata.hpp:99
volatile unsigned char reader[CACHELINE_BYTES-sizeof(uint32_t)]
Definition: metadata.hpp:100
Definition: metadata.hpp:157
void onHGAbort()
Definition: metadata.hpp:236
void onHGAbort()
Definition: algs.hpp:492
uint32_t hg_aborts
Definition: metadata.hpp:202
uintptr_t v
Definition: metadata.hpp:84
struct stm::id_version_t::@2 fields
Definition: WriteSet.hpp:44
void set_read_byte(uint32_t id)
Definition: algs.hpp:382
Definition: WriteSet.hpp:112
Definition: metadata.hpp:81
toxic_histogram_t()
Definition: metadata.hpp:220
void scope_t
Definition: metadata.hpp:39
void operator|=(rrec_t &rhs)
Definition: algs.hpp:459
MiniVector< orec_t * > OrecList
Definition: metadata.hpp:168
uintptr_t lock
Definition: metadata.hpp:60
void dump()
Definition: metadata.hpp:234
volatile uintptr_t bits[BUCKETS]
Definition: metadata.hpp:133
MiniVector< rrec_t * > RRecList
Definition: metadata.hpp:181
MiniVector< void * > AddressList
Definition: metadata.hpp:186
void onHGCommit()
Definition: metadata.hpp:235
rrec_t readers
Definition: metadata.hpp:160
uintptr_t all
Definition: metadata.hpp:64
volatile uintptr_t p
Definition: metadata.hpp:75
Definition: txthread.hpp:47
BitFilter< 1024 > filter_t
Definition: metadata.hpp:184
void NORETURN UNRECOVERABLE(const char *)
Definition: txthread.cpp:155
static const unsigned MAX_THREADS
Definition: metadata.hpp:33
Definition: metadata.hpp:51
nanorec_t(orec_t *_o, uintptr_t _v)
Definition: metadata.hpp:85
toxic_nop_t toxic_t
Definition: metadata.hpp:242
char pad[CACHELINE_BYTES-sizeof(uintptr_t)]
Definition: metadata.hpp:118
Definition: metadata.hpp:72
uint32_t hg_commits
Definition: metadata.hpp:199
static const uint32_t BUCKETS
Definition: metadata.hpp:131
void unsetbit(unsigned slot)
Definition: algs.hpp:416
Definition: BitFilter.hpp:36
void onHGCommit()
Definition: algs.hpp:491
volatile id_version_t v
Definition: metadata.hpp:74
MiniVector< bitlock_t * > BitLockList
Definition: metadata.hpp:183
void dump()
Definition: algs.hpp:482
static const uint32_t BITS
Definition: metadata.hpp:132