From 06aa4d2d6b16a5c6fac5884681bd32d12f47ef34 Mon Sep 17 00:00:00 2001 From: VadimTK Date: Thu, 17 Mar 2016 00:28:43 -0400 Subject: [PATCH 1/4] Fix the issue when threads running < num_threads --- sysbench/sysbench.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/sysbench/sysbench.c b/sysbench/sysbench.c index c008037..5a2fdae 100644 --- a/sysbench/sysbench.c +++ b/sysbench/sysbench.c @@ -474,6 +474,7 @@ static void *runner_thread(void *arg) thread_id = ctxt->id; log_text(LOG_DEBUG, "Runner thread started (%d)!", thread_id); + pthread_mutex_lock(&thread_start_mutex); if (test->ops.thread_init != NULL && test->ops.thread_init(thread_id) != 0) { sb_globals.error = 1; @@ -484,9 +485,11 @@ static void *runner_thread(void *arg) We do this to make sure all threads get to this barrier about the same time */ - pthread_mutex_lock(&thread_start_mutex); sb_globals.num_running++; pthread_mutex_unlock(&thread_start_mutex); + while(sb_globals.num_running < sb_globals.num_threads) { + sleep(1); + } do { From 5d87570f6b40c76e3e7937e7070337692ddabba1 Mon Sep 17 00:00:00 2001 From: Vadim Tk Date: Thu, 24 Mar 2016 22:57:49 -0400 Subject: [PATCH 2/4] Fix prepare parallel for new thread initialization --- sysbench/tests/db/parallel_prepare.lua | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/sysbench/tests/db/parallel_prepare.lua b/sysbench/tests/db/parallel_prepare.lua index a28af58..f956eb7 100644 --- a/sysbench/tests/db/parallel_prepare.lua +++ b/sysbench/tests/db/parallel_prepare.lua @@ -1,12 +1,16 @@ +-- for proper initialization use --max-requests = N, where N is --num-threads +-- pathtest = string.match(test, "(.*/)") or "" dofile(pathtest .. "common.lua") function thread_init(thread_id) + set_vars() +end + +function event(thread_id) local index_name local i - set_vars() - print("thread prepare"..thread_id) if (oltp_secondary) then @@ -20,7 +24,3 @@ function thread_init(thread_id) end end - -function event(thread_id) - -end From cb9a2cdc293b1d60d551b4d3de00c69586a98544 Mon Sep 17 00:00:00 2001 From: VadimTk Date: Fri, 8 Apr 2016 17:34:50 +0000 Subject: [PATCH 3/4] Revert "Fix the issue when threads running < num_threads" This reverts commit 06aa4d2d6b16a5c6fac5884681bd32d12f47ef34. --- sysbench/sysbench.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/sysbench/sysbench.c b/sysbench/sysbench.c index 5a2fdae..c008037 100644 --- a/sysbench/sysbench.c +++ b/sysbench/sysbench.c @@ -474,7 +474,6 @@ static void *runner_thread(void *arg) thread_id = ctxt->id; log_text(LOG_DEBUG, "Runner thread started (%d)!", thread_id); - pthread_mutex_lock(&thread_start_mutex); if (test->ops.thread_init != NULL && test->ops.thread_init(thread_id) != 0) { sb_globals.error = 1; @@ -485,11 +484,9 @@ static void *runner_thread(void *arg) We do this to make sure all threads get to this barrier about the same time */ + pthread_mutex_lock(&thread_start_mutex); sb_globals.num_running++; pthread_mutex_unlock(&thread_start_mutex); - while(sb_globals.num_running < sb_globals.num_threads) { - sleep(1); - } do { From 4190ad29b701526c539df4ddd5c8d19b13090eb5 Mon Sep 17 00:00:00 2001 From: Vadim Tk Date: Sun, 10 Apr 2016 19:59:06 -0400 Subject: [PATCH 4/4] adjust event generation for a high volume --- sysbench/sysbench.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/sysbench/sysbench.c b/sysbench/sysbench.c index 0c1e5a7..3e91306 100644 --- a/sysbench/sysbench.c +++ b/sysbench/sysbench.c @@ -606,15 +606,16 @@ static void *eventgen_thread_proc(void *arg) next_ns = next_ns + intr_ns*1000; if (next_ns > curr_ns) + { pause_ns = next_ns - curr_ns; + usleep(pause_ns / 1000); + } else { - pause_ns = 1000; log_timestamp(LOG_DEBUG, &sb_globals.exec_timer, "Event generation thread is too slow"); } - usleep(pause_ns / 1000); queue_array[i].event_time = sb_timer_value(&sb_globals.exec_timer); pthread_mutex_lock(&event_queue_mutex);