From: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
To: qemu-block@nongnu.org
Cc: qemu-devel@nongnu.org, vsementsov@virtuozzo.com,
peter.maydell@linaro.org, John Snow <jsnow@redhat.com>
Subject: [PULL 4/9] simplebench/bench-backup: add target-cache argument
Date: Tue, 4 May 2021 12:01:08 +0300 [thread overview]
Message-ID: <20210504090113.21311-5-vsementsov@virtuozzo.com> (raw)
In-Reply-To: <20210504090113.21311-1-vsementsov@virtuozzo.com>
Allow benchmark with different kinds of target cache.
Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Reviewed-by: John Snow <jsnow@redhat.com>
---
scripts/simplebench/bench-backup.py | 33 ++++++++++++++++++++------
scripts/simplebench/bench_block_job.py | 10 +++++---
2 files changed, 33 insertions(+), 10 deletions(-)
diff --git a/scripts/simplebench/bench-backup.py b/scripts/simplebench/bench-backup.py
index 72eae85bb1..fbc85f266f 100755
--- a/scripts/simplebench/bench-backup.py
+++ b/scripts/simplebench/bench-backup.py
@@ -65,13 +65,26 @@ def bench(args):
test_cases.append({'id': t, 'source': source, 'target': nbd_drv})
continue
- fname = dirs[dst] + '/test-target'
- if args.compressed:
- fname += '.qcow2'
- target = drv_file(fname)
- if args.compressed:
- target = drv_qcow2(target)
- test_cases.append({'id': t, 'source': source, 'target': target})
+ if args.target_cache == 'both':
+ target_caches = ['direct', 'cached']
+ else:
+ target_caches = [args.target_cache]
+
+ for c in target_caches:
+ o_direct = c == 'direct'
+ fname = dirs[dst] + '/test-target'
+ if args.compressed:
+ fname += '.qcow2'
+ target = drv_file(fname, o_direct=o_direct)
+ if args.compressed:
+ target = drv_qcow2(target)
+
+ test_id = t
+ if args.target_cache == 'both':
+ test_id += f'({c})'
+
+ test_cases.append({'id': test_id, 'source': source,
+ 'target': target})
binaries = [] # list of (<label>, <path>, [<options>])
for i, q in enumerate(args.env):
@@ -186,5 +199,11 @@ def __call__(self, parser, namespace, values, option_string=None):
Use compressed backup. It automatically means
automatically creating qcow2 target with
lazy_refcounts for each test run''', action='store_true')
+ p.add_argument('--target-cache', help='''\
+Setup cache for target nodes. Options:
+ direct: default, use O_DIRECT and aio=native
+ cached: use system cache (Qemu default) and aio=threads (Qemu default)
+ both: generate two test cases for each src:dst pair''',
+ default='direct', choices=('direct', 'cached', 'both'))
bench(p.parse_args())
diff --git a/scripts/simplebench/bench_block_job.py b/scripts/simplebench/bench_block_job.py
index 08f86ed9c1..8f8385ccce 100755
--- a/scripts/simplebench/bench_block_job.py
+++ b/scripts/simplebench/bench_block_job.py
@@ -115,9 +115,13 @@ def bench_block_copy(qemu_binary, cmd, cmd_options, source, target):
'-blockdev', json.dumps(target)])
-def drv_file(filename):
- return {'driver': 'file', 'filename': filename,
- 'cache': {'direct': True}, 'aio': 'native'}
+def drv_file(filename, o_direct=True):
+ node = {'driver': 'file', 'filename': filename}
+ if o_direct:
+ node['cache'] = {'direct': True}
+ node['aio'] = 'native'
+
+ return node
def drv_nbd(host, port):
--
2.29.2
next prev parent reply other threads:[~2021-05-04 9:09 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-05-04 9:01 [PULL 0/9] scripts/simplebench patches Vladimir Sementsov-Ogievskiy
2021-05-04 9:01 ` [PULL 1/9] simplebench: bench_one(): add slow_limit argument Vladimir Sementsov-Ogievskiy
2021-05-04 9:01 ` [PULL 2/9] simplebench: bench_one(): support count=1 Vladimir Sementsov-Ogievskiy
2021-05-04 9:01 ` [PULL 3/9] simplebench/bench-backup: add --compressed option Vladimir Sementsov-Ogievskiy
2021-05-04 9:01 ` Vladimir Sementsov-Ogievskiy [this message]
2021-05-04 9:01 ` [PULL 5/9] simplebench/bench_block_job: handle error in BLOCK_JOB_COMPLETED Vladimir Sementsov-Ogievskiy
2021-05-04 9:01 ` [PULL 6/9] simplebench/bench-backup: support qcow2 source files Vladimir Sementsov-Ogievskiy
2021-05-04 9:01 ` [PULL 7/9] simplebench/bench-backup: add --count and --no-initial-run Vladimir Sementsov-Ogievskiy
2021-05-04 9:01 ` [PULL 8/9] simplebench/bench-backup: add --drop-caches argument Vladimir Sementsov-Ogievskiy
2021-05-04 9:01 ` [PULL 9/9] MAINTAINERS: update Benchmark util: add git tree Vladimir Sementsov-Ogievskiy
2021-05-11 5:59 ` [PULL 0/9] scripts/simplebench patches Vladimir Sementsov-Ogievskiy
2021-05-11 7:39 ` Peter Maydell
2021-05-11 10:02 ` Vladimir Sementsov-Ogievskiy
2021-05-20 19:17 ` Peter Maydell
2021-05-20 19:23 ` Vladimir Sementsov-Ogievskiy
2021-05-21 12:45 ` Peter Maydell
2021-05-21 13:04 ` Vladimir Sementsov-Ogievskiy
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20210504090113.21311-5-vsementsov@virtuozzo.com \
--to=vsementsov@virtuozzo.com \
--cc=jsnow@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-block@nongnu.org \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.