Commit c99495ac authored by Peter Lieven's avatar Peter Lieven Committed by Kevin Wolf
Browse files

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: default avatarPeter Lieven <pl@kamp.de>
Signed-off-by: default avatarKevin Wolf <kwolf@redhat.com>
parent 95f7142a
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -531,7 +531,8 @@ void virtio_blk_handle_request(VirtIOBlockReq *req, MultiReqBuffer *mrb)
        /* merge would exceed maximum number of requests or IO direction
         * changes */
        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);
        }

@@ -950,6 +951,8 @@ static Property virtio_blk_properties[] = {
#ifdef __linux__
    DEFINE_PROP_BIT("scsi", VirtIOBlock, conf.scsi, 0, true),
#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_END_OF_LIST(),
};
+1 −0
Original line number Diff line number Diff line
@@ -113,6 +113,7 @@ struct VirtIOBlkConf
    uint32_t scsi;
    uint32_t config_wce;
    uint32_t data_plane;
    uint32_t request_merging;
};

struct VirtIOBlockDataPlane;