1. 23 6月, 2006 2 次提交
    • J
      [PATCH] Kill PF_SYNCWRITE flag · b31dc66a
      Jens Axboe 提交于
      A process flag to indicate whether we are doing sync io is incredibly
      ugly. It also causes performance problems when one does a lot of async
      io and then proceeds to sync it. Part of the io will go out as async,
      and the other part as sync. This causes a disconnect between the
      previously submitted io and the synced io. For io schedulers such as CFQ,
      this will cause us lost merges and suboptimal behaviour in scheduling.
      
      Remove PF_SYNCWRITE completely from the fsync/msync paths, and let
      the O_DIRECT path just directly indicate that the writes are sync
      by using WRITE_SYNC instead.
      Signed-off-by: NJens Axboe <axboe@suse.de>
      b31dc66a
    • J
      [PATCH] cfq-iosched: Don't set the queue batching limits · 271f18f1
      Jens Axboe 提交于
      We cannot update them if the user changes nr_requests, so don't
      set it in the first place. The gains are pretty questionable as
      well. The batching loss has been shown to decrease throughput.
      Signed-off-by: NJens Axboe <axboe@suse.de>
      271f18f1
  2. 21 6月, 2006 1 次提交
  3. 15 6月, 2006 1 次提交
  4. 09 6月, 2006 1 次提交
    • J
      [PATCH] elevator switching race · bc1c1169
      Jens Axboe 提交于
      There's a race between shutting down one io scheduler and firing up the
      next, in which a new io could enter and cause the io scheduler to be
      invoked with bad or NULL data.
      
      To fix this, we need to maintain the queue lock for a bit longer.
      Unfortunately we cannot do that, since the elevator init requires to be
      run without the lock held.  This isn't easily fixable, without also
      changing the mempool API.  So split the initialization into two parts,
      and alloc-init operation and an attach operation.  Then we can
      preallocate the io scheduler and related structures, and run the attach
      inside the lock after we detach the old one.
      
      This patch has survived 30 minutes of 1 second io scheduler switching
      with a very busy io load.
      Signed-off-by: NJens Axboe <axboe@suse.de>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      bc1c1169
  5. 02 6月, 2006 1 次提交
  6. 01 6月, 2006 4 次提交
  7. 31 5月, 2006 1 次提交
  8. 21 4月, 2006 1 次提交
  9. 19 4月, 2006 1 次提交
  10. 18 4月, 2006 2 次提交
  11. 28 3月, 2006 3 次提交
    • J
      [BLOCK] cfq-iosched: seek and async performance fixes · 206dc69b
      Jens Axboe 提交于
      Detect whether a given process is seeky and if so disable (mostly) the
      idle window if it is. We still allow just a little idle time, just enough
      to allow that process to submit a new request. That is needed to maintain
      fairness across priority groups.
      
      In some cases, we could setup several async queues. This is not optimal
      from a performance POV, since we want all async io in one queue to perform
      good sorting on it. It also impacted sync queues, as async io got too much
      slice time.
      Signed-off-by: NJens Axboe <axboe@suse.de>
      206dc69b
    • A
      [PATCH] cfq-iosched: small cfq_choose_req() optimization · e8a99053
      Andreas Mohr 提交于
      this is a small optimization to cfq_choose_req() in the CFQ I/O scheduler
      (this function is a semi-often invoked candidate in an oprofile log):
      by using a bit mask variable, we can use a simple switch() to check
      the various cases instead of having to query two variables for each check.
      Benefit: 251 vs. 285 bytes footprint of cfq_choose_req().
      Also, common case 0 (no request wrapping) is now checked first in code.
      Signed-off-by: NAndreas Mohr <andi@lisas.de>
      Signed-off-by: NJens Axboe <axboe@suse.de>
      e8a99053
    • J
      [PATCH] [BLOCK] cfq-iosched: change cfq io context linking from list to tree · e2d74ac0
      Jens Axboe 提交于
      On setups with many disks, we spend a considerable amount of time
      looking up the process-disk mapping on each queue of io. Testing with
      a NULL based block driver, this costs 40-50% reduction in throughput
      for 1000 disks.
      Signed-off-by: NJens Axboe <axboe@suse.de>
      e2d74ac0
  12. 27 3月, 2006 1 次提交
  13. 19 3月, 2006 14 次提交
  14. 28 2月, 2006 1 次提交
    • J
      [PATCH] cfq-iosched: slice expiry fixups · 7b14e3b5
      Jens Axboe 提交于
      During testing of SLES10, we encountered a hang in the CFQ io scheduler.
      Turns out the deferred slice expiry logic is buggy, so remove that for
      now.  We could be left with an idle queue that would never wake up.  So
      kill that logic, always expire immediately.  Also fix a potential timer
      race condition.
      
      Patch looks bigger than it is, because it moves a function.
      Signed-off-by: NJens Axboe <axboe@suse.de>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      7b14e3b5
  15. 06 1月, 2006 1 次提交
  16. 19 11月, 2005 1 次提交
  17. 12 11月, 2005 2 次提交
  18. 04 11月, 2005 1 次提交
  19. 31 10月, 2005 1 次提交