Bart Van Assche
9cc5169cd4
block: Improve physical block alignment of split bios
...
Consider the following example:
* The logical block size is 4 KB.
* The physical block size is 8 KB.
* max_sectors equals (16 KB >> 9) sectors.
* A non-aligned 4 KB and an aligned 64 KB bio are merged into a single
non-aligned 68 KB bio.
The current behavior is to split such a bio into (16 KB + 16 KB + 16 KB
+ 16 KB + 4 KB). The start of none of these five bio's is aligned to a
physical block boundary.
This patch ensures that such a bio is split into four aligned and
one non-aligned bio instead of being split into five non-aligned bios.
This improves performance because most block devices can handle aligned
requests faster than non-aligned requests.
Since the physical block size is larger than or equal to the logical
block size, this patch preserves the guarantee that the returned
value is a multiple of the logical block size.
Cc: Christoph Hellwig <hch@infradead.org>
Cc: Ming Lei <ming.lei@redhat.com>
Cc: Hannes Reinecke <hare@suse.com>
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2019-08-04 21:41:29 -06:00
..
partitions
docs: admin-guide: add a series of orphaned documents
2019-07-15 11:03:02 -03:00
badblocks.c
block: switch all files cleared marked as GPLv2 to SPDX tags
2019-04-30 16:11:57 -06:00
bfq-cgroup.c
block: rename CONFIG_DEBUG_BLK_CGROUP to CONFIG_BFQ_CGROUP_DEBUG
2019-06-20 10:32:35 -06:00
bfq-iosched.c
for-linus-20190726
2019-07-26 10:32:12 -07:00
bfq-iosched.h
block, bfq: detect wakers and unconditionally inject their I/O
2019-06-25 09:07:34 -06:00
bfq-wf2q.c
block: switch all files cleared marked as GPLv2 or later to SPDX tags
2019-04-30 16:11:59 -06:00
bio-integrity.c
block/bio-integrity: fix a memory leak bug
2019-07-11 20:01:21 -06:00
bio.c
block: Document the bio splitting functions
2019-08-04 21:41:29 -06:00
blk-cgroup.c
blkcg: allow blkcg_policy->pd_stat() to print non-debug info too
2019-07-16 10:06:39 -06:00
blk-core.c
block: Disable write plugging for zoned block devices
2019-07-10 14:18:01 -06:00
blk-exec.c
block: add SPDX tags to block layer files missing licensing information
2019-04-30 16:12:03 -06:00
blk-flush.c
block: switch all files cleared marked as GPLv2 to SPDX tags
2019-04-30 16:11:57 -06:00
blk-integrity.c
docs: block: convert to ReST
2019-07-15 09:20:27 -03:00
blk-ioc.c
blk-iolatency.c
blkcg: allow blkcg_policy->pd_stat() to print non-debug info too
2019-07-16 10:06:39 -06:00
blk-lib.c
blk-map.c
block: remove the bi_phys_segments field in struct bio
2019-06-20 10:29:22 -06:00
blk-merge.c
block: Improve physical block alignment of split bios
2019-08-04 21:41:29 -06:00
blk-mq-cpumap.c
blk-mq: Document the blk_mq_hw_queue_to_node() arguments
2019-05-31 15:12:34 -06:00
blk-mq-debugfs-zoned.c
block: Cleanup license notice
2019-01-17 21:21:40 -07:00
blk-mq-debugfs.c
for-5.3/block-20190708
2019-07-09 10:45:06 -07:00
blk-mq-debugfs.h
blk-mq: no need to check return value of debugfs_create functions
2019-06-13 03:00:30 -06:00
blk-mq-pci.c
block: Fix blk_mq_*_map_queues() kernel-doc headers
2019-05-31 15:12:34 -06:00
blk-mq-rdma.c
block: Fix blk_mq_*_map_queues() kernel-doc headers
2019-05-31 15:12:34 -06:00
blk-mq-sched.c
blk-mq: remove blk_mq_put_ctx()
2019-07-02 21:03:27 -06:00
blk-mq-sched.h
block: blk-mq: Remove blk_mq_sched_started_request and started_request
2019-07-23 07:25:09 -06:00
blk-mq-sysfs.c
for-5.2/block-20190507
2019-05-07 18:14:36 -07:00
blk-mq-tag.c
blk-mq: introduce blk_mq_tagset_wait_completed_request()
2019-08-04 21:41:29 -06:00
blk-mq-tag.h
blk-mq-virtio.c
block: Fix blk_mq_*_map_queues() kernel-doc headers
2019-05-31 15:12:34 -06:00
blk-mq.c
blk-mq: remove blk_mq_complete_request_sync
2019-08-04 21:41:29 -06:00
blk-mq.h
block: Disable write plugging for zoned block devices
2019-07-10 14:18:01 -06:00
blk-pm.c
blk-pm.h
blk-rq-qos.c
rq-qos: use a mb for got_token
2019-07-18 10:20:14 -06:00
blk-rq-qos.h
block: add SPDX tags to block layer files missing licensing information
2019-04-30 16:12:03 -06:00
blk-settings.c
block: fix max segment size handling in blk_queue_virt_boundary
2019-07-26 12:50:57 -06:00
blk-softirq.c
blk-stat.c
block: add SPDX tags to block layer files missing licensing information
2019-04-30 16:12:03 -06:00
blk-stat.h
block: deactivate blk_stat timer in wbt_disable_default()
2018-12-12 06:47:51 -07:00
blk-sysfs.c
block: free sched's request pool in blk_cleanup_queue
2019-06-06 22:39:39 -06:00
blk-throttle.c
blk-throttle: fix zero wait time for iops throttled group
2019-07-10 09:00:57 -06:00
blk-timeout.c
block: add SPDX tags to block layer files missing licensing information
2019-04-30 16:12:03 -06:00
blk-wbt.c
block: add SPDX tags to block layer files missing licensing information
2019-04-30 16:12:03 -06:00
blk-wbt.h
blk-zoned.c
block: Limit zone array allocation size
2019-07-11 20:04:40 -06:00
blk.h
block: mark blk_rq_bio_prep as inline
2019-06-20 10:29:22 -06:00
bounce.c
block: remove the i argument to bio_for_each_segment_all
2019-04-30 09:26:13 -06:00
bsg-lib.c
block: Fix bsg_setup_queue() kernel-doc header
2019-05-31 15:12:34 -06:00
bsg.c
block: switch all files cleared marked as GPLv2 to SPDX tags
2019-04-30 16:11:57 -06:00
cmdline-parser.c
compat_ioctl.c
elevator.c
block: free sched's request pool in blk_cleanup_queue
2019-06-06 22:39:39 -06:00
genhd.c
block: fix sysfs module parameters directory path in comment
2019-07-16 10:16:33 -06:00
ioctl.c
block: add SPDX tags to block layer files missing licensing information
2019-04-30 16:12:03 -06:00
ioprio.c
docs: block: convert to ReST
2019-07-15 09:20:27 -03:00
Kconfig
docs: cgroup-v1: add it to the admin-guide book
2019-07-15 11:03:02 -03:00
Kconfig.iosched
docs: block: convert to ReST
2019-07-15 09:20:27 -03:00
kyber-iosched.c
blk-mq: remove blk_mq_put_ctx()
2019-07-02 21:03:27 -06:00
Makefile
mq-deadline.c
docs: block: convert to ReST
2019-07-15 09:20:27 -03:00
opal_proto.h
block: sed-opal: check size of shadow mbr
2019-06-29 10:34:08 -06:00
partition-generic.c
block: fix use-after-free on gendisk
2019-04-22 09:48:12 -06:00
scsi_ioctl.c
block: switch all files cleared marked as GPLv2 to SPDX tags
2019-04-30 16:11:57 -06:00
sed-opal.c
block: sed-opal: check size of shadow mbr
2019-06-29 10:34:08 -06:00
t10-pi.c
block: switch all files cleared marked as GPLv2 to SPDX tags
2019-04-30 16:11:57 -06:00