CCTLib
Calling-context and data-object attribution library for Intel Pin
zerospy_spatial_client.cpp File Reference
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#include <atomic>
#include <malloc.h>
#include <iostream>
#include <unistd.h>
#include <assert.h>
#include <string.h>
#include <sys/mman.h>
#include <sstream>
#include <functional>
#include <unordered_set>
#include <vector>
#include <unordered_map>
#include <algorithm>
#include <list>
#include "pin.H"
#include "pin_isa_compat.H"
#include "cctlib.H"
#include "shadow_memory.H"
#include <xmmintrin.h>
#include <immintrin.h>
#include "xed-interface.h"
#include "xed-common-hdrs.h"
#include <google/sparse_hash_map>
#include <google/dense_hash_map>
+ Include dependency graph for zerospy_spatial_client.cpp:

Go to the source code of this file.

Classes

struct  RedSpyThreadData
 
struct  RedLogs
 
union  float_cast
 
union  double_cast
 
struct  UnrolledConjunction< start, end, incr >
 
struct  UnrolledConjunction< end, end, incr >
 
struct  UnrolledCount< start, end, step >
 
struct  UnrolledCount< end, end, step >
 
struct  ZeroSpyAnalysis< T, AccessLen, isApprox >
 
struct  LoadSpyInstrument
 
struct  ObjRedundancy
 

Macros

#define SKIP_SMALL_VARS
 
#define SMALL_VAR_THRESHOLD   16
 
#define USE_TREE_BASED_FOR_DATA_CENTRIC
 
#define USE_TREE_WITH_ADDR
 
#define OBJTYPE2STRING(t)   ((t == DYNAMIC_OBJECT) ? "DYNAMIC" : ((t == STATIC_OBJECT) ? "STATIC" : ((t == STACK_OBJECT) ? "STACK" : "UNKNOWN")))
 
#define SYMNAME2STRING(t, s)   ((t == DYNAMIC_OBJECT) ? "DYNAMIC" : ((t == STATIC_OBJECT) ? GetStringFromStringPool(s) : ((t == STACK_OBJECT) ? "STACK" : "UNKNOWN")))
 
#define READ_ACTION   (0)
 
#define WRITE_ACTION   (0xff)
 
#define ONE_BYTE_READ_ACTION   (0)
 
#define TWO_BYTE_READ_ACTION   (0)
 
#define FOUR_BYTE_READ_ACTION   (0)
 
#define EIGHT_BYTE_READ_ACTION   (0)
 
#define ONE_BYTE_WRITE_ACTION   (0xff)
 
#define TWO_BYTE_WRITE_ACTION   (0xffff)
 
#define FOUR_BYTE_WRITE_ACTION   (0xffffffff)
 
#define EIGHT_BYTE_WRITE_ACTION   (0xffffffffffffffff)
 
#define IS_ACCESS_WITHIN_PAGE_BOUNDARY(accessAddr, accessLen)   (PAGE_OFFSET((accessAddr)) <= (PAGE_OFFSET_MASK - (accessLen)))
 
#define MAX_OBJS_TO_LOG   100
 
#define MAX_REDUNDANT_CONTEXTS_PER_OBJ_TO_LOG   10
 
#define MAX_REDUNDANT_CONTEXTS_TO_LOG   (1000)
 
#define THREAD_MAX   (1024)
 
#define ENCODE_ADDRESS_AND_ACCESS_LEN(addr, len)   ((addr) | (((uint64_t)(len)) << 48))
 
#define DECODE_ADDRESS(addrAndLen)   ((addrAndLen) & ((1L << 48) - 1))
 
#define DECODE_ACCESS_LEN(addrAndLen)   ((addrAndLen) >> 48)
 
#define MAX_WRITE_OP_LENGTH   (512)
 
#define MAX_WRITE_OPS_IN_INS   (8)
 
#define MAX_REG_LENGTH   (64)
 
#define MAX_SIMD_LENGTH   (64)
 
#define MAX_SIMD_REGS   (32)
 
#define MAKE_OBJID(a, b)   (((uint64_t)(a) << 32) | (b))
 
