test/bdevperf: set a random seed for rand rw testing

To fix issue: #2726

And also fix the examples/nvme/perf tool.

Change-Id: I4d1d362b7c1096d27a2d431851462d7bd161df88
Signed-off-by: GangCao <gang.cao@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14911
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
Reviewed-by: wanghailiang <hailiangx.e.wang@intel.com>
Reviewed-by: Paul Luse <paul.e.luse@intel.com>
Reviewed-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
Community-CI: Mellanox Build Bot
This commit is contained in:
GangCao 2022-10-11 02:12:15 -04:00 committed by Tomasz Zawadzki
parent 2b5f264e7b
commit eab96073cb
2 changed files with 11 additions and 2 deletions

View File

@ -744,9 +744,13 @@ register_file(const char *path)
entry->size_in_ios = size / g_io_size_bytes;
entry->io_size_blocks = g_io_size_bytes / blklen;
if (g_is_random && g_zipf_theta > 0) {
if (g_is_random) {
srand(getpid());
entry->seed = rand();
if (g_zipf_theta > 0) {
entry->zipf = spdk_zipf_create(entry->size_in_ios, g_zipf_theta, 0);
}
}
snprintf(entry->name, sizeof(entry->name), "%s", path);

View File

@ -1215,6 +1215,8 @@ end:
static void
job_init_rw(struct bdevperf_job *job, enum job_config_rw rw)
{
srand(getpid());
switch (rw) {
case JOB_CONFIG_RW_READ:
job->rw_percentage = 100;
@ -1225,16 +1227,19 @@ job_init_rw(struct bdevperf_job *job, enum job_config_rw rw)
case JOB_CONFIG_RW_RANDREAD:
job->is_random = true;
job->rw_percentage = 100;
job->seed = rand();
break;
case JOB_CONFIG_RW_RANDWRITE:
job->is_random = true;
job->rw_percentage = 0;
job->seed = rand();
break;
case JOB_CONFIG_RW_RW:
job->is_random = false;
break;
case JOB_CONFIG_RW_RANDRW:
job->is_random = true;
job->seed = rand();
break;
case JOB_CONFIG_RW_VERIFY:
job->verify = true;