vhost: add (set|get)_coalescing to virtio_blk transport
This fixes the behavior of spdk_vhost_(set|get)_coalescing() on non-vhost-user devices. Signed-off-by: Konrad Sztyber <konrad.sztyber@intel.com> Change-Id: Ia17cd4c0ed4bad262090e05f83727c1516c21f92 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/15772 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com>
This commit is contained in:
parent
25d55f48c1
commit
0db7a0dc7f
@ -1544,6 +1544,24 @@ vhost_blk_get_config(struct spdk_vhost_dev *vdev, uint8_t *config,
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int
|
||||||
|
vhost_blk_set_coalescing(struct spdk_vhost_dev *vdev, uint32_t delay_base_us,
|
||||||
|
uint32_t iops_threshold)
|
||||||
|
{
|
||||||
|
struct spdk_vhost_blk_dev *bvdev = to_blk_dev(vdev);
|
||||||
|
|
||||||
|
return bvdev->ops->set_coalescing(vdev, delay_base_us, iops_threshold);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
vhost_blk_get_coalescing(struct spdk_vhost_dev *vdev, uint32_t *delay_base_us,
|
||||||
|
uint32_t *iops_threshold)
|
||||||
|
{
|
||||||
|
struct spdk_vhost_blk_dev *bvdev = to_blk_dev(vdev);
|
||||||
|
|
||||||
|
bvdev->ops->get_coalescing(vdev, delay_base_us, iops_threshold);
|
||||||
|
}
|
||||||
|
|
||||||
static const struct spdk_vhost_user_dev_backend vhost_blk_user_device_backend = {
|
static const struct spdk_vhost_user_dev_backend vhost_blk_user_device_backend = {
|
||||||
.session_ctx_size = sizeof(struct spdk_vhost_blk_session) - sizeof(struct spdk_vhost_session),
|
.session_ctx_size = sizeof(struct spdk_vhost_blk_session) - sizeof(struct spdk_vhost_session),
|
||||||
.start_session = vhost_blk_start,
|
.start_session = vhost_blk_start,
|
||||||
@ -1557,8 +1575,8 @@ static const struct spdk_vhost_dev_backend vhost_blk_device_backend = {
|
|||||||
.dump_info_json = vhost_blk_dump_info_json,
|
.dump_info_json = vhost_blk_dump_info_json,
|
||||||
.write_config_json = vhost_blk_write_config_json,
|
.write_config_json = vhost_blk_write_config_json,
|
||||||
.remove_device = vhost_blk_destroy,
|
.remove_device = vhost_blk_destroy,
|
||||||
.set_coalescing = vhost_user_set_coalescing,
|
.set_coalescing = vhost_blk_set_coalescing,
|
||||||
.get_coalescing = vhost_user_get_coalescing,
|
.get_coalescing = vhost_blk_get_coalescing,
|
||||||
};
|
};
|
||||||
|
|
||||||
int
|
int
|
||||||
@ -1792,6 +1810,8 @@ static const struct spdk_virtio_blk_transport_ops vhost_user_blk = {
|
|||||||
.destroy_ctrlr = vhost_user_blk_destroy_ctrlr,
|
.destroy_ctrlr = vhost_user_blk_destroy_ctrlr,
|
||||||
|
|
||||||
.bdev_event = vhost_user_bdev_event_cb,
|
.bdev_event = vhost_user_bdev_event_cb,
|
||||||
|
.set_coalescing = vhost_user_set_coalescing,
|
||||||
|
.get_coalescing = vhost_user_get_coalescing,
|
||||||
};
|
};
|
||||||
|
|
||||||
SPDK_VIRTIO_BLK_TRANSPORT_REGISTER(vhost_user_blk, &vhost_user_blk);
|
SPDK_VIRTIO_BLK_TRANSPORT_REGISTER(vhost_user_blk, &vhost_user_blk);
|
||||||
|
@ -587,6 +587,18 @@ struct spdk_virtio_blk_transport_ops {
|
|||||||
*/
|
*/
|
||||||
void (*bdev_event)(enum spdk_bdev_event_type type, struct spdk_vhost_dev *vdev,
|
void (*bdev_event)(enum spdk_bdev_event_type type, struct spdk_vhost_dev *vdev,
|
||||||
bdev_event_cb_complete cb, void *cb_arg);
|
bdev_event_cb_complete cb, void *cb_arg);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set coalescing parameters.
|
||||||
|
*/
|
||||||
|
int (*set_coalescing)(struct spdk_vhost_dev *vdev, uint32_t delay_base_us,
|
||||||
|
uint32_t iops_threshold);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get coalescing parameters.
|
||||||
|
*/
|
||||||
|
void (*get_coalescing)(struct spdk_vhost_dev *vdev, uint32_t *delay_base_us,
|
||||||
|
uint32_t *iops_threshold);
|
||||||
};
|
};
|
||||||
|
|
||||||
struct spdk_virtio_blk_transport {
|
struct spdk_virtio_blk_transport {
|
||||||
|
Loading…
Reference in New Issue
Block a user