1. 27 Aug, 2018 2 commits
    • Jens Axboe's avatar
      blk-wbt: improve waking of tasks · 38cfb5a4
      Jens Axboe authored
      We have two potential issues:
      
      1) After commit 2887e41b, we only wake one process at the time when
         we finish an IO. We really want to wake up as many tasks as can
         queue IO. Before this commit, we woke up everyone, which could cause
         a thundering herd issue.
      
      2) A task can potentially consume two wakeups, causing us to (in
         practice) miss a wakeup.
      
      Fix both by providing our own wakeup function, which stops
      __wake_up_common() from waking up more tasks if we fail to get a
      queueing token. With the strict ordering we have on the wait list, this
      wakes the right tasks and the right amount of tasks.
      
      Based on a patch from Jianchao Wang <jianchao.w.wang@oracle.com>.
      Tested-by: default avatarAgarwal, Anchal <anchalag@amazon.com>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      38cfb5a4
    • Jens Axboe's avatar
      blk-wbt: abstract out end IO completion handler · 061a5427
      Jens Axboe authored
      Prep patch for calling the handler from a different context,
      no functional changes in this patch.
      Tested-by: default avatarAgarwal, Anchal <anchalag@amazon.com>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      061a5427
  2. 25 Aug, 2018 6 commits
  3. 24 Aug, 2018 32 commits