Skip to content

Commit b5294ee

Browse files
authored
[DeviceASAN][NFC] Code Restructure (#2232)
1 parent 3609cd6 commit b5294ee

34 files changed

+533
-402
lines changed

source/loader/CMakeLists.txt

Lines changed: 30 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -131,45 +131,43 @@ if(UR_ENABLE_SANITIZER)
131131
target_sources(ur_loader
132132
PRIVATE
133133
${CMAKE_CURRENT_SOURCE_DIR}/../ur/ur.cpp
134-
${CMAKE_CURRENT_SOURCE_DIR}/layers/sanitizer/asan_allocator.cpp
135-
${CMAKE_CURRENT_SOURCE_DIR}/layers/sanitizer/asan_allocator.hpp
136-
${CMAKE_CURRENT_SOURCE_DIR}/layers/sanitizer/asan_buffer.cpp
137-
${CMAKE_CURRENT_SOURCE_DIR}/layers/sanitizer/asan_buffer.hpp
138-
${CMAKE_CURRENT_SOURCE_DIR}/layers/sanitizer/asan_interceptor.cpp
139-
${CMAKE_CURRENT_SOURCE_DIR}/layers/sanitizer/asan_interceptor.hpp
140-
${CMAKE_CURRENT_SOURCE_DIR}/layers/sanitizer/asan_libdevice.hpp
141-
${CMAKE_CURRENT_SOURCE_DIR}/layers/sanitizer/asan_options.cpp
142-
${CMAKE_CURRENT_SOURCE_DIR}/layers/sanitizer/asan_options.hpp
143-
${CMAKE_CURRENT_SOURCE_DIR}/layers/sanitizer/asan_quarantine.cpp
144-
${CMAKE_CURRENT_SOURCE_DIR}/layers/sanitizer/asan_quarantine.hpp
145-
${CMAKE_CURRENT_SOURCE_DIR}/layers/sanitizer/asan_report.cpp
146-
${CMAKE_CURRENT_SOURCE_DIR}/layers/sanitizer/asan_report.hpp
147-
${CMAKE_CURRENT_SOURCE_DIR}/layers/sanitizer/asan_shadow.cpp
148-
${CMAKE_CURRENT_SOURCE_DIR}/layers/sanitizer/asan_shadow.hpp
149-
${CMAKE_CURRENT_SOURCE_DIR}/layers/sanitizer/asan_statistics.cpp
150-
${CMAKE_CURRENT_SOURCE_DIR}/layers/sanitizer/asan_statistics.hpp
151-
${CMAKE_CURRENT_SOURCE_DIR}/layers/sanitizer/asan_validator.cpp
152-
${CMAKE_CURRENT_SOURCE_DIR}/layers/sanitizer/asan_validator.hpp
153-
${CMAKE_CURRENT_SOURCE_DIR}/layers/sanitizer/common.hpp
154-
${CMAKE_CURRENT_SOURCE_DIR}/layers/sanitizer/stacktrace.cpp
155-
${CMAKE_CURRENT_SOURCE_DIR}/layers/sanitizer/stacktrace.hpp
156-
${CMAKE_CURRENT_SOURCE_DIR}/layers/sanitizer/ur_sanddi.cpp
134+
${CMAKE_CURRENT_SOURCE_DIR}/layers/sanitizer/asan/asan_allocator.cpp
135+
${CMAKE_CURRENT_SOURCE_DIR}/layers/sanitizer/asan/asan_allocator.hpp
136+
${CMAKE_CURRENT_SOURCE_DIR}/layers/sanitizer/asan/asan_buffer.cpp
137+
${CMAKE_CURRENT_SOURCE_DIR}/layers/sanitizer/asan/asan_buffer.hpp
138+
${CMAKE_CURRENT_SOURCE_DIR}/layers/sanitizer/asan/asan_ddi.cpp
139+
${CMAKE_CURRENT_SOURCE_DIR}/layers/sanitizer/asan/asan_interceptor.cpp
140+
${CMAKE_CURRENT_SOURCE_DIR}/layers/sanitizer/asan/asan_interceptor.hpp
141+
${CMAKE_CURRENT_SOURCE_DIR}/layers/sanitizer/asan/asan_libdevice.hpp
142+
${CMAKE_CURRENT_SOURCE_DIR}/layers/sanitizer/asan/asan_options.cpp
143+
${CMAKE_CURRENT_SOURCE_DIR}/layers/sanitizer/asan/asan_options.hpp
144+
${CMAKE_CURRENT_SOURCE_DIR}/layers/sanitizer/asan/asan_quarantine.cpp
145+
${CMAKE_CURRENT_SOURCE_DIR}/layers/sanitizer/asan/asan_quarantine.hpp
146+
${CMAKE_CURRENT_SOURCE_DIR}/layers/sanitizer/asan/asan_report.cpp
147+
${CMAKE_CURRENT_SOURCE_DIR}/layers/sanitizer/asan/asan_report.hpp
148+
${CMAKE_CURRENT_SOURCE_DIR}/layers/sanitizer/asan/asan_shadow.cpp
149+
${CMAKE_CURRENT_SOURCE_DIR}/layers/sanitizer/asan/asan_shadow.hpp
150+
${CMAKE_CURRENT_SOURCE_DIR}/layers/sanitizer/asan/asan_statistics.cpp
151+
${CMAKE_CURRENT_SOURCE_DIR}/layers/sanitizer/asan/asan_statistics.hpp
152+
${CMAKE_CURRENT_SOURCE_DIR}/layers/sanitizer/asan/asan_validator.cpp
153+
${CMAKE_CURRENT_SOURCE_DIR}/layers/sanitizer/asan/asan_validator.hpp
154+
${CMAKE_CURRENT_SOURCE_DIR}/layers/sanitizer/sanitizer_common/linux/backtrace.cpp
155+
${CMAKE_CURRENT_SOURCE_DIR}/layers/sanitizer/sanitizer_common/linux/sanitizer_utils.cpp
156+
${CMAKE_CURRENT_SOURCE_DIR}/layers/sanitizer/sanitizer_common/sanitizer_allocator.hpp
157+
${CMAKE_CURRENT_SOURCE_DIR}/layers/sanitizer/sanitizer_common/sanitizer_common.hpp
158+
${CMAKE_CURRENT_SOURCE_DIR}/layers/sanitizer/sanitizer_common/sanitizer_libdevice.hpp
159+
${CMAKE_CURRENT_SOURCE_DIR}/layers/sanitizer/sanitizer_common/sanitizer_stacktrace.cpp
160+
${CMAKE_CURRENT_SOURCE_DIR}/layers/sanitizer/sanitizer_common/sanitizer_stacktrace.hpp
161+
${CMAKE_CURRENT_SOURCE_DIR}/layers/sanitizer/sanitizer_common/sanitizer_utils.cpp
162+
${CMAKE_CURRENT_SOURCE_DIR}/layers/sanitizer/sanitizer_common/sanitizer_utils.hpp
157163
${CMAKE_CURRENT_SOURCE_DIR}/layers/sanitizer/ur_sanitizer_layer.cpp
158164
${CMAKE_CURRENT_SOURCE_DIR}/layers/sanitizer/ur_sanitizer_layer.hpp
159-
${CMAKE_CURRENT_SOURCE_DIR}/layers/sanitizer/ur_sanitizer_utils.cpp
160-
${CMAKE_CURRENT_SOURCE_DIR}/layers/sanitizer/ur_sanitizer_utils.hpp
161-
)
162-
163-
target_sources(ur_loader
164-
PRIVATE
165-
${CMAKE_CURRENT_SOURCE_DIR}/layers/sanitizer/linux/backtrace.cpp
166-
${CMAKE_CURRENT_SOURCE_DIR}/layers/sanitizer/linux/sanitizer_utils.cpp
167165
)
168166

169167
if(UR_ENABLE_SYMBOLIZER)
170168
target_sources(ur_loader
171169
PRIVATE
172-
${CMAKE_CURRENT_SOURCE_DIR}/layers/sanitizer/linux/symbolizer.cpp
170+
${CMAKE_CURRENT_SOURCE_DIR}/layers/sanitizer/sanitizer_common/linux/symbolizer.cpp
173171
)
174172
target_include_directories(ur_loader PRIVATE ${LLVM_INCLUDE_DIRS})
175173
target_link_libraries(ur_loader PRIVATE LLVMSupport LLVMSymbolize)

source/loader/layers/sanitizer/asan_allocator.cpp renamed to source/loader/layers/sanitizer/asan/asan_allocator.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
#include "ur_sanitizer_layer.hpp"
1515

1616
namespace ur_sanitizer_layer {
17+
namespace asan {
1718

1819
void AllocInfo::print() {
1920
getContext()->logger.info(
@@ -22,4 +23,5 @@ void AllocInfo::print() {
2223
(void *)(UserEnd), AllocSize, ToString(Type));
2324
}
2425

26+
} // namespace asan
2527
} // namespace ur_sanitizer_layer

source/loader/layers/sanitizer/asan_allocator.hpp renamed to source/loader/layers/sanitizer/asan/asan_allocator.hpp

Lines changed: 5 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -12,22 +12,12 @@
1212

1313
#pragma once
1414

15-
#include "common.hpp"
16-
#include "stacktrace.hpp"
17-
18-
#include <map>
19-
#include <memory>
15+
#include "sanitizer_common/sanitizer_allocator.hpp"
16+
#include "sanitizer_common/sanitizer_common.hpp"
17+
#include "sanitizer_common/sanitizer_stacktrace.hpp"
2018

2119
namespace ur_sanitizer_layer {
22-
23-
enum class AllocType : uint32_t {
24-
UNKNOWN,
25-
DEVICE_USM,
26-
SHARED_USM,
27-
HOST_USM,
28-
MEM_BUFFER,
29-
DEVICE_GLOBAL
30-
};
20+
namespace asan {
3121

3222
struct AllocInfo {
3323
uptr AllocBegin = 0;
@@ -51,21 +41,5 @@ struct AllocInfo {
5141
using AllocationMap = std::map<uptr, std::shared_ptr<AllocInfo>>;
5242
using AllocationIterator = AllocationMap::iterator;
5343

54-
inline const char *ToString(AllocType Type) {
55-
switch (Type) {
56-
case AllocType::DEVICE_USM:
57-
return "Device USM";
58-
case AllocType::HOST_USM:
59-
return "Host USM";
60-
case AllocType::SHARED_USM:
61-
return "Shared USM";
62-
case AllocType::MEM_BUFFER:
63-
return "Memory Buffer";
64-
case AllocType::DEVICE_GLOBAL:
65-
return "Device Global";
66-
default:
67-
return "Unknown Type";
68-
}
69-
}
70-
44+
} // namespace asan
7145
} // namespace ur_sanitizer_layer

source/loader/layers/sanitizer/asan_buffer.cpp renamed to source/loader/layers/sanitizer/asan/asan_buffer.cpp

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,11 @@
1212

1313
#include "asan_buffer.hpp"
1414
#include "asan_interceptor.hpp"
15+
#include "sanitizer_common/sanitizer_utils.hpp"
1516
#include "ur_sanitizer_layer.hpp"
16-
#include "ur_sanitizer_utils.hpp"
1717

1818
namespace ur_sanitizer_layer {
19+
namespace asan {
1920

2021
ur_result_t EnqueueMemCopyRectHelper(
2122
ur_queue_handle_t Queue, char *pSrc, char *pDst, ur_rect_offset_t SrcOffset,
@@ -91,7 +92,7 @@ ur_result_t MemBuffer::getHandle(ur_device_handle_t Device, char *&Handle) {
9192
ur_usm_desc_t USMDesc{};
9293
USMDesc.align = getAlignment();
9394
ur_usm_pool_handle_t Pool{};
94-
URes = getContext()->interceptor->allocateMemory(
95+
URes = getAsanInterceptor()->allocateMemory(
9596
Context, Device, &USMDesc, Pool, Size, AllocType::MEM_BUFFER,
9697
ur_cast<void **>(&Allocation));
9798
if (URes != UR_RESULT_SUCCESS) {
@@ -129,7 +130,7 @@ ur_result_t MemBuffer::getHandle(ur_device_handle_t Device, char *&Handle) {
129130
ur_usm_desc_t USMDesc{};
130131
USMDesc.align = getAlignment();
131132
ur_usm_pool_handle_t Pool{};
132-
URes = getContext()->interceptor->allocateMemory(
133+
URes = getAsanInterceptor()->allocateMemory(
133134
Context, nullptr, &USMDesc, Pool, Size, AllocType::HOST_USM,
134135
ur_cast<void **>(&HostAllocation));
135136
if (URes != UR_RESULT_SUCCESS) {
@@ -174,8 +175,7 @@ ur_result_t MemBuffer::getHandle(ur_device_handle_t Device, char *&Handle) {
174175

175176
ur_result_t MemBuffer::free() {
176177
for (const auto &[_, Ptr] : Allocations) {
177-
ur_result_t URes =
178-
getContext()->interceptor->releaseMemory(Context, Ptr);
178+
ur_result_t URes = getAsanInterceptor()->releaseMemory(Context, Ptr);
179179
if (URes != UR_RESULT_SUCCESS) {
180180
getContext()->logger.error("Failed to free buffer handle {}", Ptr);
181181
return URes;
@@ -200,4 +200,5 @@ size_t MemBuffer::getAlignment() {
200200
return Alignment;
201201
}
202202

203+
} // namespace asan
203204
} // namespace ur_sanitizer_layer

source/loader/layers/sanitizer/asan_buffer.hpp renamed to source/loader/layers/sanitizer/asan/asan_buffer.hpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,10 @@
1616
#include <memory>
1717
#include <optional>
1818

19-
#include "common.hpp"
19+
#include "ur/ur.hpp"
2020

2121
namespace ur_sanitizer_layer {
22+
namespace asan {
2223

2324
struct MemBuffer {
2425
// Buffer constructor
@@ -77,4 +78,5 @@ ur_result_t EnqueueMemCopyRectHelper(
7778
bool Blocking, uint32_t NumEventsInWaitList,
7879
const ur_event_handle_t *EventWaitList, ur_event_handle_t *Event);
7980

81+
} // namespace asan
8082
} // namespace ur_sanitizer_layer

0 commit comments

Comments
 (0)