X-Git-Url: https://git.kernel.dk/?a=blobdiff_plain;f=flow.c;h=384187ef0a59095d7754c6435132afe00ef9fd09;hb=2fc703f639f1fac7d1f86917ba8bf4d0e81667b9;hp=e0ac13521f453ed32f2e1ce2fbcdaeb93e70adcc;hpb=8db1ff2a5ecb5c766c07a801f9bab2e482e674a1;p=fio.git diff --git a/flow.c b/flow.c index e0ac1352..384187ef 100644 --- a/flow.c +++ b/flow.c @@ -16,13 +16,17 @@ static struct fio_mutex *flow_lock; int flow_threshold_exceeded(struct thread_data *td) { struct fio_flow *flow = td->flow; - int sign; + long long flow_counter; if (!flow) return 0; - sign = td->o.flow > 0 ? 1 : -1; - if (sign * flow->flow_counter > td->o.flow_watermark) { + if (td->o.flow > 0) + flow_counter = flow->flow_counter; + else + flow_counter = -flow->flow_counter; + + if (flow_counter > td->o.flow_watermark) { if (td->o.flow_sleep) { io_u_quiesce(td); usleep(td->o.flow_sleep); @@ -58,7 +62,6 @@ static struct fio_flow *flow_get(unsigned int id) if (!flow) { flow = smalloc(sizeof(*flow)); if (!flow) { - log_err("fio: smalloc pool exhausted\n"); fio_mutex_up(flow_lock); return NULL; }