From 41ad05eb527ef0239560965ad25268a689671902 Mon Sep 17 00:00:00 2001 From: Compute-Runtime-Validation Date: Wed, 12 Apr 2023 03:53:42 +0200 Subject: [PATCH] Revert "l0_feature: Use L0 Loader teardown callback" This reverts commit d31b950b9a76f8b8b19d89d434cffb58a9ca2396. Signed-off-by: Compute-Runtime-Validation --- level_zero/core/source/CMakeLists.txt | 2 - level_zero/core/source/global_teardown.cpp | 38 ------------------- level_zero/core/source/global_teardown.h | 19 ---------- .../core/source/linux/driver_teardown.cpp | 14 +++++-- .../core/source/windows/driver_teardown.cpp | 14 +++++-- level_zero/core/test/common/CMakeLists.txt | 1 - .../common/test_l0_loader_lib/CMakeLists.txt | 21 ---------- .../test_l0_loader_lib_lin.cpp | 12 ------ .../test_l0_loader_lib_win.cpp | 12 ------ .../core/test/unit_tests/CMakeLists.txt | 2 +- level_zero/core/test/unit_tests/main.cpp | 19 ---------- .../unit_tests/os_interface/CMakeLists.txt | 2 - .../os_interface/global_teardown_tests.cpp | 34 ----------------- .../os_interface/global_teardown_tests.h | 15 -------- .../os_interface/linux/CMakeLists.txt | 1 - .../linux/global_teardown_test_values.cpp | 13 ------- .../os_interface/windows/CMakeLists.txt | 1 - .../windows/global_teardown_test_values.cpp | 13 ------- .../test/common/mocks/linux/mock_dlopen.cpp | 3 +- 19 files changed, 22 insertions(+), 214 deletions(-) delete mode 100644 level_zero/core/source/global_teardown.cpp delete mode 100644 level_zero/core/source/global_teardown.h delete mode 100644 level_zero/core/test/common/test_l0_loader_lib/CMakeLists.txt delete mode 100644 level_zero/core/test/common/test_l0_loader_lib/test_l0_loader_lib_lin.cpp delete mode 100644 level_zero/core/test/common/test_l0_loader_lib/test_l0_loader_lib_win.cpp delete mode 100644 level_zero/core/test/unit_tests/os_interface/global_teardown_tests.cpp delete mode 100644 level_zero/core/test/unit_tests/os_interface/global_teardown_tests.h delete mode 100644 level_zero/core/test/unit_tests/os_interface/linux/global_teardown_test_values.cpp delete mode 100644 level_zero/core/test/unit_tests/os_interface/windows/global_teardown_test_values.cpp diff --git a/level_zero/core/source/CMakeLists.txt b/level_zero/core/source/CMakeLists.txt index d3bb5db815..df12c9241a 100644 --- a/level_zero/core/source/CMakeLists.txt +++ b/level_zero/core/source/CMakeLists.txt @@ -8,8 +8,6 @@ target_sources(${L0_STATIC_LIB_NAME} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/CMakeLists.txt ${CMAKE_CURRENT_SOURCE_DIR}/get_extension_function_lookup_map.h - ${CMAKE_CURRENT_SOURCE_DIR}/global_teardown.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/global_teardown.h ${CMAKE_CURRENT_SOURCE_DIR}${BRANCH_DIR_SUFFIX}get_extension_function_lookup_map.cpp ) diff --git a/level_zero/core/source/global_teardown.cpp b/level_zero/core/source/global_teardown.cpp deleted file mode 100644 index 3dea7d2e45..0000000000 --- a/level_zero/core/source/global_teardown.cpp +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Copyright (C) 2023 Intel Corporation - * - * SPDX-License-Identifier: MIT - * - */ - -#include "level_zero/core/source/global_teardown.h" - -#include "shared/source/os_interface/os_library.h" - -#include "level_zero/core/source/driver/driver_handle_imp.h" -#include "level_zero/sysman/source/sysman_driver_handle_imp.h" - -namespace L0 { - -ze_result_t loaderDriverTeardown(std::string loaderLibraryName) { - std::unique_ptr loaderLibrary = std::unique_ptr{NEO::OsLibrary::load(loaderLibraryName.c_str())}; - if (loaderLibrary) { - zelSetDriverTeardown_fn setDriverTeardown = reinterpret_cast(loaderLibrary->getProcAddress("zelSetDriverTeardown")); - if (setDriverTeardown) { - return setDriverTeardown(); - } - } - return ZE_RESULT_ERROR_DEPENDENCY_UNAVAILABLE; -} - -void globalDriverTeardown() { - if (GlobalDriver != nullptr) { - delete GlobalDriver; - GlobalDriver = nullptr; - } - if (Sysman::GlobalSysmanDriver != nullptr) { - delete Sysman::GlobalSysmanDriver; - Sysman::GlobalSysmanDriver = nullptr; - } -} -} // namespace L0 diff --git a/level_zero/core/source/global_teardown.h b/level_zero/core/source/global_teardown.h deleted file mode 100644 index 5fb6cc0f78..0000000000 --- a/level_zero/core/source/global_teardown.h +++ /dev/null @@ -1,19 +0,0 @@ -/* - * Copyright (C) 2023 Intel Corporation - * - * SPDX-License-Identifier: MIT - * - */ - -#pragma once -#include - -#include - -namespace L0 { -using zelSetDriverTeardown_fn = ze_result_t (*)(); -static const std::string loaderLibraryFilename = "ze_loader"; - -void globalDriverTeardown(); -ze_result_t loaderDriverTeardown(std::string loaderLibraryName); -} // namespace L0 \ No newline at end of file diff --git a/level_zero/core/source/linux/driver_teardown.cpp b/level_zero/core/source/linux/driver_teardown.cpp index 9e80430c88..6bd2fae3aa 100644 --- a/level_zero/core/source/linux/driver_teardown.cpp +++ b/level_zero/core/source/linux/driver_teardown.cpp @@ -5,12 +5,18 @@ * */ -#include "level_zero/core/source/global_teardown.h" +#include "level_zero/core/source/driver/driver_handle_imp.h" +#include "level_zero/sysman/source/sysman_driver_handle_imp.h" using namespace L0; void __attribute__((destructor)) driverHandleDestructor() { - std::string loaderLibraryName = "lib" + L0::loaderLibraryFilename + ".so.1"; - loaderDriverTeardown(loaderLibraryName); - globalDriverTeardown(); + if (GlobalDriver != nullptr) { + delete GlobalDriver; + GlobalDriver = nullptr; + } + if (Sysman::GlobalSysmanDriver != nullptr) { + delete Sysman::GlobalSysmanDriver; + Sysman::GlobalSysmanDriver = nullptr; + } } \ No newline at end of file diff --git a/level_zero/core/source/windows/driver_teardown.cpp b/level_zero/core/source/windows/driver_teardown.cpp index f1fa59ce75..11e38443ad 100644 --- a/level_zero/core/source/windows/driver_teardown.cpp +++ b/level_zero/core/source/windows/driver_teardown.cpp @@ -5,7 +5,8 @@ * */ -#include "level_zero/core/source/global_teardown.h" +#include "level_zero/core/source/driver/driver_handle_imp.h" +#include "level_zero/sysman/source/sysman_driver_handle_imp.h" #include "level_zero/tools/source/sysman/os_sysman_driver.h" #include "level_zero/tools/source/sysman/sysman.h" @@ -15,9 +16,14 @@ using namespace L0; BOOL APIENTRY DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) { if (fdwReason == DLL_PROCESS_DETACH) { - std::string loaderLibraryName = L0::loaderLibraryFilename + ".dll"; - loaderDriverTeardown(loaderLibraryName); - globalDriverTeardown(); + if (GlobalDriver != nullptr) { + delete GlobalDriver; + GlobalDriver = nullptr; + } + if (Sysman::GlobalSysmanDriver != nullptr) { + delete Sysman::GlobalSysmanDriver; + Sysman::GlobalSysmanDriver = nullptr; + } if (GlobalOsSysmanDriver != nullptr) { delete GlobalOsSysmanDriver; GlobalOsSysmanDriver = nullptr; diff --git a/level_zero/core/test/common/CMakeLists.txt b/level_zero/core/test/common/CMakeLists.txt index fb26ed0e24..d88b666732 100644 --- a/level_zero/core/test/common/CMakeLists.txt +++ b/level_zero/core/test/common/CMakeLists.txt @@ -40,4 +40,3 @@ apply_macro_for_each_core_type("TESTED") add_custom_target(l0_common_test_kernels DEPENDS ${l0_test_kernel_outputs} ${l0_bindless_test_kernel_outputs} copy_compiler_files) set_target_properties(l0_common_test_kernels PROPERTIES FOLDER ${TARGET_NAME_L0}) add_dependencies(prepare_test_kernels_for_l0 l0_common_test_kernels) -add_subdirectories() \ No newline at end of file diff --git a/level_zero/core/test/common/test_l0_loader_lib/CMakeLists.txt b/level_zero/core/test/common/test_l0_loader_lib/CMakeLists.txt deleted file mode 100644 index 1c052540c1..0000000000 --- a/level_zero/core/test/common/test_l0_loader_lib/CMakeLists.txt +++ /dev/null @@ -1,21 +0,0 @@ -# -# Copyright (C) 2023 Intel Corporation -# -# SPDX-License-Identifier: MIT -# - -project(test_l0_loader_lib) - -if(WIN32) - set(OS_SUFFIX win) -else() - set(OS_SUFFIX lin) -endif() - -add_library(test_l0_loader_lib SHARED test_l0_loader_lib_${OS_SUFFIX}.cpp) - -create_project_source_tree(test_l0_loader_lib) - -set_target_properties(test_l0_loader_lib PROPERTIES FOLDER "test mocks") -set_property(TARGET test_l0_loader_lib APPEND_STRING PROPERTY COMPILE_FLAGS ${ASAN_FLAGS}) - diff --git a/level_zero/core/test/common/test_l0_loader_lib/test_l0_loader_lib_lin.cpp b/level_zero/core/test/common/test_l0_loader_lib/test_l0_loader_lib_lin.cpp deleted file mode 100644 index ec14828299..0000000000 --- a/level_zero/core/test/common/test_l0_loader_lib/test_l0_loader_lib_lin.cpp +++ /dev/null @@ -1,12 +0,0 @@ -/* - * Copyright (C) 2023 Intel Corporation - * - * SPDX-License-Identifier: MIT - * - */ - -#include - -extern "C" __attribute__((visibility("default"))) ze_result_t zelSetDriverTeardown() { - return ZE_RESULT_SUCCESS; -} diff --git a/level_zero/core/test/common/test_l0_loader_lib/test_l0_loader_lib_win.cpp b/level_zero/core/test/common/test_l0_loader_lib/test_l0_loader_lib_win.cpp deleted file mode 100644 index 4fd39bd043..0000000000 --- a/level_zero/core/test/common/test_l0_loader_lib/test_l0_loader_lib_win.cpp +++ /dev/null @@ -1,12 +0,0 @@ -/* - * Copyright (C) 2023 Intel Corporation - * - * SPDX-License-Identifier: MIT - * - */ - -#include - -extern "C" __declspec(dllexport) ze_result_t zelSetDriverTeardown() { - return ZE_RESULT_SUCCESS; -} diff --git a/level_zero/core/test/unit_tests/CMakeLists.txt b/level_zero/core/test/unit_tests/CMakeLists.txt index 561398ad77..ff57f5aba0 100644 --- a/level_zero/core/test/unit_tests/CMakeLists.txt +++ b/level_zero/core/test/unit_tests/CMakeLists.txt @@ -102,6 +102,6 @@ if(MSVC) ) endif() -add_dependencies(unit_tests ${TARGET_NAME} prepare_test_kernels_for_l0 test_l0_loader_lib) +add_dependencies(unit_tests ${TARGET_NAME} prepare_test_kernels_for_l0) create_source_tree(${TARGET_NAME} ${L0_ROOT_DIR}/..) diff --git a/level_zero/core/test/unit_tests/main.cpp b/level_zero/core/test/unit_tests/main.cpp index de78f66bf9..c4f62c811c 100644 --- a/level_zero/core/test/unit_tests/main.cpp +++ b/level_zero/core/test/unit_tests/main.cpp @@ -173,25 +173,6 @@ int main(int argc, char **argv) { sysmanUltsEnable = (strcmp(sysmanUltsEnableEnv, "1") == 0); } -#if defined(__linux__) - if (getenv("NEO_L0_TEST_SELF_EXEC") == nullptr) { - std::string wd = getRunPath(argv[0]); - char *ldLibraryPath = getenv("LD_LIBRARY_PATH"); - - if (ldLibraryPath == nullptr) { - setenv("LD_LIBRARY_PATH", wd.c_str(), 1); - } else { - std::string ldLibraryPathConcat = wd + ":" + std::string(ldLibraryPath); - setenv("LD_LIBRARY_PATH", ldLibraryPathConcat.c_str(), 1); - } - - setenv("NEO_L0_TEST_SELF_EXEC", wd.c_str(), 1); - execv(argv[0], argv); - printf("FATAL ERROR: cannot self-exec test: %s!, errno: %d\n", argv[0], errno); - return -1; - } -#endif - applyWorkarounds(); testing::InitGoogleMock(&argc, argv); diff --git a/level_zero/core/test/unit_tests/os_interface/CMakeLists.txt b/level_zero/core/test/unit_tests/os_interface/CMakeLists.txt index 603bb97d16..5b1791cb7f 100644 --- a/level_zero/core/test/unit_tests/os_interface/CMakeLists.txt +++ b/level_zero/core/test/unit_tests/os_interface/CMakeLists.txt @@ -7,8 +7,6 @@ set(NEO_L0_OS_INTERFACE_TESTS ${CMAKE_CURRENT_SOURCE_DIR}/CMakeLists.txt ${CMAKE_CURRENT_SOURCE_DIR}/os_context_l0_tests.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/global_teardown_tests.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/global_teardown_tests.h ) add_subdirectories() diff --git a/level_zero/core/test/unit_tests/os_interface/global_teardown_tests.cpp b/level_zero/core/test/unit_tests/os_interface/global_teardown_tests.cpp deleted file mode 100644 index c295bbc5a4..0000000000 --- a/level_zero/core/test/unit_tests/os_interface/global_teardown_tests.cpp +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright (C) 2023 Intel Corporation - * - * SPDX-License-Identifier: MIT - * - */ - -#include "level_zero/core/test/unit_tests/os_interface/global_teardown_tests.h" - -#include "shared/test/common/test_macros/test.h" - -#include "level_zero/core/source/driver/driver_handle_imp.h" -#include "level_zero/core/source/global_teardown.h" -#include "level_zero/sysman/source/sysman_driver_handle_imp.h" - -namespace L0 { -namespace ult { - -TEST(GlobalTearDownCallbackTests, givenL0LoaderThenGlobalTeardownCallbackIsCalled) { - EXPECT_EQ(ZE_RESULT_SUCCESS, loaderDriverTeardown(L0::ult::testLoaderDllName)); -} -TEST(GlobalTearDownCallbackTests, givenL0LoaderIsMissingThenGlobalTeardownCallbackIsNotCalled) { - EXPECT_EQ(ZE_RESULT_ERROR_DEPENDENCY_UNAVAILABLE, loaderDriverTeardown("invalid.so")); -} -TEST(GlobalTearDownCallbackTests, givenL0LoaderWithoutGlobalTeardownCallbackThenGlobalTeardownCallbackIsNotCalled) { - EXPECT_EQ(ZE_RESULT_ERROR_DEPENDENCY_UNAVAILABLE, loaderDriverTeardown(L0::ult::testDllName)); -} -TEST(GlobalTearDownTests, givenCallToGlobalTearDownFunctionThenGlobalDriversAreNull) { - globalDriverTeardown(); - EXPECT_EQ(GlobalDriver, nullptr); - EXPECT_EQ(Sysman::GlobalSysmanDriver, nullptr); -} -} // namespace ult -} // namespace L0 \ No newline at end of file diff --git a/level_zero/core/test/unit_tests/os_interface/global_teardown_tests.h b/level_zero/core/test/unit_tests/os_interface/global_teardown_tests.h deleted file mode 100644 index 94ece2fde9..0000000000 --- a/level_zero/core/test/unit_tests/os_interface/global_teardown_tests.h +++ /dev/null @@ -1,15 +0,0 @@ -/* - * Copyright (C) 2023 Intel Corporation - * - * SPDX-License-Identifier: MIT - * - */ - -#pragma once - -namespace L0 { -namespace ult { -extern const char *testLoaderDllName; -extern const char *testDllName; -} // namespace ult -} // namespace L0 \ No newline at end of file diff --git a/level_zero/core/test/unit_tests/os_interface/linux/CMakeLists.txt b/level_zero/core/test/unit_tests/os_interface/linux/CMakeLists.txt index dedc2f2c00..6db70dc7d8 100644 --- a/level_zero/core/test/unit_tests/os_interface/linux/CMakeLists.txt +++ b/level_zero/core/test/unit_tests/os_interface/linux/CMakeLists.txt @@ -8,6 +8,5 @@ if(UNIX) target_sources(${TARGET_NAME} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/CMakeLists.txt ${CMAKE_CURRENT_SOURCE_DIR}/cmdqueue_linux_tests.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/global_teardown_test_values.cpp ) endif() diff --git a/level_zero/core/test/unit_tests/os_interface/linux/global_teardown_test_values.cpp b/level_zero/core/test/unit_tests/os_interface/linux/global_teardown_test_values.cpp deleted file mode 100644 index da8c436c14..0000000000 --- a/level_zero/core/test/unit_tests/os_interface/linux/global_teardown_test_values.cpp +++ /dev/null @@ -1,13 +0,0 @@ -/* - * Copyright (C) 2023 Intel Corporation - * - * SPDX-License-Identifier: MIT - * - */ - -namespace L0 { -namespace ult { -const char *testLoaderDllName = "libtest_l0_loader_lib.so"; -const char *testDllName = "libtest_dynamic_lib.so"; -} // namespace ult -} // namespace L0 \ No newline at end of file diff --git a/level_zero/core/test/unit_tests/os_interface/windows/CMakeLists.txt b/level_zero/core/test/unit_tests/os_interface/windows/CMakeLists.txt index 04c3857180..b1e2769ac4 100644 --- a/level_zero/core/test/unit_tests/os_interface/windows/CMakeLists.txt +++ b/level_zero/core/test/unit_tests/os_interface/windows/CMakeLists.txt @@ -8,6 +8,5 @@ if(WIN32) target_sources(${TARGET_NAME} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/CMakeLists.txt ${CMAKE_CURRENT_SOURCE_DIR}/wddm_l0_tests.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/global_teardown_test_values.cpp ) endif() diff --git a/level_zero/core/test/unit_tests/os_interface/windows/global_teardown_test_values.cpp b/level_zero/core/test/unit_tests/os_interface/windows/global_teardown_test_values.cpp deleted file mode 100644 index 1584bcb777..0000000000 --- a/level_zero/core/test/unit_tests/os_interface/windows/global_teardown_test_values.cpp +++ /dev/null @@ -1,13 +0,0 @@ -/* - * Copyright (C) 2023 Intel Corporation - * - * SPDX-License-Identifier: MIT - * - */ - -namespace L0 { -namespace ult { -const char *testLoaderDllName = "test_l0_loader_lib.dll"; -const char *testDllName = "test_dynamic_lib.dll"; -} // namespace ult -} // namespace L0 \ No newline at end of file diff --git a/shared/test/common/mocks/linux/mock_dlopen.cpp b/shared/test/common/mocks/linux/mock_dlopen.cpp index 2ad7d98930..82b3abe68e 100644 --- a/shared/test/common/mocks/linux/mock_dlopen.cpp +++ b/shared/test/common/mocks/linux/mock_dlopen.cpp @@ -25,8 +25,7 @@ void *dlopen(const char *filename, int flags) { dlopenError = -1; if (filename == nullptr || - (strcmp(filename, "libtest_dynamic_lib.so") == 0) || - (strcmp(filename, "libtest_l0_loader_lib.so") == 0)) { + strcmp(filename, "libtest_dynamic_lib.so") == 0) { return dlopenFunc(filename, flags); } if (filename[0] == '_') {