Add method for checking if deferr deleter is enabled

Change-Id: I5949a01ac312669824b8738f4bb7f8aedb2a056b
Signed-off-by: Maciej Plewka <maciej.plewka@intel.com>
This commit is contained in:
Maciej Plewka 2019-10-15 11:07:10 +02:00
parent b6e62528b6
commit a1c4283e0c
8 changed files with 55 additions and 1 deletions

View File

@ -10,6 +10,7 @@ set(NEO_CORE_HELPERS
${CMAKE_CURRENT_SOURCE_DIR}/aligned_memory.h
${CMAKE_CURRENT_SOURCE_DIR}/basic_math.h
${CMAKE_CURRENT_SOURCE_DIR}/debug_helpers.h
${CMAKE_CURRENT_SOURCE_DIR}/deferred_deleter_helper.h
${CMAKE_CURRENT_SOURCE_DIR}/extendable_enum.h
${CMAKE_CURRENT_SOURCE_DIR}/interlocked_max.h
${CMAKE_CURRENT_SOURCE_DIR}/non_copyable_or_moveable.h

View File

@ -0,0 +1,15 @@
/*
* Copyright (C) 2017-2019 Intel Corporation
*
* SPDX-License-Identifier: MIT
*
*/
#include "core/helpers/deferred_deleter_helper.h"
#include "runtime/os_interface/debug_settings_manager.h"
namespace NEO {
bool isDeferredDeleterEnabled() {
return DebugManager.flags.EnableDeferredDeleter.get();
}
} // namespace NEO

View File

@ -0,0 +1,10 @@
/*
* Copyright (C) 2017-2019 Intel Corporation
*
* SPDX-License-Identifier: MIT
*
*/
namespace NEO {
bool isDeferredDeleterEnabled();
} // namespace NEO

View File

@ -21,6 +21,7 @@ set(RUNTIME_SRCS_DLL_BASE
${NEO_SOURCE_DIR}/core/helpers/abort.cpp
${NEO_SOURCE_DIR}/core/helpers/debug_helpers.cpp
${NEO_SOURCE_DIR}/core/helpers/allow_deferred_deleter.cpp
${NEO_SOURCE_DIR}/core/utilities/clflush.cpp
${NEO_SOURCE_DIR}/core/utilities/debug_settings_reader_creator.cpp
${NEO_SOURCE_DIR}/runtime/api/api.cpp

View File

@ -8,6 +8,7 @@
#include "runtime/os_interface/windows/wddm_memory_manager.h"
#include "core/helpers/aligned_memory.h"
#include "core/helpers/deferred_deleter_helper.h"
#include "core/helpers/ptr_math.h"
#include "core/memory_manager/host_ptr_manager.h"
#include "core/memory_manager/memory_operations_handler.h"
@ -41,7 +42,7 @@ WddmMemoryManager::WddmMemoryManager(ExecutionEnvironment &executionEnvironment)
wddm(executionEnvironment.osInterface->get()->getWddm()) {
DEBUG_BREAK_IF(wddm == nullptr);
asyncDeleterEnabled = DebugManager.flags.EnableDeferredDeleter.get();
asyncDeleterEnabled = isDeferredDeleterEnabled();
if (asyncDeleterEnabled)
deferredDeleter = createDeferredDeleter();
mallocRestrictions.minAddress = wddm->getWddmMinAddress();

View File

@ -15,6 +15,7 @@ set(IGDRCL_SRCS_tests_helpers
${CMAKE_CURRENT_SOURCE_DIR}/cmd_buffer_validator.h
${CMAKE_CURRENT_SOURCE_DIR}/cmd_buffer_validator_tests.cpp
${CMAKE_CURRENT_SOURCE_DIR}/debug_helpers_tests.cpp
${CMAKE_CURRENT_SOURCE_DIR}/deferred_deleter_helpers_tests.cpp
${CMAKE_CURRENT_SOURCE_DIR}/dirty_state_helpers_tests.cpp
${CMAKE_CURRENT_SOURCE_DIR}/dispatch_flags_helper.h
${CMAKE_CURRENT_SOURCE_DIR}/dispatch_info_tests.cpp

View File

@ -0,0 +1,24 @@
/*
* Copyright (C) 2017-2019 Intel Corporation
*
* SPDX-License-Identifier: MIT
*
*/
#include "core/helpers/deferred_deleter_helper.h"
#include "core/unit_tests/helpers/debug_manager_state_restore.h"
#include "gtest/gtest.h"
using namespace NEO;
TEST(deferredDeleterHelper, DefferedDeleterIsDisabledWhenCheckIFDeferrDeleterIsEnabledThenCorrectValueReturned) {
DebugManagerStateRestore dbgRestore;
DebugManager.flags.EnableDeferredDeleter.set(false);
EXPECT_FALSE(isDeferredDeleterEnabled());
}
TEST(deferredDeleterHelper, DefferedDeleterIsEnabledWhenCheckIFDeferrDeleterIsEnabledThenCorrectValueReturned) {
DebugManagerStateRestore dbgRestore;
DebugManager.flags.EnableDeferredDeleter.set(true);
EXPECT_TRUE(isDeferredDeleterEnabled());
}

View File

@ -22,6 +22,7 @@ endmacro()
apply_macro_for_each_gen("TESTED")
set(IGDRCL_SRCS_LIB_ULT
${NEO_SOURCE_DIR}/core/helpers/allow_deferred_deleter.cpp
${NEO_SOURCE_DIR}/core/unit_tests/utilities/clflush.cpp
${NEO_SOURCE_DIR}/unit_tests/abort.cpp
${NEO_SOURCE_DIR}/unit_tests/helpers/built_ins_helper.cpp