1. 09 Apr, 2010 1 commit
    • Divyesh Shah's avatar
      cfq-iosched: Fix the incorrect timeslice accounting with forced_dispatch · 3440c49f
      Divyesh Shah authored
      When CFQ dispatches requests forcefully due to a barrier or changing iosched,
      it runs through all cfqq's dispatching requests and then expires each queue.
      However, it does not activate a cfqq before flushing its IOs resulting in
      using stale values for computing slice_used.
      This patch fixes it by calling activate queue before flushing reuqests from
      each queue.
      
      This is useful mostly for barrier requests because when the iosched is changing
      it really doesnt matter if we have incorrect accounting since we're going to
      break down all structures anyway.
      
      We also now expire the current timeslice before moving on with the dispatch
      to accurately account slice used for that cfqq.
      
      Signed-off-by: Divyesh Shah<dpshah@google.com>
      Signed-off-by: default avatarJens Axboe <jens.axboe@oracle.com>
      3440c49f
  2. 08 Apr, 2010 1 commit
  3. 05 Apr, 2010 1 commit
  4. 02 Apr, 2010 4 commits
  5. 25 Mar, 2010 2 commits
    • Divyesh Shah's avatar
      cfq-iosched: Do not merge queues of BE and IDLE classes · 39c01b21
      Divyesh Shah authored
      Even if they are found to be co-operating.
      
      The prio_trees do not have any IDLE cfqqs on them. cfq_close_cooperator()
      is called from cfq_select_queue() and cfq_completed_request(). The latter
      ensures that the close cooperator code does not get invoked if the current
      cfqq is of class IDLE but the former doesn't seem to have any such checks.
      So an IDLE cfqq may get merged with a BE cfqq from the same group which
      should be avoided.
      
      Signed-off-by: Divyesh Shah<dpshah@google.com>
      Acked-by: default avatarVivek Goyal <vgoyal@redhat.com>
      Signed-off-by: default avatarJens Axboe <jens.axboe@oracle.com>
      39c01b21
    • Divyesh Shah's avatar
      cfq-iosched: Add additional blktrace log messages in CFQ for easier debugging · b1ffe737
      Divyesh Shah authored
      These have helped us debug some issues we've noticed in earlier IO
      controller versions and should be useful now as well. The extra logging
      covers:
      - idling behavior. Since there are so many conditions based on which we decide
      to idle or not, this patch adds a log message for some conditions that we've
      found useful.
      - workload slices and current prio and workload type
      
      Changelog from v1:
      o moved log message from cfq_set_active_queue() to __cfq_set_active_queue()
      o changed queue_count to st->count
      
      Signed-off-by: Divyesh Shah<dpshah@google.com>
      Signed-off-by: default avatarJens Axboe <jens.axboe@oracle.com>
      b1ffe737
  6. 24 Mar, 2010 1 commit
  7. 19 Mar, 2010 3 commits
  8. 16 Mar, 2010 2 commits
  9. 15 Mar, 2010 24 commits
  10. 14 Mar, 2010 1 commit