From: bart Van Assche Date: Sun, 1 Aug 2010 19:31:26 +0000 (+0200) Subject: Reduce thread stack size X-Git-Tag: fio-1.43-rc1~12 X-Git-Url: https://git.kernel.dk/?p=fio.git;a=commitdiff_plain;h=304a47c7d94f407cc72a87025679a67f02288447;hp=2da7df1d7d002d11161374ac4f0144521f7be0f0 Reduce thread stack size This patch reduces the stack size required by fio threads and hence allows to run fio with 200 or more threads on systems with a moderate amount of virtual memory. Signed-off-by: Bart Van Assche Signed-off-by: Jens Axboe --- diff --git a/fio.c b/fio.c index 896f7977..6ab0f4ad 100644 --- a/fio.c +++ b/fio.c @@ -1380,9 +1380,13 @@ static void *gtod_thread_main(void *data) static int fio_start_gtod_thread(void) { + pthread_attr_t attr; int ret; - ret = pthread_create(>od_thread, NULL, gtod_thread_main, NULL); + pthread_attr_init(&attr); + pthread_attr_setstacksize(&attr, PTHREAD_STACK_MIN); + ret = pthread_create(>od_thread, &attr, gtod_thread_main, NULL); + pthread_attr_destroy(&attr); if (ret) { log_err("Can't create gtod thread: %s\n", strerror(ret)); return 1; diff --git a/verify.c b/verify.c index 42ea462f..7957bd41 100644 --- a/verify.c +++ b/verify.c @@ -886,12 +886,16 @@ done: int verify_async_init(struct thread_data *td) { int i, ret; + pthread_attr_t attr; + + pthread_attr_init(&attr); + pthread_attr_setstacksize(&attr, PTHREAD_STACK_MIN); td->verify_thread_exit = 0; td->verify_threads = malloc(sizeof(pthread_t) * td->o.verify_async); for (i = 0; i < td->o.verify_async; i++) { - ret = pthread_create(&td->verify_threads[i], NULL, + ret = pthread_create(&td->verify_threads[i], &attr, verify_async_thread, td); if (ret) { log_err("fio: async verify creation failed: %s\n", @@ -907,6 +911,8 @@ int verify_async_init(struct thread_data *td) td->nr_verify_threads++; } + pthread_attr_destroy(&attr); + if (i != td->o.verify_async) { log_err("fio: only %d verify threads started, exiting\n", i); td->verify_thread_exit = 1;