Commit e3916b5a by Tobias Langer

Added configuration option for hard realtime

The cmake configuration option HARD_REALTIME was added. This sets or
unsets the compile time variable EMBB_HARD_REALTIME.
parent a2cf0c05
...@@ -86,6 +86,7 @@ option(WARNINGS_ARE_ERRORS "Specify whether warnings should be treated as errors ...@@ -86,6 +86,7 @@ option(WARNINGS_ARE_ERRORS "Specify whether warnings should be treated as errors
option(USE_AUTOMATIC_INITIALIZATION "Specify whether the MTAPI C++ interface, algorithms and dataflow should automatically intialize the MTAPI node if no explicit initialization is present" ON) option(USE_AUTOMATIC_INITIALIZATION "Specify whether the MTAPI C++ interface, algorithms and dataflow should automatically intialize the MTAPI node if no explicit initialization is present" ON)
option(BUILD_OPENCL_PLUGIN "Specify whether the MTAPI OpenCL plugin should be built" OFF) option(BUILD_OPENCL_PLUGIN "Specify whether the MTAPI OpenCL plugin should be built" OFF)
option(THREADING_ANALYSIS_MODE "Replaces lock-free synchronization constructs by mutex-based implementations to support threading analysis tools" OFF) option(THREADING_ANALYSIS_MODE "Replaces lock-free synchronization constructs by mutex-based implementations to support threading analysis tools" OFF)
option(HARD_REALTIME "Specify whether hard real-time scheduling should be activated" ON)
## LOCAL INSTALLATION OF SUBPROJECT BINARIES ## LOCAL INSTALLATION OF SUBPROJECT BINARIES
# #
...@@ -158,6 +159,10 @@ if(CUDA_FOUND) ...@@ -158,6 +159,10 @@ if(CUDA_FOUND)
list(APPEND EXPECTED_EMBB_TEST_EXECUTABLES "embb_mtapi_cuda_c_test") list(APPEND EXPECTED_EMBB_TEST_EXECUTABLES "embb_mtapi_cuda_c_test")
endif() endif()
# Adding hard real-time support with slightly different scheduling
if(HARD_REALTIME STREQUAL ON)
set(EMBB_HARD_REALTIME 1)
endif()
## Copy test execution script to local binaries folder ## Copy test execution script to local binaries folder
......
...@@ -59,6 +59,13 @@ ...@@ -59,6 +59,13 @@
#cmakedefine EMBB_THREADING_ANALYSIS_MODE #cmakedefine EMBB_THREADING_ANALYSIS_MODE
/** /**
* If defined, instead of the MTAPI round-robin work-stealing scheduling with
* local queues per priority, global edf is used for scheduling in order to
* guarantee hard real-time bounds.
*/
#cmakedefine EMBB_HARD_REALTIME
/**
* Version defines. * Version defines.
*/ */
#define EMBB_BASE_VERSION_MAJOR ${EMBB_BASE_VERSION_MAJOR} #define EMBB_BASE_VERSION_MAJOR ${EMBB_BASE_VERSION_MAJOR}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment