MCPcopy Create free account
hub / github.com/Snapchat/KeyDB / TEST_F

Function TEST_F

deps/memkind/src/test/get_arena_test.cpp:50–87  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

48}
49
50TEST_F(GetArenaTest, test_TC_MEMKIND_ThreadHash)
51{
52 int num_threads = omp_get_max_threads();
53 std::vector<unsigned int> arena_idx(num_threads);
54 unsigned int thread_idx, idx;
55 int err = 0;
56 size_t size = 0;
57 int i;
58 unsigned max_collisions, collisions;
59 const unsigned collisions_limit = 5;
60
61 //Initialize kind
62 memkind_malloc(MEMKIND_HBW, 0);
63
64 #pragma omp parallel shared(arena_idx) private(thread_idx)
65 {
66 thread_idx = omp_get_thread_num();
67 err = memkind_thread_get_arena(MEMKIND_HBW, &(arena_idx[thread_idx]), size);
68 }
69 ASSERT_TRUE(err == 0);
70 std::sort(arena_idx.begin(), arena_idx.end(), uint_comp);
71 idx = arena_idx[0];
72 collisions = 0;
73 max_collisions = 0;
74 for (i = 1; i < num_threads; ++i) {
75 if (arena_idx[i] == idx) {
76 collisions++;
77 } else {
78 if (collisions > max_collisions) {
79 max_collisions = collisions;
80 }
81 idx = arena_idx[i];
82 collisions = 0;
83 }
84 }
85 EXPECT_LE(max_collisions, collisions_limit);
86 RecordProperty("max_collisions", max_collisions);
87}

Callers

nothing calls this directly

Calls 5

memkind_mallocFunction · 0.85
memkind_thread_get_arenaFunction · 0.85
sortFunction · 0.85
beginMethod · 0.45
endMethod · 0.45

Tested by

no test coverage detected