- 23 Oct, 2015 1 commit
-
-
Christian Dietrich authored
remove some old cruft Change-Id: Ie94b7dd352acec017979ce76fcc6d0f7fbd197b8
-
- 20 Oct, 2015 1 commit
-
-
Stefan Bader authored
Prior to this cmake could only find "grub-mkrescue". Change-Id: Id16ce4958d826953387c80865aafe47a5660eecd
-
- 23 Sep, 2015 1 commit
-
-
Christian Dietrich authored
In the FSM representation, interrupts are no longer modled as separate tasks. Change-Id: I3c9de5f629a5b36330e1339263700efabd34b822
-
- 18 Sep, 2015 1 commit
-
-
Christian Dietrich authored
-
- 16 Sep, 2015 1 commit
-
-
Christian Dietrich authored
Change-Id: If54efba52eed798bf95dda470f5b5bf714eb6f60
-
- 10 Sep, 2015 3 commits
-
-
Christian Dietrich authored
Change-Id: Ic2554caf81492cb93b73c423a28fa014c6288ce5
-
Christian Dietrich authored
We explicitly enable the popcnt instruction in the code generation stage. Change-Id: I799aabebede13da1dae3adc0e8cd864b4bc817f6
-
Christian Dietrich authored
The priority of a task is caluclated from its dynamic-priority state word and the event state words. Until now, we did not check this value for being a correctly encoded value, which causes quite a number of SDCs in the bench-coptermock-isorc numbers. Therefore, we check this value for validity and hope for the best. Change-Id: Ie95c1b64b56d79a6110455270fb099fee919269f
-
- 07 Sep, 2015 1 commit
-
-
Christian Dietrich authored
It is unwise to overwrite the set-event bitmask on a SetEvent system call. ecc1_event1f will ensure the correct behavior in the future. Change-Id: I98bf21664d381e6093c194ad0442ee168fc92764
-
- 12 Aug, 2015 4 commits
-
-
Martin Hoffmann authored
Change-Id: I1d13300681efa07a74d2f82eef6a56f62e682fb1
-
Martin Hoffmann authored
Change-Id: I9a2790cf1dac9c068bd4ff98ae43d8bf9ba74613
-
Christian Dietrich authored
Somes these testcases produced 5{<><><>}33x instead of 5{<><><>}3x This is not a application or OS bug, but a race condition with the waiting times. Change-Id: I1e847e13188b15d567ce4efd92f473a4f39a666b
-
Christian Dietrich authored
The symbolic system execution is now able to enumerate all possible system states with two different approaches. Either we can use the "old" version which uses states with blocks to be executed in the next step, like it is described in LCTES'15 (Dietrich et. al). Or we can use the application finite state machines as basis. These state machines are smaller (lesser nodes) than the application's CFG. They are based on the task's ICFG. Change-Id: I05e050ed3f39bd18ecf86b4d7bb423b4ce0825e0
-
- 06 Aug, 2015 1 commit
-
-
Christian Dietrich authored
The ApplicationFSM pass transforms the ICFG of a task to a finite state machine. This construction is done by transforming CFG-edges to FSM-states, and CFG-blocks to FSM-transitions. In a second step, the CFG-computation blocks are handled as FSM-epsilon transitions. Then a standard epsilon elimination is done for subtask-FSM. Change-Id: I874bc3b17ebaf16b58bb70226e5eef091e5cbbe9
-
- 05 Aug, 2015 1 commit
-
-
Stefan Bader authored
Added a modifier for llvm bitcode files, which adds function attributes + values to a specific function. Change-Id: I57d71147c776686bfd18025d3090485b69da6bf8
-
- 27 Jul, 2015 4 commits
-
-
Christian Dietrich authored
Change-Id: Iebb4498dcb5c8a1ebb6bae8d13b75e4645e1cba6
-
Christian Dietrich authored
Change-Id: I38d53965e1dfe1c337a946bc7d47239a62a5cd3e
-
Christian Dietrich authored
Change-Id: I14a18026ef4e6320dd0c6da61fb8f6c4892ca16f
-
Christian Dietrich authored
Not all bits in the cfg region word are used, therefore we can safely reset them so a known state afterwards. Change-Id: Ic059b80bf46f9a53742383025e495e653837cb68
-
- 23 Jul, 2015 3 commits
-
-
Christian Dietrich authored
Change-Id: I83cac7005d667bdfd2045f8e0e58c03bddf1a475
-
Christian Dietrich authored
Inlining the scheduler reveals a high potential for specialization and and SDC reduction. In the implementation of the zedboard benchmark, we dropped the inlinability support. This is now possible again. With inline-scheduler+specialization the scheduler is paritally instansiated whereever possible. Test-Config: --arch i386 --encoded=no --inline-scheduler=yes --specialize=yes Test-Config: --arch i386 --encoded=no --inline-scheduler=yes --specialize=no Test-Config: --arch i386 --encoded=no --inline-scheduler=no --specialize=yes Test-Config: --arch i386 --encoded=no --inline-scheduler=no --specialize=no Test-Config: --arch i386 --encoded=yes --inline-scheduler=yes --specialize=yes Test-Config: --arch i386 --encoded=yes --inline-scheduler=yes --specialize=no Test-Config: --arch i386 --encoded=yes --inline-scheduler=no --specialize=yes Test-Config: --arch i386 --encoded=yes --inline-scheduler=no --specialize=no Change-Id: I2749078a3cc4ebeeb19bde14eb769b5781ac409f
-
Christian Dietrich authored
Inlining is hard. Convincing the compiler to actually inline the systemcall bodies is even harder. Therefore we now use the always_inline flag together with the -always-inline (llvm-opt) compiler pass. Furthermore -gc-section drops all unused functions. Change-Id: Ifd429e28ebb330944230076bca3886f4ef1171e3
-
- 20 Jul, 2015 1 commit
-
-
Christian Dietrich authored
Until know there where two different versions of scheduler.h.in, one for encoded and one for the unencoded variant. In essence they were nearly identical. Therefore, they could be unified without changing the execution sequence. Change-Id: Ifff4cd4a18bee135e286f330212aa14247cc2277
-
- 08 Jun, 2015 2 commits
-
-
Christian Dietrich authored
Like the last change, this one does not change the SDC rate, but does only make them detectable by application/FAIL*. Until now, MPU faults were routed to isr_undetected Change-Id: Iac81f8611753cafbddb6d1f9c4bbe505a788890e
-
Christian Dietrich authored
Until now, unhandled interrupt resulted in a hanging machine. This did *not* cause the SDC rates to change, but made the TIMEOUT numbers for fault injection campaigns slightly too high. Change-Id: I4616c5ddad66659bab604cd3ed5b5405ceea44ce
-
- 01 Jun, 2015 1 commit
-
-
Martin Hoffmann authored
This includes using nm again, instead of llvm-nm. Change-Id: Ic8b1b6054427ddaf028ece5e7758309ee0d4b3be
-
- 29 May, 2015 2 commits
-
-
Christian Dietrich authored
Change-Id: Ia516171592bc51c9fcef37fa9d2f2c9e947dd148
-
Christian Dietrich authored
Change-Id: I5303f2cd78122dd07921a97c5a598254bc3915fd
-
- 28 May, 2015 2 commits
-
-
Christian Dietrich authored
Change-Id: I35c6ef1c68bbcc016602b7ee70dd41a48a8a4087
-
Martin Hoffmann authored
unreachable should not, and does not return. This also silences a compiler warning. Uses new C++11 attribute syntax [[noreturn]]. Change-Id: Ifb4438bffb6d6df641003c53d3a2bf4a825b403c
-
- 22 May, 2015 1 commit
-
-
Christian Dietrich authored
Since privilege isolation is a very costly feature, and we're not sure wheter it is good or bad for dependability, we make it optional. This allows us to evaluate it separately. Test-Config: --arch i386 --privilege-isolation f Test-Config: --arch i386 --privilege-isolation f --mpu t Test-Config: --arch i386 --privilege-isolation f --encoded t Test-Config: --arch i386 --privilege-isolation f --basic-tasks t Change-Id: Ia22a41eb610b090aeaac486d006a4b4ea2ab762a
-
- 21 May, 2015 1 commit
-
-
Christian Dietrich authored
The push %edi was totally unecessary. Change-Id: I4fc8806c722a1690f6a83678c35aa508ee64c3cf
-
- 20 May, 2015 4 commits
-
-
Christian Dietrich authored
All MMU related datastructres are now removed from the image, if dOSEK is build without MPU. Change-Id: If01c87027df73b92f3df979d0955098c4b5c91c3
-
Christian Dietrich authored
The disable interrupts at that place, caused the bench-coptermock to break. Change-Id: Iedea2a6c259e276c3101dc8970ff29a2e1b57e9a
-
Christian Dietrich authored
We implement the PreciseSystemState with a more efficient variant. It uses the __slot__ feature of python (therefore I removed it from the inheritance chain, which causes some copying of code). With this change the memory consumption for bench-coptermock drops from ~60Mb to ~40Mb for the SymbolicSystemExecution pass. With pypy3, the memory consumption drops to 23Mbyte. Change-Id: Ic87be8afa97d6861dfe49c9cffd40d3bdc6464a5
-
Christian Dietrich authored
In order drop our dependency on llvmpy, which seems to be abandoned at the moment, I implemented the llvm-extractor tool. It: - splits basic blocks before and after each CallInst/InvokeInst - rename the system calls - extracts the system call arguments - dumps a python dict with the strucutre Change-Id: I2adac08c14ceb2e49ffe1bbcb43216b6769b06c1
-
- 12 May, 2015 3 commits
-
-
Christian Dietrich authored
In order to port the "old" isorc benchmark, I had to adapt the code only a little bit to work around the constant-referencing of system objects pollicy of dOSEK. Facts about the benchmark are: - If run at 50Mhz - Takes 1.3 seconds (The original ISOR benchmark took 1.29 seconds) - Emits 110 checkpoints - Original CiAO: 107 (almost no diff to the current trace) - Original eCOS: 110 (two execution blocks are shuffled) Change-Id: I6ab96fae29e1c8376da95ec4f622dc1d92843f4d
-
Christian Dietrich authored
The system call was already implemented in the scheduler API, but was not exposed to the applications. Change-Id: I08206e0a5e83011b63efb8257c1a57c00a93a8ba
-
Christian Dietrich authored
trace-analyze.py did crash on the current traces due to a API change in stats_binary. Additionally syscall_end markers are now also detected as end of system-call--regions markers. Change-Id: I2d9c09d235a6c2afda34d2b6aace86665b39d2b2
-
- 07 May, 2015 1 commit
-
-
Christian Dietrich authored
Change-Id: Ic573cdf0d03f55fd523007127c15a0480ef436c8
-