diff --git a/examples/nvme/perf/perf.c b/examples/nvme/perf/perf.c index 587d3341f..41e77b86b 100644 --- a/examples/nvme/perf/perf.c +++ b/examples/nvme/perf/perf.c @@ -745,7 +745,6 @@ register_file(const char *path) entry->io_size_blocks = g_io_size_bytes / blklen; 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); @@ -1257,8 +1256,11 @@ register_ns(struct spdk_nvme_ctrlr *ctrlr, struct spdk_nvme_ns *ns) entry->size_in_ios = ns_size / g_io_size_bytes; entry->io_size_blocks = g_io_size_bytes / sector_size; - if (g_is_random && g_zipf_theta > 0) { - entry->zipf = spdk_zipf_create(entry->size_in_ios, g_zipf_theta, 0); + if (g_is_random) { + entry->seed = rand(); + if (g_zipf_theta > 0) { + entry->zipf = spdk_zipf_create(entry->size_in_ios, g_zipf_theta, 0); + } } entry->block_size = spdk_nvme_ns_get_extended_sector_size(ns); @@ -3000,6 +3002,9 @@ main(int argc, char **argv) struct spdk_env_opts opts; pthread_t thread_id = 0; + /* Use the runtime PID to set the random seed */ + srand(getpid()); + spdk_env_opts_init(&opts); opts.name = "perf"; opts.pci_allowed = g_allowed_pci_addr; diff --git a/test/bdev/bdevperf/bdevperf.c b/test/bdev/bdevperf/bdevperf.c index d9c6e2fd1..f60fa3f70 100644 --- a/test/bdev/bdevperf/bdevperf.c +++ b/test/bdev/bdevperf/bdevperf.c @@ -1215,8 +1215,6 @@ 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; @@ -2158,6 +2156,9 @@ main(int argc, char **argv) struct spdk_app_opts opts = {}; int rc; + /* Use the runtime PID to set the random seed */ + srand(getpid()); + spdk_app_opts_init(&opts, sizeof(opts)); opts.name = "bdevperf"; opts.rpc_addr = NULL;