1. 04 Nov, 2016 3 commits
    • Jan Kara's avatar
      fs: Provide function to unmap metadata for a range of blocks · 29f3ad7d
      Jan Kara authored
      Provide function equivalent to unmap_underlying_metadata() for a range
      of blocks. We somewhat optimize the function to use pagevec lookups
      instead of looking up buffer heads one by one and use page lock to pin
      buffer heads instead of mapping's private_lock to improve scalability.
      Signed-off-by: default avatarJan Kara <jack@suse.cz>
      Signed-off-by: default avatarJens Axboe <axboe@fb.com>
      29f3ad7d
    • Shaohua Li's avatar
      blk-mq: immediately dispatch big size request · 600271d9
      Shaohua Li authored
      This is corresponding part for blk-mq. Disk with multiple hardware
      queues doesn't need this as we only hold 1 request at most.
      Signed-off-by: default avatarShaohua Li <shli@fb.com>
      Signed-off-by: default avatarJens Axboe <axboe@fb.com>
      600271d9
    • Shaohua Li's avatar
      block: immediately dispatch big size request · 50d24c34
      Shaohua Li authored
      Currently block plug holds up to 16 non-mergeable requests. This makes
      sense if the request size is small, eg, reduce lock contention. But if
      request size is big enough, we don't need to worry about lock
      contention. Holding such request makes no sense and it lows the disk
      utilization.
      
      In practice, this improves 10% throughput for my raid5 sequential write
      workload.
      
      The size (128k) is arbitrary right now, but it makes sure lock
      contention is small. This probably could be more intelligent, eg, check
      average request size holded. Since this is mainly for sequential IO,
      probably not worthy.
      
      V2: check the last request instead of the first request, so as long as
      there is one big size request we flush the plug.
      Signed-off-by: default avatarShaohua Li <shli@fb.com>
      Signed-off-by: default avatarJens Axboe <axboe@fb.com>
      50d24c34
  2. 03 Nov, 2016 1 commit
  3. 02 Nov, 2016 16 commits
  4. 01 Nov, 2016 16 commits
  5. 28 Oct, 2016 4 commits