virtio-blk: add a knob to disable request merging
this adds a knob to disable request merging for debugging or benchmarks if dedired. Signed-off-by: Peter Lieven <pl@kamp.de> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
parent
95f7142abc
commit
c99495ac1b
|
@ -531,7 +531,8 @@ void virtio_blk_handle_request(VirtIOBlockReq *req, MultiReqBuffer *mrb)
|
||||||
/* merge would exceed maximum number of requests or IO direction
|
/* merge would exceed maximum number of requests or IO direction
|
||||||
* changes */
|
* changes */
|
||||||
if (mrb->num_reqs > 0 && (mrb->num_reqs == VIRTIO_BLK_MAX_MERGE_REQS ||
|
if (mrb->num_reqs > 0 && (mrb->num_reqs == VIRTIO_BLK_MAX_MERGE_REQS ||
|
||||||
is_write != mrb->is_write)) {
|
is_write != mrb->is_write ||
|
||||||
|
!req->dev->conf.request_merging)) {
|
||||||
virtio_blk_submit_multireq(req->dev->blk, mrb);
|
virtio_blk_submit_multireq(req->dev->blk, mrb);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -950,6 +951,8 @@ static Property virtio_blk_properties[] = {
|
||||||
#ifdef __linux__
|
#ifdef __linux__
|
||||||
DEFINE_PROP_BIT("scsi", VirtIOBlock, conf.scsi, 0, true),
|
DEFINE_PROP_BIT("scsi", VirtIOBlock, conf.scsi, 0, true),
|
||||||
#endif
|
#endif
|
||||||
|
DEFINE_PROP_BIT("request-merging", VirtIOBlock, conf.request_merging, 0,
|
||||||
|
true),
|
||||||
DEFINE_PROP_BIT("x-data-plane", VirtIOBlock, conf.data_plane, 0, false),
|
DEFINE_PROP_BIT("x-data-plane", VirtIOBlock, conf.data_plane, 0, false),
|
||||||
DEFINE_PROP_END_OF_LIST(),
|
DEFINE_PROP_END_OF_LIST(),
|
||||||
};
|
};
|
||||||
|
|
|
@ -113,6 +113,7 @@ struct VirtIOBlkConf
|
||||||
uint32_t scsi;
|
uint32_t scsi;
|
||||||
uint32_t config_wce;
|
uint32_t config_wce;
|
||||||
uint32_t data_plane;
|
uint32_t data_plane;
|
||||||
|
uint32_t request_merging;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct VirtIOBlockDataPlane;
|
struct VirtIOBlockDataPlane;
|
||||||
|
|
Loading…
Reference in a new issue