Skip to content
Snippets Groups Projects
  1. Dec 17, 2024
  2. Dec 16, 2024
  3. Dec 15, 2024
  4. Dec 14, 2024
  5. Dec 13, 2024
  6. Dec 10, 2024
  7. Dec 09, 2024
  8. Dec 05, 2024
  9. Dec 04, 2024
  10. Nov 26, 2024
  11. Nov 21, 2024
    • Florian Schmaus's avatar
      [Continuation] Fix setJmp() by adding 'rax' to clobber list · 410cd9d1
      Florian Schmaus authored
      The previously used 'membar' macro does not have 'rax' in its clobber
      list. As result, a compiler may not reload the contents of 'rax' after
      the setJmp() call and instead 'cache' eax's value. However, 'rax' is
      used to pass the jump's value once we perfrom a long jump. Therefore,
      it should be part of the clobber list of setJmp().
      
      In fact, GCC 14 started to perform an optimization in this case,
      causing Fibril synchronization to fail, as the passed
      fibrilResumeValue became 0.
      
      Compare the following code of ContextManager::start()
      
      GCC 13:
      3f40d:   e8 2e e8 fd ff          call   1dc40 <Continuation::setJmp()::{lambda(Continuation*)#1}::operator()(Continuation*) const@plt>
      3f412:   89 44 24 04             mov    %eax,0x4(%rsp)
      3f416:   48 98                   cltq
      3f418:   48 89 44 24 08          mov    %rax,0x8(%rsp)
      3f41d:   90                      nop
      
      GCC 14:
      3f8ea:   e8 81 e2 fd ff          call   1db70 <Continuation::setJmp()::{lambda(Continuation*)#1}::operator()(Continuation*) const@plt>
      3f8ef:   90                      nop
      
      As we can see, GCC 14 does not (re-)load eax back to its stack
      position after the setJmp().
      410cd9d1
    • Florian Schmaus's avatar
      7c859457
    • Florian Schmaus's avatar
      [Fibril] Add assert(fibrilResumeValue > 0) if there is a fibrilToResume · 53fb5c00
      Florian Schmaus authored
      If we reach this code with fibrilResumeValue == 0, then something went
      wrong (as it did with gcc-14, but that is solved in a later commit).
      53fb5c00
    • Florian Schmaus's avatar
      Add LOGDs for fibrilResumeValue · e4f0b546
      Florian Schmaus authored
      e4f0b546
  12. Nov 19, 2024
  13. Nov 18, 2024
  14. Nov 15, 2024
Loading