Fiasco-Fail: Fault-Injection experiment campaign for the Fiasco microkernel
Campaign to perform fault injection experiments on the Fiasco microkernel. Required arguments: - Variant (-v): The actual experiment variant (e.g. BASELINE) - Benchmark (-b): The actual experiment benchmark - Golden-Run (-g) : Specify whether the golden-run or the actual fault-injection experiment should be executed (only for fail-client) - Stop address (-E): Address where the experiment should finish - Timer-ticks (-T): Number of timer ticks from the golden run experiment - Total-instructions (-t): Number of total instructions from the golden run experiment - Ecc-panic-function-address (-p): Address of the Ecc-panic function in order to detect failures (if any fault detection is included) - Errors_corrected variable address (-c): Address of the errors_corrected variable in order to determain if any error was corrected Important: First run the generic-tracing experiment so there is a "state" folder where the actual experiment can start from and import/prune the resulting trace. Change-Id: I151428ecc21f5e714cc923674ebbca9d84435704
This commit is contained in:
committed by
Christoph Borchert
parent
140944fda1
commit
342af09e34
42
src/experiments/fiascoFail/CMakeLists.txt
Normal file
42
src/experiments/fiascoFail/CMakeLists.txt
Normal file
@ -0,0 +1,42 @@
|
||||
set(EXPERIMENT_NAME fiascoFail)
|
||||
set(EXPERIMENT_TYPE FiascoFailExperiment)
|
||||
configure_file(../instantiate-experiment-indirect.ah.in
|
||||
${CMAKE_CURRENT_BINARY_DIR}/instantiate-${EXPERIMENT_NAME}.ah @ONLY
|
||||
)
|
||||
|
||||
## Setup desired protobuf descriptions HERE ##
|
||||
set(MY_PROTOS
|
||||
fiascofail.proto
|
||||
)
|
||||
|
||||
set(MY_CAMPAIGN_SRCS
|
||||
instantiateExperiment.cc
|
||||
experimentInfo.hpp
|
||||
experiment.hpp
|
||||
experiment.cc
|
||||
campaign.hpp
|
||||
campaign.cc
|
||||
)
|
||||
|
||||
#### PROTOBUFS ####
|
||||
find_package(Protobuf REQUIRED)
|
||||
include_directories(${PROTOBUF_INCLUDE_DIRS})
|
||||
include_directories(${CMAKE_CURRENT_BINARY_DIR})
|
||||
|
||||
find_package(MySQL REQUIRED)
|
||||
include_directories(${MYSQL_INCLUDE_DIR})
|
||||
|
||||
set(PROTOBUF_IMPORT_DIRS ${PROTOBUF_IMPORT_DIRS} ${CMAKE_CURRENT_BINARY_DIR}/../../core/comm)
|
||||
PROTOBUF_GENERATE_CPP(PROTO_SRCS PROTO_HDRS ${MY_PROTOS})
|
||||
|
||||
## Build library
|
||||
add_library(fail-${EXPERIMENT_NAME} ${PROTO_SRCS} ${PROTO_HDRS} ${MY_CAMPAIGN_SRCS})
|
||||
add_dependencies(fail-${EXPERIMENT_NAME} fail-comm)
|
||||
#target_link_libraries(fail-${EXPERIMENT_NAME} ${PROTOBUF_LIBRARY} ${MYSQL_LIBRARIES})
|
||||
target_link_libraries(fail-${EXPERIMENT_NAME} fail)
|
||||
target_link_libraries(fail-${EXPERIMENT_NAME} ${PROTOBUF_LIBRARY} ${MYSQL_LIBRARIES})
|
||||
|
||||
## This is the example's campaign server distributing experiment parameters
|
||||
add_executable(${EXPERIMENT_NAME}-server main.cc)
|
||||
target_link_libraries(${EXPERIMENT_NAME}-server fail-${EXPERIMENT_NAME} fail ${PROTOBUF_LIBRARY} ${Boost_THREAD_LIBRARY} ${MYSQL_LIBRARIES})
|
||||
install(TARGETS ${EXPERIMENT_NAME}-server RUNTIME DESTINATION bin)
|
||||
Reference in New Issue
Block a user