You can now see your quota consumption at https://account.cip.cs.fau.de/.
If your GitLab username differs from your IDM username, please write an e-mail to problems@cip.cs.fau.de in order to get it changed.

  1. 12 Aug, 2015 1 commit
    • Christian Dietrich's avatar
      generator/SSE: alternative SSE with APP-FSM · b5016fc8
      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
      b5016fc8
  2. 06 Aug, 2015 1 commit
    • Christian Dietrich's avatar
      generator: application FSM transformation · 2f69ade0
      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
      2f69ade0
  3. 05 Aug, 2015 1 commit
  4. 27 Jul, 2015 4 commits
  5. 23 Jul, 2015 3 commits
    • Christian Dietrich's avatar
      fail: expose --inline-scheduler in variant name · 243b6a9f
      Christian Dietrich authored
      Change-Id: I83cac7005d667bdfd2045f8e0e58c03bddf1a475
      243b6a9f
    • Christian Dietrich's avatar
      os/scheduler: make schedule inlinable again · 4d9f11e5
      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
      4d9f11e5
    • Christian Dietrich's avatar
      build system: proper inlining · 5b4cd7d8
      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
      5b4cd7d8
  6. 20 Jul, 2015 1 commit
    • Christian Dietrich's avatar
      os/scheduler: unify scheduler.h.in · 4568b8f8
      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
      4568b8f8
  7. 08 Jun, 2015 2 commits
    • Christian Dietrich's avatar
      i386: FaultDetectedHook in page fault handler · 1ca1f032
      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
      1ca1f032
    • Christian Dietrich's avatar
      i386: FaultDetectedHook on unhandled interrupt · 01ad46c1
      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
      01ad46c1
  8. 01 Jun, 2015 1 commit
  9. 29 May, 2015 2 commits
  10. 28 May, 2015 2 commits
  11. 22 May, 2015 1 commit
    • Christian Dietrich's avatar
      x86: make privilege isolation optional · ecdc07db
      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
      ecdc07db
  12. 21 May, 2015 1 commit
  13. 20 May, 2015 4 commits
    • Christian Dietrich's avatar
      i386: All MMU related functions can be disabled · caab7311
      Christian Dietrich authored
      All MMU related datastructres are now removed from the image, if dOSEK
      is build without MPU.
      
      Change-Id: If01c87027df73b92f3df979d0955098c4b5c91c3
      caab7311
    • Christian Dietrich's avatar
      fail/test.h: remove disable interrupt · 367ac4d7
      Christian Dietrich authored
      The disable interrupts at that place, caused the bench-coptermock to break.
      
      Change-Id: Iedea2a6c259e276c3101dc8970ff29a2e1b57e9a
      367ac4d7
    • Christian Dietrich's avatar
      PreciseSystemState: memory efficient variant · 8c7b1141
      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
      8c7b1141
    • Christian Dietrich's avatar
      extractor: separate executable for llvm · 841b6647
      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
      841b6647
  14. 12 May, 2015 3 commits
    • Christian Dietrich's avatar
      benchmark: port the coptermock benchmark from the ISORC'13 paper · e69974c4
      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
      e69974c4
    • Christian Dietrich's avatar
      generator: Implement GetEvent systemcall · 3f98051a
      Christian Dietrich authored
      The system call was already implemented in the scheduler API, but was
      not exposed to the applications.
      
      Change-Id: I08206e0a5e83011b63efb8257c1a57c00a93a8ba
      3f98051a
    • Christian Dietrich's avatar
      fail: fix trace-analyze · 0bd0184f
      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
      0bd0184f
  15. 07 May, 2015 1 commit
  16. 06 May, 2015 4 commits
    • Christian Dietrich's avatar
      dispatcher: rename ::idle to ::Idle · ac196fd8
      Christian Dietrich authored
      With this name change all upper case function from the dispatcher start
      with an uppercase letter
      
      Change-Id: I916a11094861c95cc179888090e1ff3d681c021d
      ac196fd8
    • Christian Dietrich's avatar
      i386/qemu: use -kernel instead of -cdrom · 8a163ca8
      Christian Dietrich authored
      Change-Id: Iaba3e4663749312b432c49c59c37e6fb2b62b116
      8a163ca8
    • Christian Dietrich's avatar
      whitespaces: remove spurious whitespaces · 98ebcd8d
      Christian Dietrich authored
      Change-Id: I21d06ffc334fcb349f657023cc52ba63d756d3df
      98ebcd8d
    • Christian Dietrich's avatar
      basic tasks: implement basic tasks for x86 · bac43f73
      Christian Dietrich authored
      Basic tasks are quite easy on x86. Some essential bits of knowledge here
      are:
      
      - since we always execute the kernel on a distinguished
        stack (event-based kernel), we always have a save returnable context
        on the user stack.
      - As always we need a basic task frame pointer (BTFP) to remove the basic
        task's stack segment from the shared stack.
      - We HAVE to to the BTFP fiddling in the dispatching interrupt, since
        our i386 variant is interruptible (will break at bcc1_lukas_alarmstress!)
      
      Change-Id: I07b5e376cf29ba45d48f210cc2ab5cbac57888fa
      bac43f73
  17. 05 May, 2015 3 commits
  18. 29 Apr, 2015 5 commits
    • Christian Dietrich's avatar
      fail: fix import arguments · 9b4f9fc7
      Christian Dietrich authored
      9b4f9fc7
    • Christian Dietrich's avatar
      cmake: small cleanup of unused rules · b50cf15a
      Christian Dietrich authored
      Change-Id: I5df36a0f65995a4024fbdc0c875af4f5605236ec
      b50cf15a
    • Christian Dietrich's avatar
      config: distributed constraints · 2812a128
      Christian Dietrich authored
      constraints on the configuration can now be cluttered over the whole
      (python) source code. The constraints are at the moment checked at
      configuration time of the system, and not in every generator call.
      
      As an example, you can now use
      
       config-constraint-: dependability.state-asserts -> (os.systemcalls == normal)
      
      All constraints are started with `config-constraint-:'. The constraint
      can be continued to the following line with ':-:'. For example,
      
        config-constraint-: os.specialize ->
                     :-:      (arch.self == ARM)
      
      Change-Id: I84dda39ccaa862b9dc7d4b2b53fe205ee2b8f93e
      2812a128
    • Christian Dietrich's avatar
      config: use config system in generator and code · dc0d413a
      Christian Dietrich authored
      Use the configuration values in the code (forced include) and within the
      generator itself. This needed some adaptions to the code.
      
      Change-Id: Iad330f2dd0af39c33ba753b5592b4df4c61974e7
      dc0d413a
    • Christian Dietrich's avatar
      config: configuration system in new_build_env.py · decb618b
      Christian Dietrich authored
      The new configuration system uses a explicitly defined hierarchical
      model. At the moment, this model is not checked against any
      constraints. Nevertheless, the command line interface for
      new_build_env.py and generator/main.py are already constructed in a
      large extend from the model.
      
      The current configuration model can be found in config/model.py
      
      Change-Id: I80464a2b5b3926da6e79603f586cb3df31409881
      decb618b