On 12/01/2016 03:03 AM, Jaze Lee wrote: > Hello, > Dose this issue can be fixed? Or the only method is to use offload > to workaround. Can you try the below patch? We simply need to make sure that we always regrow, when we enter an idle state. The logic was a little warped, the below is cleaner. diff --git a/backend.c b/backend.c index 8616fc2..ac71521 100644 --- a/backend.c +++ b/backend.c @@ -441,11 +441,8 @@ static int wait_for_completions(struct thread_data *td, struct timeval *time) int min_evts = 0; int ret; - if (td->flags & TD_F_REGROW_LOGS) { - ret = io_u_quiesce(td); - regrow_logs(td); - return ret; - } + if (td->flags & TD_F_REGROW_LOGS) + return io_u_quiesce(td); /* * if the queue is full, we MUST reap at least 1 event diff --git a/io_u.c b/io_u.c index 428d4b7..7420629 100644 --- a/io_u.c +++ b/io_u.c @@ -653,6 +653,9 @@ int io_u_quiesce(struct thread_data *td) completed += ret; } + if (td->flags & TD_F_REGROW_LOGS) + regrow_logs(td); + return completed; } -- Jens Axboe -- To unsubscribe from this list: send the line "unsubscribe fio" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html