1. 02 Jan, 2009 3 commits
  2. 29 Dec, 2008 5 commits
    • Jens Axboe's avatar
      bio: get rid of bio_vec clearing · d3f76110
      Jens Axboe authored
      
      We don't need to clear the memory used for adding bio_vec entries,
      since nobody should be looking at members unitialized. Any valid
      use should be below bio->bi_vcnt, and that members up until that count
      must be valid since they were added through bio_add_page().
      Signed-off-by: default avatarJens Axboe <jens.axboe@oracle.com>
      d3f76110
    • Jens Axboe's avatar
      bio: add support for inlining a number of bio_vecs inside the bio · 392ddc32
      Jens Axboe authored
      
      When we go and allocate a bio for IO, we actually do two allocations.
      One for the bio itself, and one for the bi_io_vec that holds the
      actual pages we are interested in.
      
      This feature inlines a definable amount of io vecs inside the bio
      itself, so we eliminate the bio_vec array allocation for IO's up
      to a certain size. It defaults to 4 vecs, which is typically 16k
      of IO.
      Signed-off-by: default avatarJens Axboe <jens.axboe@oracle.com>
      392ddc32
    • Jens Axboe's avatar
      bio: allow individual slabs in the bio_set · bb799ca0
      Jens Axboe authored
      
      Instead of having a global bio slab cache, add a reference to one
      in each bio_set that is created. This allows for personalized slabs
      in each bio_set, so that they can have bios of different sizes.
      
      This means we can personalize the bios we return. File systems may
      want to embed the bio inside another structure, to avoid allocation
      more items (and stuffing them in ->bi_private) after the get a bio.
      Or we may want to embed a number of bio_vecs directly at the end
      of a bio, to avoid doing two allocations to return a bio. This is now
      possible.
      Signed-off-by: default avatarJens Axboe <jens.axboe@oracle.com>
      bb799ca0
    • Jens Axboe's avatar
      bio: move the slab pointer inside the bio_set · 1b434498
      Jens Axboe authored
      
      In preparation for adding differently sized bios.
      Signed-off-by: default avatarJens Axboe <jens.axboe@oracle.com>
      1b434498
    • Jens Axboe's avatar
      bio: only mempool back the largest bio_vec slab cache · 7ff9345f
      Jens Axboe authored
      
      We only very rarely need the mempool backing, so it makes sense to
      get rid of all but one of the mempool in a bio_set. So keep the
      largest bio_vec count mempool so we can always honor the largest
      allocation, and "upgrade" callers that fail.
      Signed-off-by: default avatarJens Axboe <jens.axboe@oracle.com>
      7ff9345f
  3. 26 Nov, 2008 2 commits
  4. 09 Oct, 2008 10 commits
  5. 27 Aug, 2008 2 commits
  6. 06 Aug, 2008 1 commit
  7. 26 Jul, 2008 1 commit
  8. 03 Jul, 2008 3 commits
  9. 07 May, 2008 2 commits
  10. 29 Apr, 2008 1 commit
  11. 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
  12. 17 Mar, 2008 1 commit
  13. 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
  14. 28 Jan, 2008 1 commit
  15. 16 Oct, 2007 2 commits
  16. 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
  17. 24 Jul, 2007 1 commit