Reduce thread stack size
PATCH 1/1 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 <[email protected]>
fio.c +5 -1
@@ -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 ;
verify.c +7 -1
@@ -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 ;
Jens Axboe
AppliedQuoted 6 lines · Bart Van Assche
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 <[email protected]>
Thanks, applied. From a quick look on the stack usage and what the min pthread stack size is here (16K), only the blktrace load looks problematic.
Signature · 4 lines
Jens Axboe Confidentiality Notice: This e-mail message, its contents and any attachments to it are confidential to the intended recipient, and may contain information that is privileged and/or exempt from disclosure under applicable law. If you are not the intended recipient, please immediately notify the sender and destroy the original e-mail message and any attachments (and any copies that may have been made) from your system or otherwise. Any unauthorized use, copying, disclosure or distribution of this information is strictly prohibited.