X-Git-Url: https://git.kernel.dk/?a=blobdiff_plain;ds=sidebyside;f=verify.c;h=7957bd4110d88bea8aecc242c6460f739871ef99;hb=d1c46c049cfba2028abc45246e2609bcee52d0f3;hp=73c1262946f5c93a7deb5b28b898b2f4a6720c56;hpb=cbe8d7561cf6d81d741d87eb7940db2a111d2144;p=fio.git diff --git a/verify.c b/verify.c index 73c12629..7957bd41 100644 --- a/verify.c +++ b/verify.c @@ -30,20 +30,19 @@ void fill_pattern(struct thread_data *td, void *p, unsigned int len, struct io_u fill_random_buf(p, len); break; case 1: - if (io_u->buf_filled && io_u->buf_filled_len >= len) { + if (io_u->buf_filled_len >= len) { dprint(FD_VERIFY, "using already filled verify pattern b=0 len=%u\n", len); return; } dprint(FD_VERIFY, "fill verify pattern b=0 len=%u\n", len); memset(p, td->o.verify_pattern[0], len); - io_u->buf_filled = 1; io_u->buf_filled_len = len; break; default: { unsigned int i = 0, size = 0; unsigned char *b = p; - if (io_u->buf_filled && io_u->buf_filled_len >= len) { + if (io_u->buf_filled_len >= len) { dprint(FD_VERIFY, "using already filled verify pattern b=%d len=%u\n", td->o.verify_pattern_bytes, len); return; @@ -58,7 +57,6 @@ void fill_pattern(struct thread_data *td, void *p, unsigned int len, struct io_u memcpy(b+i, td->o.verify_pattern, size); i += size; } - io_u->buf_filled = 1; io_u->buf_filled_len = len; break; } @@ -888,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", @@ -909,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;