1. 27 Aug, 2008 2 commits
  2. 06 Aug, 2008 1 commit
  3. 26 Jul, 2008 1 commit
  4. 03 Jul, 2008 3 commits
  5. 07 May, 2008 2 commits
  6. 29 Apr, 2008 1 commit
  7. 21 Apr, 2008 1 commit
    • FUJITA Tomonori's avatar
      block: convert bio_copy_user to bio_copy_user_iov · c5dec1c3
      FUJITA Tomonori authored
      
      This patch enables bio_copy_user to take struct sg_iovec (renamed
      bio_copy_user_iov). bio_copy_user uses bio_copy_user_iov internally as
      bio_map_user uses bio_map_user_iov.
      
      The major changes are:
      
      - adds sg_iovec array to struct bio_map_data
      
      - adds __bio_copy_iov that copy data between bio and
      sg_iovec. bio_copy_user_iov and bio_uncopy_user use it.
      Signed-off-by: default avatarFUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
      Cc: Tejun Heo <htejun@gmail.com>
      Cc: Mike Christie <michaelc@cs.wisc.edu>
      Cc: James Bottomley <James.Bottomley@HansenPartnership.com>
      Signed-off-by: default avatarJens Axboe <jens.axboe@oracle.com>
      c5dec1c3
  8. 17 Mar, 2008 1 commit
  9. 19 Feb, 2008 1 commit
    • Adrian Bunk's avatar
      fs/block_dev.c: remove #if 0'ed code · 86b6c7a7
      Adrian Bunk authored
      Commit b2e895db
      
       #if 0'ed this code stating:
      
      <--  snip  -->
      
          [PATCH] revert blockdev direct io back to 2.6.19 version
      
          Andrew Vasquez is reporting as-iosched oopses and a 65% throughput
          slowdown due to the recent special-casing of direct-io against
          blockdevs.  We don't know why either of these things are occurring.
      
          The patch minimally reverts us back to the 2.6.19 code for a 2.6.20
          release.
      
      <--  snip  -->
      
      It has since been dead code, and unless someone wants to revive it now
      it's time to remove it.
      
      This patch also makes bio_release_pages() static again and removes the
      ki_bio_count member from struct kiocb, reverting changes that had been
      done for this dead code.
      Signed-off-by: default avatarAdrian Bunk <bunk@kernel.org>
      Signed-off-by: default avatarJens Axboe <axboe@carl.home.kernel.dk>
      86b6c7a7
  10. 28 Jan, 2008 1 commit
  11. 16 Oct, 2007 2 commits
  12. 10 Oct, 2007 3 commits
    • NeilBrown's avatar
      Drop 'size' argument from bio_endio and bi_end_io · 6712ecf8
      NeilBrown authored
      
      As bi_end_io is only called once when the reqeust is complete,
      the 'size' argument is now redundant.  Remove it.
      
      Now there is no need for bio_endio to subtract the size completed
      from bi_size.  So don't do that either.
      
      While we are at it, change bi_end_io to return void.
      Signed-off-by: default avatarNeil Brown <neilb@suse.de>
      Signed-off-by: default avatarJens Axboe <jens.axboe@oracle.com>
      6712ecf8
    • NeilBrown's avatar
      Don't decrement bi_size in bio_endio · 5bb23a68
      NeilBrown authored
      
      The only caller of bio_endio that does not pass the full bi_size
      is end_that_request_first.  Also, no ->bi_end_io method is really
      interested in bi_size being decremented.
      
      So move the decrement and related code into ll_rw_blk and merge it
      with order_bio_endio to form req_bio_endio which does endio functionality
      specific to request completion.
      
      As some ->bi_end_io methods do check bi_size of 0, we set it thus for
      now, but that will go in the next patch.
      Signed-off-by: default avatarNeil Brown <neilb@suse.de>
      
      ### Diffstat output
       ./block/ll_rw_blk.c |   42 +++++++++++++++++++++++++++---------------
       ./fs/bio.c          |   23 +++++++++++------------
       2 files changed, 38 insertions(+), 27 deletions(-)
      
      diff .prev/block/ll_rw_blk.c ./block/ll_rw_blk.c
      Signed-off-by: default avatarJens Axboe <jens.axboe@oracle.com>
      5bb23a68
    • NeilBrown's avatar
      Only call bi_end_io once for any bio · 9cc54d40
      NeilBrown authored
      
      Currently bi_end_io can be called multiple times as sub-requests
      complete.  However no ->bi_end_io function wants to know about that.
      So only call when the bio is complete.
      Signed-off-by: default avatarNeil Brown <neilb@suse.de>
      
      ### Diffstat output
       ./fs/bio.c |    4 +++-
       1 file changed, 3 insertions(+), 1 deletion(-)
      
      diff .prev/fs/bio.c ./fs/bio.c
      Signed-off-by: default avatarJens Axboe <jens.axboe@oracle.com>
      9cc54d40
  13. 24 Jul, 2007 1 commit
  14. 19 Jul, 2007 1 commit
    • Paul Mundt's avatar
      mm: Remove slab destructors from kmem_cache_create(). · 20c2df83
      Paul Mundt authored
      Slab destructors were no longer supported after Christoph's
      c59def9f
      
       change. They've been
      BUGs for both slab and slub, and slob never supported them
      either.
      
      This rips out support for the dtor pointer from kmem_cache_create()
      completely and fixes up every single callsite in the kernel (there were
      about 224, not including the slab allocator definitions themselves,
      or the documentation references).
      Signed-off-by: default avatarPaul Mundt <lethal@linux-sh.org>
      20c2df83
  15. 10 Jul, 2007 1 commit
  16. 07 May, 2007 1 commit
  17. 30 Apr, 2007 1 commit
    • Jens Axboe's avatar
      [BLOCK] Don't pin lots of memory in mempools · 5972511b
      Jens Axboe authored
      
      Currently we scale the mempool sizes depending on memory installed
      in the machine, except for the bio pool itself which sits at a fixed
      256 entry pre-allocation.
      
      There's really no point in "optimizing" this OOM path, we just need
      enough preallocated to make progress. A single unit is enough, lets
      scale it down to 2 just to be on the safe side.
      
      This patch saves ~150kb of pinned kernel memory on a 32-bit box.
      Signed-off-by: default avatarJens Axboe <jens.axboe@oracle.com>
      5972511b
  18. 13 Dec, 2006 1 commit
    • Chen, Kenneth W's avatar
      [PATCH] optimize o_direct on block devices · e61c9018
      Chen, Kenneth W authored
      
      Implement block device specific .direct_IO method instead of going through
      generic direct_io_worker for block device.
      
      direct_io_worker() is fairly complex because it needs to handle O_DIRECT on
      file system, where it needs to perform block allocation, hole detection,
      extents file on write, and tons of other corner cases.  The end result is
      that it takes tons of CPU time to submit an I/O.
      
      For block device, the block allocation is much simpler and a tight triple
      loop can be written to iterate each iovec and each page within the iovec in
      order to construct/prepare bio structure and then subsequently submit it to
      the block layer.  This significantly speeds up O_D on block device.
      
      [akpm@osdl.org: small speedup]
      Signed-off-by: default avatarKen Chen <kenneth.w.chen@intel.com>
      Cc: Christoph Hellwig <hch@lst.de>
      Cc: Zach Brown <zach.brown@oracle.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      e61c9018
  19. 07 Dec, 2006 1 commit
  20. 01 Dec, 2006 2 commits
  21. 22 Nov, 2006 1 commit
    • David Howells's avatar
      WorkStruct: Pass the work_struct pointer instead of context data · 65f27f38
      David Howells authored
      
      Pass the work_struct pointer to the work function rather than context data.
      The work function can use container_of() to work out the data.
      
      For the cases where the container of the work_struct may go away the moment the
      pending bit is cleared, it is made possible to defer the release of the
      structure by deferring the clearing of the pending bit.
      
      To make this work, an extra flag is introduced into the management side of the
      work_struct.  This governs auto-release of the structure upon execution.
      
      Ordinarily, the work queue executor would release the work_struct for further
      scheduling or deallocation by clearing the pending bit prior to jumping to the
      work function.  This means that, unless the driver makes some guarantee itself
      that the work_struct won't go away, the work function may not access anything
      else in the work_struct or its container lest they be deallocated..  This is a
      problem if the auxiliary data is taken away (as done by the last patch).
      
      However, if the pending bit is *not* cleared before jumping to the work
      function, then the work function *may* access the work_struct and its container
      with no problems.  But then the work function must itself release the
      work_struct by calling work_release().
      
      In most cases, automatic release is fine, so this is the default.  Special
      initiators exist for the non-auto-release case (ending in _NAR).
      Signed-Off-By: default avatarDavid Howells <dhowells@redhat.com>
      65f27f38
  22. 11 Oct, 2006 1 commit
    • Andreas Mohr's avatar
      [PATCH] fs/bio.c: tweaks · bf02c082
      Andreas Mohr authored
      
      - Calculate a variable in bvec_alloc_bs() only once needed, not earlier
        (bio.o down from 18408 to 18376 Bytes, 32 Bytes saved, probably due to
        data locality improvements).
      
      - Init variable idx to silence a gcc warning which already existed in the
        unmodified original base file (bvec_alloc_bs() handles idx correctly, so
        there's no need for the warning):
      
      	fs/bio.c: In function `bio_alloc_bioset':
      	fs/bio.c:169: warning: `idx' may be used uninitialized in this function
      Signed-off-by: default avatarAndreas Mohr <andi@lisas.de>
      Acked-by: default avatarJens Axboe <axboe@kernel.dk>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      bf02c082
  23. 30 Sep, 2006 2 commits
  24. 17 Jun, 2006 1 commit
  25. 23 May, 2006 1 commit
  26. 26 Mar, 2006 3 commits
  27. 25 Mar, 2006 1 commit
  28. 23 Mar, 2006 2 commits