Skip to content
Snippets Groups Projects
  1. May 17, 2021
  2. May 14, 2021
  3. May 11, 2021
  4. May 10, 2021
  5. May 08, 2021
  6. May 05, 2021
  7. May 04, 2021
    • Florian Schmaus's avatar
      Merge branch 'io-use-affinity' into 'master' · 3c984ad7
      Florian Schmaus authored
      [IO] set the affinity of Fibers created by the completer thread
      
      See merge request !188
      3c984ad7
    • Florian Fischer's avatar
    • Florian Fischer's avatar
      [IO] use our affinity capabilities in the io subsystem · 388bd882
      Florian Fischer authored
      Set the affinity for Fibers created from the completer thread
      to the workerId where the completion originated from.
      
      First, we split up the Callback type in a user facing and an internal one.
      The internal one has a new affinity member which provides the memory for
      the new Fibers affinity buffer. This is memory safe because the Callback
      object is always heap allocated and freed when the CallbackFiber terminates.
      
      Second, each Future has an affinity member as well which will be passed
      to the BinaryPrivateSemaphore when calling signalFromAnywhere to
      again hint the originating worker.
      
      Both affinity values are set during the preparation of the Future in
      IoContext::prepareFutureChain because then we are sure in which worker's
      IoContext the completion will be generated.
      388bd882
    • Florian Fischer's avatar
      [laws] also schedule Fibers to their priorityQueues from anywhere · 5b1c238e
      Florian Fischer authored
      First of all I think it makes sense for laws to also look at affinities of Fibers
      scheduled to the AnywhereQueue.
      But the actual reason is that IO completions scheduled from the completer
      could be dispatched from the priorityQueue before they are found in the
      expensive AnywhereQueue.
      
      But this comes with the cost of a vcall for scheduleFromAnywhere.
      5b1c238e
    • Florian Fischer's avatar
      [Runtime] switch batch schedule interface from STL to C array style · a328256c
      Florian Fischer authored
      Using the STL iterator based approach has caused more harm than it
      has advantages.
      
      First of all it is unneeded we know how the Fibers we want to schedule are stored
      and don't need a algorithmic generic abstraction.
      
      We keep Fibers pointers in continues memory for memory locality benefits
      therefore we can simply use the C dynamic array style of passing the
      Fibers to the scheduler.
      
      This removes the template from the batched schedule methods and allows us
      to use virtual functions to specialize the batched scheduleFromAnywhere
      method.
      a328256c
    • Florian Schmaus's avatar
      Merge branch 'laws-set-affinity' into 'master' · 60c3afb7
      Florian Schmaus authored
      [LAWS] Set fiber affinity *before* dispatching it, not after
      
      See merge request !189
      60c3afb7
    • Florian Schmaus's avatar
  8. May 03, 2021
  9. May 01, 2021
Loading