#define DECODE_TYPE(a)   (((uint64_t)(a) & (0xffffffffffffffff)) >> 32)
 
#define DECODE_NAME(b)   ((uint64_t)(b) & (0x00000000ffffffff))
 
#define MAKE_CNTXT(a, b, c)   (((uint64_t)(a) << 32) | ((uint64_t)(b) << 16) | (uint64_t)(c))
 
#define DECODE_CNTXT(a)   (static_cast<ContextHandle_t>((((a) & (0xffffffffffffffff)) >> 32)))
 
#define DECODE_ACCLN(b)   (((uint64_t)(b) & (0x00000000ffff0000)) >> 16)
 
#define DECODE_TYPSZ(c)   ((uint64_t)(c) & (0x000000000000ffff))
 
#define delta   0.01
 
#define CACHE_LINE_SIZE   (64)
 
#define PAGE_SIZE   (4 * 1024)
 
#define DATA_STATE_NOT_VISIT   0
 
#define DATA_STATE_ONLY_ZERO   1
 
#define DATA_STATE_NOT_ZERO   2
 
#define HANDLE_CASE(T, ACCESS_LEN, IS_APPROX)    INS_InsertPredicatedCall(ins, IPOINT_BEFORE, (AFUNPTR)ZeroSpyAnalysis<T, (ACCESS_LEN), (IS_APPROX)>::CheckNByteValueAfterRead, IARG_MEMORYOP_EA, memOp, IARG_UINT32, opaqueHandle, IARG_THREAD_ID, IARG_INST_PTR, IARG_END)
 
#define HANDLE_LARGE()    INS_InsertPredicatedCall(ins, IPOINT_BEFORE, (AFUNPTR)CheckAfterLargeRead, IARG_MEMORYOP_EA, memOp, IARG_MEMORYREAD_SIZE, IARG_UINT32, opaqueHandle, IARG_THREAD_ID, IARG_END)
 
#define MAX_REDMAP_PRINT_SIZE   128
 
#define MAX_PRINT_FULL   5
 

Functions

RedSpyThreadDataClientGetTLS (const THREADID threadId)
 
static INT32 Usage ()
 
static void ClientInit (int argc, char *argv[])
 
