Skip to content

Commit ca5b6d4

Browse files
committed
a
1 parent 1fb932d commit ca5b6d4

File tree

6 files changed

+17
-32
lines changed

6 files changed

+17
-32
lines changed

benchmark/benchmark.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,6 @@ UMF_BENCHMARK_TEMPLATE_DEFINE(multiple_malloc_free_benchmark,
9696
pool_allocator<disjoint_pool<os_provider>>);
9797
UMF_BENCHMARK_REGISTER_F(multiple_malloc_free_benchmark, disjoint_pool_uniform)
9898
->Apply(&default_multiple_alloc_uniform_size)
99-
->Apply(&singlethreaded)
10099
->Apply(&multithreaded);
101100

102101
#ifdef UMF_POOL_JEMALLOC_ENABLED

src/critnib/critnib.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,6 @@ struct critnib_leaf {
119119

120120
struct critnib {
121121
struct critnib_node *root;
122-
uint64_t remove_count;
123122

124123
/* pool of freed nodes: singly linked list, next at child[0] */
125124
struct critnib_node *deleted_node;
@@ -129,6 +128,8 @@ struct critnib {
129128
struct critnib_node *pending_del_nodes[DELETED_LIFE];
130129
struct critnib_leaf *pending_del_leaves[DELETED_LIFE];
131130

131+
uint64_t remove_count;
132+
132133
struct utils_mutex_t mutex; /* writes/removes */
133134
};
134135

src/pool/pool_disjoint.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -444,7 +444,6 @@ static bool bucket_can_pool(bucket_t *bucket) {
444444
&bucket->shared_limits->total_size, size_to_add);
445445

446446
if (previous_size + size_to_add <= bucket->shared_limits->max_size) {
447-
448447
++bucket->chunked_slabs_in_pool;
449448
bucket_update_stats(bucket, -1, 1);
450449
return true;

src/utils/utils_concurrency.h

Lines changed: 13 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
#include "utils_windows_intrin.h"
2222

2323
#pragma intrinsic(_BitScanForward64)
24-
#else
24+
#else /* !_WIN32 */
2525
#include <pthread.h>
2626

2727
#ifndef __cplusplus
@@ -37,7 +37,7 @@ using std::memory_order_release;
3737

3838
#endif /* __cplusplus */
3939

40-
#endif /* _WIN32 */
40+
#endif /* !_WIN32 */
4141

4242
#include "utils_common.h"
4343
#include "utils_sanitizers.h"
@@ -106,29 +106,25 @@ static __inline void utils_atomic_load_acquire_u64(uint64_t *ptr,
106106
// NOTE: Windows cl complains about direct accessing 'ptr' which is next
107107
// accessed using Interlocked* functions (warning 28112 - disabled)
108108
ASSERT_IS_ALIGNED((uintptr_t)ptr, 8);
109+
110+
// On Windows, there is no equivalent to __atomic_load, so we use cmpxchg
111+
// with 0, 0 here. This will always return the value under the pointer
112+
// without writing anything.
109113
LONG64 ret = InterlockedCompareExchange64((LONG64 volatile *)ptr, 0, 0);
110-
utils_annotate_acquire(ptr);
114+
//utils_annotate_acquire(ptr);
111115
*out = *(uint64_t *)&ret;
112116
}
113117

114118
static __inline void utils_atomic_load_acquire_ptr(void **ptr, void **out) {
115119
ASSERT_IS_ALIGNED((uintptr_t)ptr, 8);
116120
uintptr_t ret = (uintptr_t)InterlockedCompareExchangePointer(ptr, 0, 0);
117-
utils_annotate_acquire((void *)ptr);
121+
//utils_annotate_acquire((void *)ptr);
118122
*(uintptr_t *)out = ret;
119123
}
120124

121-
static __inline void utils_atomic_store_release_u64(uint64_t *ptr,
122-
uint64_t *val) {
123-
ASSERT_IS_ALIGNED((uintptr_t)ptr, 8);
124-
ASSERT_IS_ALIGNED((uintptr_t)val, 8);
125-
utils_annotate_release(ptr);
126-
InterlockedExchange64((LONG64 volatile *)ptr, *(LONG64 *)val);
127-
}
128-
129125
static __inline void utils_atomic_store_release_ptr(void **ptr, void *val) {
130126
ASSERT_IS_ALIGNED((uintptr_t)ptr, 8);
131-
utils_annotate_release(ptr);
127+
//utils_annotate_release(ptr);
132128
InterlockedExchangePointer(ptr, val);
133129
}
134130

@@ -146,14 +142,12 @@ static __inline uint64_t utils_atomic_decrement_u64(uint64_t *ptr) {
146142

147143
static __inline uint64_t utils_fetch_and_add_u64(uint64_t *ptr, uint64_t val) {
148144
ASSERT_IS_ALIGNED((uintptr_t)ptr, 8);
149-
ASSERT_IS_ALIGNED((uintptr_t)&val, 8);
150145
// return the value that had previously been in *ptr
151146
return InterlockedExchangeAdd64((LONG64 volatile *)(ptr), val);
152147
}
153148

154149
static __inline uint64_t utils_fetch_and_sub_u64(uint64_t *ptr, uint64_t val) {
155150
ASSERT_IS_ALIGNED((uintptr_t)ptr, 8);
156-
ASSERT_IS_ALIGNED((uintptr_t)&val, 8);
157151
// return the value that had previously been in *ptr
158152
// NOTE: on Windows there is no *Sub* version of InterlockedExchange
159153
return InterlockedExchangeAdd64((LONG64 volatile *)(ptr), -(LONG64)val);
@@ -193,27 +187,19 @@ static inline void utils_atomic_load_acquire_u64(uint64_t *ptr, uint64_t *out) {
193187
ASSERT_IS_ALIGNED((uintptr_t)ptr, 8);
194188
ASSERT_IS_ALIGNED((uintptr_t)out, 8);
195189
__atomic_load(ptr, out, memory_order_acquire);
196-
utils_annotate_acquire(ptr);
190+
//utils_annotate_acquire(ptr);
197191
}
198192

199193
static inline void utils_atomic_load_acquire_ptr(void **ptr, void **out) {
200194
ASSERT_IS_ALIGNED((uintptr_t)ptr, 8);
201195
ASSERT_IS_ALIGNED((uintptr_t)out, 8);
202-
*out = (void *)__atomic_load_n((uintptr_t *)ptr, memory_order_acquire);
203-
utils_annotate_acquire((void *)ptr);
204-
}
205-
206-
static inline void utils_atomic_store_release_u64(uint64_t *ptr,
207-
uint64_t *val) {
208-
ASSERT_IS_ALIGNED((uintptr_t)ptr, 8);
209-
ASSERT_IS_ALIGNED((uintptr_t)val, 8);
210-
utils_annotate_release(ptr);
211-
__atomic_store(ptr, val, memory_order_release);
196+
__atomic_load((uintptr_t *)ptr, (uintptr_t *)out, memory_order_acquire);
197+
//utils_annotate_acquire((void *)ptr);
212198
}
213199

214200
static inline void utils_atomic_store_release_ptr(void **ptr, void *val) {
215201
ASSERT_IS_ALIGNED((uintptr_t)ptr, 8);
216-
utils_annotate_release(ptr);
202+
//utils_annotate_release(ptr);
217203
__atomic_store_n((uintptr_t *)ptr, (uintptr_t)val, memory_order_release);
218204
}
219205

src/utils/utils_level_zero.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,11 @@
55
* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
66
*/
77

8-
#include "utils_level_zero.h"
9-
108
#include <memory>
119
#include <stdlib.h>
1210

1311
#include "utils_concurrency.h"
12+
#include "utils_level_zero.h"
1413
#include "utils_load_library.h"
1514

1615
#include "ze_api.h"

test/providers/cuda_helpers.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
#include <memory>
1010
#include <stdlib.h>
1111

12+
#include "base.hpp"
1213
#include "cuda_helpers.h"
1314
#include "utils_concurrency.h"
1415
#include "utils_load_library.h"

0 commit comments

Comments
 (0)