1. 18 Dec, 2007 1 commit
  2. 19 Oct, 2007 1 commit
  3. 16 Oct, 2007 2 commits
  4. 12 Oct, 2007 1 commit
  5. 24 Jul, 2007 1 commit
  6. 17 Jul, 2007 1 commit
  7. 10 Jul, 2007 1 commit
  8. 30 Apr, 2007 1 commit
  9. 27 Mar, 2007 1 commit
    • Thibaut VARENE's avatar
      make elv_register() output atomic · 1ffb96c5
      Thibaut VARENE authored
      Booting 2.6.21-rc3-g45592145
      
       I noticed the following on one of my
      machines in the bootlog:
      
      io scheduler noop registered<6>Time: jiffies clocksource has been installed.
      
      io scheduler deadline registered (default)
      
      Looking at block/elevator.c, it appears that elv_register() uses two
      consecutive printks in a non-atomic way, leading to the above glitch. The
      attached trivial patch fixes this issue, by using a single printk.
      Signed-off-by: default avatarThibaut VARENE <varenet@parisc-linux.org>
      Signed-off-by: default avatarJens Axboe <jens.axboe@oracle.com>
      1ffb96c5
  10. 11 Feb, 2007 2 commits
  11. 23 Jan, 2007 1 commit
    • Linas Vepstas's avatar
      [PATCH] elevator: move clearing of unplug flag earlier · 95543179
      Linas Vepstas authored
      A flag was recently added to the elevator code to avoid
      performing an unplug when reuests are being re-queued.
      The goal of this flag was to avoid a deep recursion that
      can occur when re-queueing requests after a SCSI device/host
      reset.  See http://lkml.org/lkml/2006/5/17/254
      
      
      
      However, that fix added the flag near the bottom of a case
      statement, where an earlier break (in an if statement) could
      transport one out of the case, without setting the flag.
      This patch sets the flag earlier in the case statement.
      
      I re-discovered the deep recursion recently during testing;
      I was told that it was a known problem, and the fix to it was
      in the kernel I was testing. Indeed it was ... but it didn't
      fix the bug. With the patch below, I no longer see the bug.
      
      Signed-off by: Linas Vepstas <linas@austin.ibm.com>
      Signed-off-by: default avatarJens Axboe <axboe@suse.de>
      Cc: Chris Wright <chrisw@sous-sol.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      95543179
  12. 22 Dec, 2006 1 commit
  13. 20 Dec, 2006 1 commit
    • Jens Axboe's avatar
      [PATCH] cfq-iosched: don't allow sync merges across queues · da775265
      Jens Axboe authored
      
      Currently we allow any merge, even if the io originates from different
      processes. This can cause really bad starvation and unfairness, if those
      ios happen to be synchronous (reads or direct writes).
      
      So add a allow_merge hook to the io scheduler ops, so an io scheduler can
      help decide whether a bio/process combination may be merged with an
      existing request.
      Signed-off-by: default avatarJens Axboe <jens.axboe@oracle.com>
      da775265
  14. 01 Dec, 2006 1 commit
  15. 12 Oct, 2006 2 commits
  16. 30 Sep, 2006 7 commits
  17. 22 Aug, 2006 1 commit
  18. 30 Jun, 2006 1 commit
  19. 23 Jun, 2006 1 commit
  20. 08 Jun, 2006 1 commit
    • Jens Axboe's avatar
      [PATCH] elevator switching race · bc1c1169
      Jens Axboe authored
      
      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: default avatarJens Axboe <axboe@suse.de>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      bc1c1169
  21. 11 May, 2006 1 commit
    • Jens Axboe's avatar
      [BLOCK] limit request_fn recursion · dac07ec1
      Jens Axboe authored
      
      Don't recurse back into the driver even if the unplug threshold is met,
      when the driver asks for a requeue. This is both silly from a logical
      point of view (requeues typically happen due to driver/hardware
      shortage), and also dangerous since we could hit an endless request_fn
      -> requeue -> unplug -> request_fn loop and crash on stack overrun.
      
      Also limit blk_run_queue() to one level of recursion, similar to how
      blk_start_queue() works.
      
      This patch fixed a real problem with SLES10 and lpfc, and it could hit
      any SCSI lld that returns non-zero from it's ->queuecommand() handler.
      Signed-off-by: default avatarJens Axboe <axboe@suse.de>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      dac07ec1
  22. 20 Apr, 2006 1 commit
  23. 31 Mar, 2006 1 commit
    • OGAWA Hirofumi's avatar
      [PATCH] Don't pass boot parameters to argv_init[] · 9b41046c
      OGAWA Hirofumi authored
      
      The boot cmdline is parsed in parse_early_param() and
      parse_args(,unknown_bootoption).
      
      And __setup() is used in obsolete_checksetup().
      
      	start_kernel()
      		-> parse_args()
      			-> unknown_bootoption()
      				-> obsolete_checksetup()
      
      If __setup()'s callback (->setup_func()) returns 1 in
      obsolete_checksetup(), obsolete_checksetup() thinks a parameter was
      handled.
      
      If ->setup_func() returns 0, obsolete_checksetup() tries other
      ->setup_func().  If all ->setup_func() that matched a parameter returns 0,
      a parameter is seted to argv_init[].
      
      Then, when runing /sbin/init or init=app, argv_init[] is passed to the app.
      If the app doesn't ignore those arguments, it will warning and exit.
      
      This patch fixes a wrong usage of it, however fixes obvious one only.
      Signed-off-by: default avatarOGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      9b41046c
  24. 24 Mar, 2006 1 commit
  25. 23 Mar, 2006 1 commit
  26. 18 Mar, 2006 3 commits
  27. 08 Feb, 2006 1 commit
  28. 05 Feb, 2006 1 commit
  29. 24 Jan, 2006 1 commit
    • Nate Diller's avatar
      [BLOCK] elevator: allow default scheduler to potentially be modular · 248d5ca5
      Nate Diller authored
      
      Jens has decided that allowing the default scheduler to be a module is
      a bug, and should not be allowed under kconfig.  However, I find that
      scenario useful for debugging, and wish for the kernel to be able to
      handle this situation without OOPSing, if I enable such an option in
      the .config directly.  This patch dynamically checks for the presence
      of the compiled-in default, and falls back to no-op, emitting a
      suitable error message, when the default is not available
      
      Tested for a range of boot options on 2.6.16-rc1-mm2.
      Signed-off-by: default avatarNate Diller <nate.diller@gmail.com>
      Signed-off-by: default avatarJens Axboe <axboe@suse.de>
      248d5ca5