static void AddToRedTable (uint32_t addr, DataHandle_t data, ContextHandle_t cntxt, uint16_t value, uint16_t total, const uint8_t redmap[32], uint32_t typesz, THREADID threadId) __attribute__((always_inline
 
static void AddToApproximateRedTable (uint32_t addr, DataHandle_t data, ContextHandle_t cntxt, uint16_t value, uint16_t total, const uint8_t redmap[32], uint32_t typesz, THREADID threadId) __attribute__((always_inline
 
static bool IsOkToApproximate (xed_decoded_inst_t &xedd)
 
static bool IsFloatInstructionAndOkToApproximate (ADDRINT ip)
 
static bool IsFloatInstructionOld (ADDRINT ip)
 
static uint16_t FloatOperandSize (ADDRINT ip, uint32_t oper)
 
static VOID CheckAfterLargeRead (void *addr, UINT32 accessLen, uint32_t opaqueHandle, THREADID threadId)
 
static int GetNumReadOperandsInIns (INS ins, UINT32 &whichOp)
 
static bool INS_IsIgnorable (INS ins)
 
static VOID InstrumentInsCallback (INS ins, VOID *v, const uint32_t opaqueHandle)
 
VOID Update (uint32_t bytes, THREADID threadId)
 
static void InstrumentTrace (TRACE trace, void *f)
 
static bool ObjRedundancyCompare (const struct ObjRedundancy &first, const struct ObjRedundancy &second)
 
static void PrintSize (uint64_t size, char unit='B')
 
static void PrintRedundancyPairs (THREADID threadId)
 
static void PrintApproximationRedundancyPairs (THREADID threadId)
 
static VOID ImageUnload (IMG img, VOID *v)
 
static VOID ThreadFiniFunc (THREADID threadid, const CONTEXT *ctxt, INT32 code, VOID *v)
 
static VOID FiniFunc (INT32 code, VOID *v)
 
static void InitThreadData (RedSpyThreadData *tdata)
 
static VOID ThreadStart (THREADID threadid, CONTEXT *ctxt, INT32 flags, VOID *v)
 
uint64_t computeMetricVal (void *metric)
 
int main (int argc, char *argv[])
 

Variables

struct {
   char   dummy1 [128]
 
   xed_state_t   xedState
 
   char   dummy2 [128]
 
LoadSpyGlobals
 
int redload_metric_id = 0
 
int redload_approx_metric_id = 0
 
uint64_t grandTotBytesLoad
 
uint64_t grandTotBytesRedLoad
 
uint64_t grandTotBytesApproxRedLoad
 
static TLS_KEY client_tls_key
 
static RedSpyThreadDatagSingleThreadedTData
 
static FILE * gTraceFile
 
static const uint64_t READ_ACCESS_STATES [] = { 0, ONE_BYTE_READ_ACTION, TWO_BYTE_READ_ACTION, 0, FOUR_BYTE_READ_ACTION, 0, 0, 0, EIGHT_BYTE_READ_ACTION}
 
static const uint64_t WRITE_ACCESS_STATES [] = { 0, ONE_BYTE_WRITE_ACTION, TWO_BYTE_WRITE_ACTION, 0, FOUR_BYTE_WRITE_ACTION, 0, 0, 0, EIGHT_BYTE_WRITE_ACTION}
 
static const uint8_t OVERFLOW_CHECK [] = { 0, 0, 0, 1, 2, 3, 4, 5, 6}
 
static unordered_map< uint64_t, RedLogsRedMap [THREAD_MAX]
 
static unordered_map< uint64_t, RedLogsApproxRedMap [THREAD_MAX]
 
static void flatten
 

Macro Definition Documentation

◆ CACHE_LINE_SIZE

#define CACHE_LINE_SIZE   (64)

Definition at line 109 of file zerospy_spatial_client.cpp.

◆ DATA_STATE_NOT_VISIT

#define DATA_STATE_NOT_VISIT   0

Definition at line 201 of file zerospy_spatial_client.cpp.

◆ DATA_STATE_NOT_ZERO

#define DATA_STATE_NOT_ZERO   2

Definition at line 203 of file zerospy_spatial_client.cpp.

◆ DATA_STATE_ONLY_ZERO

#define DATA_STATE_ONLY_ZERO   1

Definition at line 202 of file zerospy_spatial_client.cpp.

◆ DECODE_ACCESS_LEN

#define DECODE_ACCESS_LEN (   addrAndLen)    ((addrAndLen) >> 48)

Definition at line 81 of file zerospy_spatial_client.cpp.

◆ DECODE_ACCLN

#define DECODE_ACCLN (   b)    (((uint64_t)(b) & (0x00000000ffff0000)) >> 16)

Definition at line 104 of file zerospy_spatial_client.cpp.

◆ DECODE_ADDRESS

#define DECODE_ADDRESS (   addrAndLen)    ((addrAndLen) & ((1L << 48) - 1))

Definition at line 80 of file zerospy_spatial_client.cpp.

◆ DECODE_CNTXT

#define DECODE_CNTXT (   a)    (static_cast<ContextHandle_t>((((a) & (0xffffffffffffffff)) >> 32)))

Definition at line 103 of file zerospy_spatial_client.cpp.

◆ DECODE_NAME

#define DECODE_NAME (   b)    ((uint64_t)(b) & (0x00000000ffffffff))

Definition at line 100 of file zerospy_spatial_client.cpp.

◆ DECODE_TYPE

#define DECODE_TYPE (   a)    (((uint64_t)(a) & (0xffffffffffffffff)) >> 32)

Definition at line 99 of file zerospy_spatial_client.cpp.

◆ DECODE_TYPSZ

#define DECODE_TYPSZ (   c)    ((uint64_t)(c) & (0x000000000000ffff))

Definition at line 105 of file zerospy_spatial_client.cpp.

◆ delta

#define delta   0.01

Definition at line 107 of file zerospy_spatial_client.cpp.

◆ EIGHT_BYTE_READ_ACTION

#define EIGHT_BYTE_READ_ACTION   (0)

Definition at line 63 of file zerospy_spatial_client.cpp.

◆ EIGHT_BYTE_WRITE_ACTION

#define EIGHT_BYTE_WRITE_ACTION   (0xffffffffffffffff)

Definition at line 68 of file zerospy_spatial_client.cpp.

◆ ENCODE_ADDRESS_AND_ACCESS_LEN

#define ENCODE_ADDRESS_AND_ACCESS_LEN (   addr,
  len 
)    ((addr) | (((uint64_t)(len)) << 48))

Definition at line 79 of file zerospy_spatial_client.cpp.

◆ FOUR_BYTE_READ_ACTION

#define FOUR_BYTE_READ_ACTION   (0)

Definition at line 62 of file zerospy_spatial_client.cpp.

◆ FOUR_BYTE_WRITE_ACTION

#define FOUR_BYTE_WRITE_ACTION   (0xffffffff)

Definition at line 67 of file zerospy_spatial_client.cpp.

◆ HANDLE_CASE

#define HANDLE_CASE (   T,
  ACCESS_LEN,
  IS_APPROX 
)     INS_InsertPredicatedCall(ins, IPOINT_BEFORE, (AFUNPTR)ZeroSpyAnalysis<T, (ACCESS_LEN), (IS_APPROX)>::CheckNByteValueAfterRead, IARG_MEMORYOP_EA, memOp, IARG_UINT32, opaqueHandle, IARG_THREAD_ID, IARG_INST_PTR, IARG_END)

Definition at line 868 of file zerospy_spatial_client.cpp.

◆ HANDLE_LARGE

#define HANDLE_LARGE ( )     INS_InsertPredicatedCall(ins, IPOINT_BEFORE, (AFUNPTR)CheckAfterLargeRead, IARG_MEMORYOP_EA, memOp, IARG_MEMORYREAD_SIZE, IARG_UINT32, opaqueHandle, IARG_THREAD_ID, IARG_END)

Definition at line 871 of file zerospy_spatial_client.cpp.

◆ IS_ACCESS_WITHIN_PAGE_BOUNDARY

#define IS_ACCESS_WITHIN_PAGE_BOUNDARY (   accessAddr,
  accessLen 
)    (PAGE_OFFSET((accessAddr)) <= (PAGE_OFFSET_MASK - (accessLen)))

Definition at line 70 of file zerospy_spatial_client.cpp.

◆ MAKE_CNTXT

#define MAKE_CNTXT (   a,
  b,
 
)    (((uint64_t)(a) << 32) | ((uint64_t)(b) << 16) | (uint64_t)(c))

Definition at line 102 of file zerospy_spatial_client.cpp.

◆ MAKE_OBJID

#define MAKE_OBJID (   a,
 
)    (((uint64_t)(a) << 32) | (b))

