Commit eab96073 authored by GangCao's avatar GangCao Committed by Tomasz Zawadzki
Browse files

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: default avatarGangCao <gang.cao@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14911


Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: default avatarChangpeng Liu <changpeng.liu@intel.com>
Reviewed-by: default avatarwanghailiang <hailiangx.e.wang@intel.com>
Reviewed-by: default avatarPaul Luse <paul.e.luse@intel.com>
Reviewed-by: default avatarShuhei Matsumoto <smatsumoto@nvidia.com>
Community-CI: Mellanox Build Bot
parent 2b5f264e
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -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);

+5 −0
Original line number Diff line number Diff line
@@ -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;