Message ID | 1438035090.28978.19.camel@ssi (mailing list archive) |
---|---|
State | Accepted, archived |
Delegated to: | Mike Snitzer |
Headers | show |
On Mon, Jul 27, 2015 at 3:11 PM, Ming Lin <mlin@kernel.org> wrote: > It's more interesting if we look at how many bios are allocated for each > application IO request. > > e.g. 10+2 RAID6 with 128K chunk. > > Assume we only consider device max_segments limitation. > > # cat /sys/block/md0/queue/max_segments > 126 > > So blk_queue_split() will split the bio if its size > 126 pages(504K > bytes). Fix myself. I mean, blk_queue_split() will split the bio if bi_phys_segments > 126 -- dm-devel mailing list dm-devel@redhat.com https://www.redhat.com/mailman/listinfo/dm-devel
diff --git a/drivers/md/md.c b/drivers/md/md.c index a4aa6e5..2fde2ce 100644 --- a/drivers/md/md.c +++ b/drivers/md/md.c @@ -259,6 +259,10 @@ static void md_make_request(struct request_queue *q, struct bio *bio) blk_queue_split(q, &bio, q->bio_split); + if (!strcmp(current->comm, "dd") && bio_data_dir(bio) == WRITE) + printk("%s: bio %p, offset %lu, size %uK\n", __func__, + bio, bio->bi_iter.bi_sector<<9, bio->bi_iter.bi_size>>10); + if (mddev == NULL || mddev->pers == NULL || !mddev->ready) { bio_io_error(bio);