Definition at line 98 of file zerospy_spatial_client.cpp.

◆ MAX_OBJS_TO_LOG

#define MAX_OBJS_TO_LOG   100

Definition at line 74 of file zerospy_spatial_client.cpp.

◆ MAX_PRINT_FULL

#define MAX_PRINT_FULL   5

Definition at line 1137 of file zerospy_spatial_client.cpp.

◆ MAX_REDMAP_PRINT_SIZE

#define MAX_REDMAP_PRINT_SIZE   128

Definition at line 1135 of file zerospy_spatial_client.cpp.

◆ MAX_REDUNDANT_CONTEXTS_PER_OBJ_TO_LOG

#define MAX_REDUNDANT_CONTEXTS_PER_OBJ_TO_LOG   10

Definition at line 75 of file zerospy_spatial_client.cpp.

◆ MAX_REDUNDANT_CONTEXTS_TO_LOG

#define MAX_REDUNDANT_CONTEXTS_TO_LOG   (1000)

Definition at line 76 of file zerospy_spatial_client.cpp.

◆ MAX_REG_LENGTH

#define MAX_REG_LENGTH   (64)

Definition at line 85 of file zerospy_spatial_client.cpp.

◆ MAX_SIMD_LENGTH

#define MAX_SIMD_LENGTH   (64)

