[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v2 09/20] blockjob: add set_speed to BlockJobDriver
From: |
Vladimir Sementsov-Ogievskiy |
Subject: |
[PATCH v2 09/20] blockjob: add set_speed to BlockJobDriver |
Date: |
Mon, 1 Jun 2020 21:11:07 +0300 |
We are going to use async block-copy call in backup, so we'll need to
passthrough setting backup speed to block-copy call.
Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
---
include/block/blockjob_int.h | 2 ++
blockjob.c | 6 ++++++
2 files changed, 8 insertions(+)
diff --git a/include/block/blockjob_int.h b/include/block/blockjob_int.h
index e2824a36a8..6633d83da2 100644
--- a/include/block/blockjob_int.h
+++ b/include/block/blockjob_int.h
@@ -52,6 +52,8 @@ struct BlockJobDriver {
* besides job->blk to the new AioContext.
*/
void (*attached_aio_context)(BlockJob *job, AioContext *new_context);
+
+ void (*set_speed)(BlockJob *job, int64_t speed);
};
/**
diff --git a/blockjob.c b/blockjob.c
index 470facfd47..6a0cd392e2 100644
--- a/blockjob.c
+++ b/blockjob.c
@@ -256,6 +256,7 @@ static bool job_timer_pending(Job *job)
void block_job_set_speed(BlockJob *job, int64_t speed, Error **errp)
{
+ const BlockJobDriver *drv = block_job_driver(job);
int64_t old_speed = job->speed;
if (job_apply_verb(&job->job, JOB_VERB_SET_SPEED, errp)) {
@@ -270,6 +271,11 @@ void block_job_set_speed(BlockJob *job, int64_t speed,
Error **errp)
ratelimit_set_speed(&job->limit, speed, BLOCK_JOB_SLICE_TIME);
job->speed = speed;
+
+ if (drv->set_speed) {
+ drv->set_speed(job, speed);
+ }
+
if (speed && speed <= old_speed) {
return;
}
--
2.21.0
- [PATCH v2 00/20] backup performance: block_status + async, Vladimir Sementsov-Ogievskiy, 2020/06/01
- [PATCH v2 01/20] block/block-copy: block_copy_dirty_clusters: fix failure check, Vladimir Sementsov-Ogievskiy, 2020/06/01
- [PATCH v2 02/20] iotests: 129 don't check backup "busy", Vladimir Sementsov-Ogievskiy, 2020/06/01
- [PATCH v2 04/20] block/block-copy: More explicit call_state, Vladimir Sementsov-Ogievskiy, 2020/06/01
- [PATCH v2 03/20] qapi: backup: add x-use-copy-range parameter, Vladimir Sementsov-Ogievskiy, 2020/06/01
- [PATCH v2 05/20] block/block-copy: implement block_copy_async, Vladimir Sementsov-Ogievskiy, 2020/06/01
- [PATCH v2 06/20] block/block-copy: add max_chunk and max_workers parameters, Vladimir Sementsov-Ogievskiy, 2020/06/01
- [PATCH v2 07/20] block/block-copy: add ratelimit to block-copy, Vladimir Sementsov-Ogievskiy, 2020/06/01
- [PATCH v2 08/20] block/block-copy: add block_copy_cancel, Vladimir Sementsov-Ogievskiy, 2020/06/01
- [PATCH v2 09/20] blockjob: add set_speed to BlockJobDriver,
Vladimir Sementsov-Ogievskiy <=
- [PATCH v2 10/20] job: call job_enter from job_user_pause, Vladimir Sementsov-Ogievskiy, 2020/06/01
- [PATCH v2 12/20] iotests: 56: prepare for backup over block-copy, Vladimir Sementsov-Ogievskiy, 2020/06/01
- [PATCH v2 11/20] qapi: backup: add x-max-chunk and x-max-workers parameters, Vladimir Sementsov-Ogievskiy, 2020/06/01
- [PATCH v2 14/20] iotests: 185: prepare for backup over block-copy, Vladimir Sementsov-Ogievskiy, 2020/06/01
- [PATCH v2 15/20] iotests: 219: prepare for backup over block-copy, Vladimir Sementsov-Ogievskiy, 2020/06/01
- [PATCH v2 13/20] iotests: 129: prepare for backup over block-copy, Vladimir Sementsov-Ogievskiy, 2020/06/01
- [PATCH v2 18/20] block/block-copy: drop unused argument of block_copy(), Vladimir Sementsov-Ogievskiy, 2020/06/01
- [PATCH v2 17/20] backup: move to block-copy, Vladimir Sementsov-Ogievskiy, 2020/06/01
- [PATCH v2 19/20] simplebench: bench_block_job: add cmd_options argument, Vladimir Sementsov-Ogievskiy, 2020/06/01