36#include "debug/RubyTest.hh"
42 : m_num_writers(_num_writers), m_num_readers(_num_readers),
48 const int size2 = 100;
50 DPRINTF(RubyTest,
"Adding false sharing checks\n");
53 for (
int i = 0;
i < size1;
i++) {
59 DPRINTF(RubyTest,
"Adding cache conflict checks\n");
63 for (
int i = 0;
i < size2;
i++) {
69 DPRINTF(RubyTest,
"Adding cache conflict checks2\n");
71 for (
int i = 0;
i < size2;
i++) {
81 for (
int i = 0;
i < size;
i++)
90 panic(
"Check not aligned");
102 DPRINTF(RubyTest,
"Adding check for address: %s\n", address);
123 DPRINTF(RubyTest,
"Looking for check by address: %s\n", address);
131 assert(check != NULL);
RubyTester * m_tester_ptr
void print(std::ostream &out) const
std::unordered_map< Addr, Check * > m_lookup_map
std::vector< Check * > m_check_vector
Check * getCheck(Addr address)
void addCheck(Addr address)
CheckTable(int _num_writers, int _num_readers, RubyTester *_tester)
static constexpr std::enable_if_t< std::is_integral_v< T >, int > floorLog2(T x)
std::enable_if_t< std::is_integral_v< T >, T > random()
Use the SFINAE idiom to choose an implementation based on whether the type is integral or floating po...
#define panic(...)
This implements a cprintf based panic() function.
Addr bitSelect(Addr addr, unsigned int small, unsigned int big)
Copyright (c) 2024 - Pranith Kumar Copyright (c) 2020 Inria All rights reserved.
const int CHECK_SIZE_BITS
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.