Definition at line 87 of file zerospy_spatial_client.cpp.

◆ MAX_SIMD_REGS

#define MAX_SIMD_REGS   (32)

Definition at line 88 of file zerospy_spatial_client.cpp.

◆ MAX_WRITE_OP_LENGTH

#define MAX_WRITE_OP_LENGTH   (512)

Definition at line 83 of file zerospy_spatial_client.cpp.

◆ MAX_WRITE_OPS_IN_INS

#define MAX_WRITE_OPS_IN_INS   (8)

Definition at line 84 of file zerospy_spatial_client.cpp.

◆ OBJTYPE2STRING

#define OBJTYPE2STRING (   t)    ((t == DYNAMIC_OBJECT) ? "DYNAMIC" : ((t == STATIC_OBJECT) ? "STATIC" : ((t == STACK_OBJECT) ? "STACK" : "UNKNOWN")))

Definition at line 38 of file zerospy_spatial_client.cpp.

◆ ONE_BYTE_READ_ACTION

#define ONE_BYTE_READ_ACTION   (0)

Definition at line 60 of file zerospy_spatial_client.cpp.

◆ ONE_BYTE_WRITE_ACTION

#define ONE_BYTE_WRITE_ACTION   (0xff)

Definition at line 65 of file zerospy_spatial_client.cpp.

◆ PAGE_SIZE

#define PAGE_SIZE   (4 * 1024)

Definition at line 111 of file zerospy_spatial_client.cpp.

◆ READ_ACTION

#define READ_ACTION   (0)

Definition at line 57 of file zerospy_spatial_client.cpp.

◆ SKIP_SMALL_VARS

#define SKIP_SMALL_VARS

Definition at line 26 of file zerospy_spatial_client.cpp.

◆ SMALL_VAR_THRESHOLD

#define SMALL_VAR_THRESHOLD   16

Definition at line 28 of file zerospy_spatial_client.cpp.

◆ SYMNAME2STRING

#define SYMNAME2STRING (   t,
 
)    ((t == DYNAMIC_OBJECT) ? "DYNAMIC" : ((t == STATIC_OBJECT) ? GetStringFromStringPool(s) : ((t == STACK_OBJECT) ? "STACK" : "UNKNOWN")))

Definition at line 39 of file zerospy_spatial_client.cpp.

◆ THREAD_MAX

#define THREAD_MAX   (1024)

Definition at line 77 of file zerospy_spatial_client.cpp.

◆ TWO_BYTE_READ_ACTION

#define TWO_BYTE_READ_ACTION   (0)

Definition at line 61 of file zerospy_spatial_client.cpp.

◆ TWO_BYTE_WRITE_ACTION

#define TWO_BYTE_WRITE_ACTION   (0xffff)

Definition at line 66 of file zerospy_spatial_client.cpp.

◆ USE_TREE_BASED_FOR_DATA_CENTRIC

#define USE_TREE_BASED_FOR_DATA_CENTRIC

Definition at line 32 of file zerospy_spatial_client.cpp.

◆ USE_TREE_WITH_ADDR

#define USE_TREE_WITH_ADDR

Definition at line 33 of file zerospy_spatial_client.cpp.

◆ WRITE_ACTION

#define WRITE_ACTION   (0xff)

Definition at line 58 of file zerospy_spatial_client.cpp.

Function Documentation

◆ AddToApproximateRedTable()

static void AddToApproximateRedTable ( uint32_t  addr,
DataHandle_t  data,
ContextHandle_t  cntxt,
uint16_t  value,
uint16_t  total,
const uint8_t  redmap[32],
uint32_t  typesz,
THREADID  threadId 
)
inlinestatic

◆ AddToRedTable()

static void AddToRedTable ( uint32_t  addr,
DataHandle_t  data,
ContextHandle_t  cntxt,
uint16_t  value,
uint16_t  total,
const uint8_t  redmap[32],
uint32_t  typesz,
THREADID  threadId 
)
inlinestatic

