1. 22 Jan, 2009 1 commit
    • Chris Mason's avatar
      Btrfs: do less aggressive btree readahead · a7175319
      Chris Mason authored
      Just before reading a leaf, btrfs scans the node for blocks that are
      close by and reads them too.  It tries to build up a large window
      of IO looking for blocks that are within a max distance from the top
      and bottom of the IO window.
      
      This patch changes things to just look for blocks within 64k of the
      target block.  It will trigger less IO and make for lower latencies on
      the read size.
      Signed-off-by: default avatarChris Mason <chris.mason@oracle.com>
      a7175319
  2. 21 Jan, 2009 16 commits
  3. 16 Jan, 2009 2 commits
    • Chris Mason's avatar
      Btrfs: fix ioctl arg size (userland incompatible change!) · c071fcfd
      Chris Mason authored
      The structure used to send device in btrfs ioctl calls was not
      properly aligned, and so 32 bit ioctls would not work properly on
      64 bit kernels.
      
      We could fix this with compat ioctls, but we're just one byte away
      and it doesn't make sense at this stage to carry about the compat ioctls
      forever at this stage in the project.
      
      This patch brings the ioctl arg up to an evenly aligned 4k.
      Signed-off-by: default avatarChris Mason <chris.mason@oracle.com>
      c071fcfd
    • Chris Mason's avatar
      Btrfs: Clear the device->running_pending flag before bailing on congestion · 1d9e2ae9
      Chris Mason authored
      Btrfs maintains a queue of async bio submissions so the checksumming
      threads don't have to wait on get_request_wait.  In order to avoid
      extra wakeups, this code has a running_pending flag that is used
      to tell new submissions they don't need to wake the thread.
      
      When the threads notice congestion on a single device, they
      may decide to requeue the job and move on to other devices.  This
      makes sure the running_pending flag is cleared before the
      job is requeued.
      
      It should help avoid IO stalls by making sure the task is woken up
      when new submissions come in.
      Signed-off-by: default avatarChris Mason <chris.mason@oracle.com>
      1d9e2ae9
  4. 09 Jan, 2009 1 commit
    • Chris Mason's avatar
      Btrfs: explicitly mark the tree log root for writeback · e293e97e
      Chris Mason authored
      Each subvolume has an extent_state_tree used to mark metadata
      that needs to be sent to disk while syncing the tree.  This is
      used in addition to the dirty bits on the pages themselves so that
      a single subvolume can be sent to disk efficiently in disk order.
      
      Normally this marking happens in btrfs_alloc_free_block, which also does
      special recording of dirty tree blocks for the tree log roots.
      
      Yan Zheng noticed that when the root of the log tree is allocated, it is added
      to the wrong writeback list.  The fix used here is to explicitly set
      it dirty as part of tree log creation.
      Signed-off-by: default avatarChris Mason <chris.mason@oracle.com>
      e293e97e
  5. 08 Jan, 2009 1 commit
  6. 07 Jan, 2009 2 commits
  7. 06 Jan, 2009 8 commits
  8. 05 Jan, 2009 9 commits