1. 24 Aug, 2005 1 commit
    • Jens Axboe's avatar
      [PATCH] cfq-iosched.c: minor fixes · 9c2c38a1
      Jens Axboe authored
      
      
      One critical fix and two minor fixes for 2.6.13-rc7:
      
      - Max depth must currently be 2 to allow barriers to function on SCSI
      - Prefer sync request over async in choosing the next request
      - Never allow async request to preempt or disturb the "anticipation" for
        a single cfq process context. This is as-designed, the code right now
        is buggy in that area.
      Signed-off-by: default avatarJens Axboe <axboe@suse.de>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      9c2c38a1
  2. 05 Aug, 2005 1 commit
    • Tejun Heo's avatar
      [PATCH] blk: fix tag shrinking (revive real_max_size) · ba025082
      Tejun Heo authored
      My patch in commit fa72b903 incorrectly
      removed blk_queue_tag->real_max_depth.
      
      The original resize implementation was incorrect in the following
      points.
      
       * actual allocation size of tag_index was shorter than real_max_size,
         but assumed to be of the same size, possibly causing memory access
         beyond the allocated area.
       * bits in tag_map between max_deptn and real_max_depth were
         initialized to 1's, making the tags permanently reserved.
      
      In an attempt to fix above two bugs, I had removed allocation optimization
      in init_tag_map and real_max_size.  Tag map/index were allocated and freed
      immediately during resize.
      
      Unfortunately, I wasn't considering that tag map/index can be resized
      dynamically with tags beyond new_depth active.  This led to accessing
      freed area after shrinking tags and led to the following bug reporting
      thread on linux-scsi.
      
         http://marc.theaimsgroup.com/?l=linux-scsi&m=112319898111885&w=2
      
      To fix the problem, I've revived real_max_depth without allocation
      optimization in init_tag_map, and Andrew Vasquez confirmed that the
      problem was fixed.  As Jens is not going to be available for a week, he
      asked me to make sure that this patch reaches you.
      
         http://marc.theaimsgroup.com/?l=linux-scsi&m=112325778530886&w=2
      
      
      
      Also, a comment was added to make sure that real_max_size is needed for
      dynamic shrinking.
      Signed-off-by: default avatarTejun Heo <htejun@gmail.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      ba025082
  3. 02 Aug, 2005 1 commit
  4. 28 Jul, 2005 1 commit
    • Mike Miller's avatar
      [PATCH] cciss per disk queue · ad2b9312
      Mike Miller authored
      
      
      This patch adds per disk queue functionality to cciss.  Sometime back I
      submitted a patch but it looks like only part of what I needed.  In the 2.6
      kernel if we have more than one logical volume the driver will Oops during
      rmmod.  It seems all of the queues actually point back to the same queue.
      So after deleting the first volume you hit a null pointer on the second
      one.
      
      This has been tested in our labs.  There is no difference in performance,
      it just fixes the Oops.
      Signed-off-by: default avatarMike Miller <mike.miller@hp.com>
      Cc: Jens Axboe <axboe@suse.de>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      ad2b9312
  5. 27 Jul, 2005 3 commits
  6. 29 Jun, 2005 4 commits
  7. 28 Jun, 2005 3 commits
    • Jens Axboe's avatar
      [PATCH] ll_rw_blk: prevent huge request allocations · 082cf69e
      Jens Axboe authored
      
      
      Currently we cap request allocations at q->nr_requests, but we allow a
      batching io context to allocate up to 32 more (default setting).  This
      can flood the queue with request allocations, with only a few batching
      processes.  The real fix would be to limit the number of batchers, but
      as that isn't currently tracked, I suggest we just cap the maximum
      number of allocated requests to eg 50% over the limit.
      
      This was observed in real life, users typically see this as vmstat bo
      numbers going off the wall with seconds of no queueing afterwards.
      Behaviour this bursty is not beneficial.
      Signed-off-by: default avatarJens Axboe <axboe@suse.de>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      082cf69e
    • Andrew Morton's avatar
      [PATCH] cciss_ioctl() warning fix · 97afa0a2
      Andrew Morton authored
      
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      97afa0a2
    • Andrew Morton's avatar
      [PATCH] cfq build fix · 99f95e52
      Andrew Morton authored
      
      
      drivers/block/cfq-iosched.c: In function 'cfq_put_queue':
      drivers/block/cfq-iosched.c:303: sorry, unimplemented: inlining failed in call to 'cfq_pending_requests': function body not available
      drivers/block/cfq-iosched.c:1080: sorry, unimplemented: called from here
      drivers/block/cfq-iosched.c: In function '__cfq_may_queue':
      drivers/block/cfq-iosched.c:1955: warning: the address of 'cfq_cfqq_must_alloc_slice', will always evaluate as 'true'
      make[1]: *** [drivers/block/cfq-iosched.o] Error 1
      make: *** [drivers/block/cfq-iosched.o] Error 2
      
      Cc: Jeff Garzik <jgarzik@pobox.com>
      Cc: Jens Axboe <axboe@suse.de>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      99f95e52
  8. 27 Jun, 2005 9 commits
  9. 26 Jun, 2005 1 commit
    • Christoph Lameter's avatar
      [PATCH] Cleanup patch for process freezing · 3e1d1d28
      Christoph Lameter authored
      
      
      1. Establish a simple API for process freezing defined in linux/include/sched.h:
      
         frozen(process)		Check for frozen process
         freezing(process)		Check if a process is being frozen
         freeze(process)		Tell a process to freeze (go to refrigerator)
         thaw_process(process)	Restart process
         frozen_process(process)	Process is frozen now
      
      2. Remove all references to PF_FREEZE and PF_FROZEN from all
         kernel sources except sched.h
      
      3. Fix numerous locations where try_to_freeze is manually done by a driver
      
      4. Remove the argument that is no longer necessary from two function calls.
      
      5. Some whitespace cleanup
      
      6. Clear potential race in refrigerator (provides an open window of PF_FREEZE
         cleared before setting PF_FROZEN, recalc_sigpending does not check
         PF_FROZEN).
      
      This patch does not address the problem of freeze_processes() violating the rule
      that a task may only modify its own flags by setting PF_FREEZE. This is not clean
      in an SMP environment. freeze(process) is therefore not SMP safe!
      Signed-off-by: default avatarChristoph Lameter <christoph@lameter.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      3e1d1d28
  10. 25 Jun, 2005 2 commits
  11. 23 Jun, 2005 12 commits
  12. 20 Jun, 2005 2 commits