◆ CheckAfterLargeRead()

static VOID CheckAfterLargeRead ( void *  addr,
UINT32  accessLen,
uint32_t  opaqueHandle,
THREADID  threadId 
)
inlinestatic

◆ ClientGetTLS()

RedSpyThreadData* ClientGetTLS ( const THREADID  threadId)
inline

◆ ClientInit()

static void ClientInit ( int  argc,
char *  argv[] 
)
static

Definition at line 167 of file zerospy_spatial_client.cpp.

References gTraceFile, LoadSpyGlobals, and MAX_FILE_PATH.

Referenced by main().

◆ computeMetricVal()

uint64_t computeMetricVal ( void *  metric)

Definition at line 1426 of file zerospy_spatial_client.cpp.

References PinCCTLib::metric.

◆ FiniFunc()

static VOID FiniFunc ( INT32  code,
VOID *  v 
)
static

◆ FloatOperandSize()

static uint16_t FloatOperandSize ( ADDRINT  ip,
uint32_t  oper 
)
inlinestatic

Definition at line 658 of file zerospy_spatial_client.cpp.

References ip, and LoadSpyGlobals.

Referenced by LoadSpyInstrument::if().

◆ GetNumReadOperandsInIns()

static int GetNumReadOperandsInIns ( INS  ins,
UINT32 &  whichOp 
)
static

Definition at line 876 of file zerospy_spatial_client.cpp.

Referenced by InstrumentInsCallback().

◆ ImageUnload()

static VOID ImageUnload ( IMG  img,
VOID *  v 
)
static

◆ InitThreadData()

static void InitThreadData ( RedSpyThreadData tdata)
static

◆ INS_IsIgnorable()

static bool INS_IsIgnorable ( INS  ins)
inlinestatic

Definition at line 963 of file zerospy_spatial_client.cpp.

References INS_IsMaskedJump().

Referenced by InstrumentInsCallback(), and InstrumentTrace().

◆ InstrumentInsCallback()

static VOID InstrumentInsCallback ( INS  ins,
VOID *  v,
const uint32_t  opaqueHandle 
)
static

Definition at line 987 of file zerospy_spatial_client.cpp.

References GetNumReadOperandsInIns(), and INS_IsIgnorable().

Referenced by main().

◆ InstrumentTrace()

static void InstrumentTrace ( TRACE  trace,
void *  f 
)
static

Definition at line 1090 of file zerospy_spatial_client.cpp.

References INS_IsIgnorable(), INS_MemoryReadSize(), and Update().

Referenced by main().

◆ IsFloatInstructionAndOkToApproximate()

static bool IsFloatInstructionAndOkToApproximate ( ADDRINT  ip)
inlinestatic

Definition at line 379 of file zerospy_spatial_client.cpp.

References ip, IsOkToApproximate(), and LoadSpyGlobals.

◆ IsFloatInstructionOld()

static bool IsFloatInstructionOld ( ADDRINT  ip)
inlinestatic

Definition at line 443 of file zerospy_spatial_client.cpp.

References ip, and LoadSpyGlobals.

◆ IsOkToApproximate()

static bool IsOkToApproximate ( xed_decoded_inst_t &  xedd)
inlinestatic

Definition at line 361 of file zerospy_spatial_client.cpp.

Referenced by IsFloatInstructionAndOkToApproximate().

◆ main()

◆ ObjRedundancyCompare()

static bool ObjRedundancyCompare ( const struct ObjRedundancy first,
const struct ObjRedundancy second 
)
inlinestatic

◆ PrintApproximationRedundancyPairs()

◆ PrintRedundancyPairs()

◆ PrintSize()

static void PrintSize ( uint64_t  size,
char  unit = 'B' 
)
inlinestatic

Definition at line 1125 of file zerospy_spatial_client.cpp.

References gTraceFile.

Referenced by PrintApproximationRedundancyPairs(), and PrintRedundancyPairs().

◆ ThreadFiniFunc()

static VOID ThreadFiniFunc ( THREADID  threadid,
const CONTEXT *  ctxt,
INT32  code,
VOID *  v 
)
static

