Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Revisit, assess and extend ETISS Fault Injection #100

Open
wants to merge 57 commits into
base: master
Choose a base branch
from
Open
Changes from 1 commit
Commits
Show all changes
57 commits
Select commit Hold shift + click to select a range
b510cc5
fix tab to space
JoGei Nov 11, 2021
68ecbfc
Add initialize_virtualstruct as separate function. Full functionality…
JoGei Nov 11, 2021
fbfd3b8
Allow Trigger::NOP and Action::NOP both can be configured (or injecte…
JoGei Nov 11, 2021
c0c4b0c
fix deadlock when Action::INJECTION is results in Stressor::firedTrig…
JoGei Nov 11, 2021
d0c70df
Update example/bare_etiss_processor with new CPUCore instance forced …
JoGei Nov 11, 2021
54c0249
add *.xml example to examples cmake install target
JoGei Nov 12, 2021
3c005fd
update README "PC" is called "instructionPointer" in ETISS
JoGei Nov 12, 2021
58f6822
overload initialize_virtualstruct to allow direct setting of a custom…
JoGei Nov 12, 2021
4ee17e6
update VirtualStruct::Field access flags on Stressor::addFault, e.g.,…
JoGei Nov 15, 2021
fad029c
Add smart static mapping of types to their string representatives (fr…
JoGei Nov 19, 2021
e75be13
Add as soon as possbile (ASAP) <trigger> type which forces Injector::…
JoGei Nov 19, 2021
724c396
Add getName() pure abstract to VirtualStructSupport for easier identf…
JoGei Nov 19, 2021
edba074
Add MemoryFaultSystem that allows memory manipulation through custom …
JoGei Nov 19, 2021
0185fe5
remove trailing whitespaces
JoGei Nov 19, 2021
ef00af6
replace "or" with primary token. Add parentheses in if()
JoGei Nov 19, 2021
db116a0
use std::stoll instead of stringstream if number base is known
JoGei Dec 1, 2021
79411fb
apply clang format to fault injection code base
JoGei Dec 1, 2021
42fb71d
force default initialization of enum variable
JoGei Dec 1, 2021
86bf7b5
add default initializers to member variables, replace pointers with u…
JoGei Dec 1, 2021
bf6bfe1
replace inclusions with forward declarations in headers to avoid circ…
JoGei Dec 1, 2021
9dfc92d
use const iterator in faults config
JoGei Dec 1, 2021
6564349
avoid new operator for shared_ptr
JoGei Dec 1, 2021
dc1acb3
clean-up repetitive assignment
JoGei Dec 1, 2021
cc1f2c2
remove builtin_expect macros for performance uncritical branching
JoGei Dec 1, 2021
0053e03
static fault list now only holds fault definitions, a fault must be e…
JoGei Dec 2, 2021
be3c578
fix trigger removal uninitialized remove flag
JoGei Dec 3, 2021
8699db4
remove volatile for pending and remove flags
JoGei Dec 6, 2021
d64a01b
replace nested loop with erase-remove idiom
JoGei Dec 6, 2021
d6e4b65
remove explicit but default equivalents
JoGei Dec 6, 2021
ed74938
reverse commit c8f94781a55aee42c70149b4a0f8fcf710bf34da, remove re-as…
JoGei Dec 6, 2021
a6bc78e
fix Field pointer
JoGei Dec 6, 2021
7526b08
remove empty default initializations
JoGei Dec 6, 2021
446d7c3
memory manipulation system for bare etiss processor in case of fi
JoGei Jan 20, 2022
343042e
rename Trigger check function to clarify usage
JoGei Jun 30, 2022
1d6f2d7
adapt fi examples to new build configuration
JoGei Jun 30, 2022
d60635c
Merge branch 'tum-ei-eda:master' into rev_faultinjection
JoGei Dec 16, 2022
6d57eb2
move pugixml to CMake FetchContent, update pugixml to cmake supported…
JoGei Dec 16, 2022
5e795d7
replace custom smart enum types with safer third party implementation
JoGei Dec 16, 2022
dbc0914
explicit constructor for MemOp ub manipulator base for clang
JoGei Dec 16, 2022
6c17d12
refactor pugixml integration to avoid dependency in installed etiss
JoGei Feb 16, 2023
40851ec
force command to upper case for enum resolve
JoGei Feb 16, 2023
7f5fa60
fix typo in error message
JoGei Feb 23, 2023
a25a699
Merge branch 'tum-ei-eda:master' into rev_faultinjection
JoGei Feb 23, 2023
d225750
Merge branch 'rev_faultinjection' into rebaser
JoGei Feb 23, 2023
0566f5e
Update CMakeLists.txt
JoGei Feb 23, 2023
3ae4db7
Merge pull request #3 from JoGei/rebaser
JoGei Feb 23, 2023
5510d17
Merge branch 'master' into rev_faultinjection
JoGei Mar 24, 2023
5d0d8ae
update elfio
JoGei Mar 24, 2023
4fae67f
typos
JoGei May 3, 2023
861256f
add missing CSRs and interrupt vector to legacy RISCV-32bit Arch
JoGei May 3, 2023
bd0835c
make VirtualStruct inheritable
JoGei May 3, 2023
209745b
allow naming cpu cores other than "core+<id>"
JoGei May 3, 2023
31f8610
check if VirtualStruct is already mounted to root
JoGei May 3, 2023
92e851c
bugix fault actions NOP and EVENT to correctly return status
JoGei May 3, 2023
8fd276a
add unique ID to instruction specific callback plugin, to allow multi…
JoGei Sep 2, 2023
f8bf2d6
revert changes
JoGei Nov 23, 2023
186e0f4
Merge branch 'tum-ei-eda:master' into rev_faultinjection
JoGei Nov 23, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
remove builtin_expect macros for performance uncritical branching
JoGei committed Jun 30, 2022

Verified

This commit was signed with the committer’s verified signature.
cagix Carsten Gips
commit cc1f2c2dd1a750aaf1e09541f5e6e9b080a56f99
16 changes: 8 additions & 8 deletions src/fault/Action.cpp
Original file line number Diff line number Diff line change
@@ -175,7 +175,7 @@ const Action::type_t &Action::getType() const

const InjectorAddress &Action::getInjectorAddress() const
{
if (unlikely(!(type_ == Type::BITFLIP || type_ == Type::MASK || type_ == Type::COMMAND)))
if (!(type_ == Type::BITFLIP || type_ == Type::MASK || type_ == Type::COMMAND))
etiss::log(
etiss::FATALERROR,
std::string(
@@ -186,7 +186,7 @@ const InjectorAddress &Action::getInjectorAddress() const
/// COMMAND only
const std::string &Action::getCommand() const
{
if (unlikely(type_ != Type::COMMAND))
if (type_ != Type::COMMAND)
etiss::log(etiss::FATALERROR,
std::string("etiss::fault::Action::getCommand(): Requested Action::Type is not Command"));
return command_;
@@ -195,7 +195,7 @@ const std::string &Action::getCommand() const
/// is_action_on_field only
const std::string &Action::getTargetField() const
{
if (unlikely(!(type_ == Type::BITFLIP || type_ == Type::MASK)))
if (!(type_ == Type::BITFLIP || type_ == Type::MASK))
etiss::log(etiss::FATALERROR,
std::string("etiss::fault::Action::getTargetField(): Requested Action::Type is not TargetField"));
return field_;
@@ -204,31 +204,31 @@ const std::string &Action::getTargetField() const
/// BITFLIP only
unsigned Action::getTargetBit() const
{
if (unlikely(type_ != Type::BITFLIP))
if (type_ != Type::BITFLIP)
etiss::log(etiss::FATALERROR,
std::string("etiss::fault::Action::getTargetBit(): Requested Action::Type is not TargetBit"));
return bit_;
}

const Fault &Action::getFault() const
{
if (unlikely(type_ != Type::INJECTION))
if (type_ != Type::INJECTION)
etiss::log(etiss::FATALERROR,
std::string("etiss::fault::Action::getFault(): Requested Action::Type is not injectable Fault"));
return *fault_;
}

const Action::mask_op_t &Action::getMaskOp() const
{
if (unlikely(type_ != Type::MASK))
if (type_ != Type::MASK)
etiss::log(etiss::FATALERROR,
std::string("etiss::fault::Action::getMaskOp(): Requested Action::Type is not Mask"));
return mask_op_;
}

uint64_t Action::getMaskValue() const
{
if (unlikely(type_ != Type::MASK))
if (type_ != Type::MASK)
etiss::log(etiss::FATALERROR,
std::string("etiss::fault::Action::getMaskValue(): Requested Action::Type is not Mask"));
return mask_value_;
@@ -237,7 +237,7 @@ uint64_t Action::getMaskValue() const
#ifndef NO_ETISS
int32_t Action::getEvent() const
{
if (unlikely(type_ != Type::EVENT))
if (type_ != Type::EVENT)
etiss::log(etiss::FATALERROR,
std::string("etiss::fault::Action::getEvent(): Requested Action::Type is not Event"));
return event_;