Definition at line 1365 of file zerospy_spatial_client.cpp.

References ClientGetTLS(), and grandTotBytesLoad.

Referenced by main().

◆ ThreadStart()

static VOID ThreadStart ( THREADID  threadid,
CONTEXT *  ctxt,
INT32  flags,
VOID *  v 
)
static

Definition at line 1411 of file zerospy_spatial_client.cpp.

References client_tls_key, gSingleThreadedTData, gTraceFile, and InitThreadData().

Referenced by main().

◆ Update()

VOID Update ( uint32_t  bytes,
THREADID  threadId 
)
inline

Definition at line 1082 of file zerospy_spatial_client.cpp.

References RedSpyThreadData::bytesLoad, and ClientGetTLS().

Referenced by InstrumentTrace().

◆ Usage()

static INT32 Usage ( )
static

Definition at line 158 of file zerospy_spatial_client.cpp.

Referenced by main().

Variable Documentation

◆ ApproxRedMap

unordered_map<uint64_t, RedLogs> ApproxRedMap[THREAD_MAX]
static

◆ client_tls_key

TLS_KEY client_tls_key
static

Definition at line 144 of file zerospy_spatial_client.cpp.

Referenced by ClientGetTLS(), main(), and ThreadStart().

◆ dummy1

char dummy1[128]

Definition at line 120 of file zerospy_spatial_client.cpp.

◆ dummy2

char dummy2[128]

Definition at line 122 of file zerospy_spatial_client.cpp.

◆ flatten

void flatten

Definition at line 217 of file zerospy_spatial_client.cpp.

◆ grandTotBytesApproxRedLoad

uint64_t grandTotBytesApproxRedLoad

Definition at line 141 of file zerospy_spatial_client.cpp.

Referenced by FiniFunc(), and PrintApproximationRedundancyPairs().

◆ grandTotBytesLoad

uint64_t grandTotBytesLoad

Definition at line 139 of file zerospy_spatial_client.cpp.

Referenced by FiniFunc(), and ThreadFiniFunc().

◆ grandTotBytesRedLoad

uint64_t grandTotBytesRedLoad

Definition at line 140 of file zerospy_spatial_client.cpp.

Referenced by FiniFunc(), and PrintRedundancyPairs().

◆ gSingleThreadedTData

RedSpyThreadData* gSingleThreadedTData
static

Definition at line 145 of file zerospy_spatial_client.cpp.

Referenced by ClientGetTLS(), and ThreadStart().

◆ gTraceFile

◆ 

◆ OVERFLOW_CHECK

const uint8_t OVERFLOW_CHECK[] = { 0, 0, 0, 1, 2, 3, 4, 5, 6}
static

Definition at line 199 of file zerospy_spatial_client.cpp.

◆ READ_ACCESS_STATES

const uint64_t READ_ACCESS_STATES[] = { 0, ONE_BYTE_READ_ACTION, TWO_BYTE_READ_ACTION, 0, FOUR_BYTE_READ_ACTION, 0, 0, 0, EIGHT_BYTE_READ_ACTION}
static

Definition at line 197 of file zerospy_spatial_client.cpp.

◆ redload_approx_metric_id

int redload_approx_metric_id = 0

Definition at line 136 of file zerospy_spatial_client.cpp.

◆ redload_metric_id

int redload_metric_id = 0

Definition at line 135 of file zerospy_spatial_client.cpp.

◆ RedMap

unordered_map<uint64_t, RedLogs> RedMap[THREAD_MAX]
static

◆ WRITE_ACCESS_STATES

const uint64_t WRITE_ACCESS_STATES[] = { 0, ONE_BYTE_WRITE_ACTION, TWO_BYTE_WRITE_ACTION, 0, FOUR_BYTE_WRITE_ACTION, 0, 0, 0, EIGHT_BYTE_WRITE_ACTION}
static

Definition at line 198 of file zerospy_spatial_client.cpp.

◆ xedState

xed_state_t xedState

Definition at line 121 of file zerospy_spatial_client.cpp.