[S390] qdio: outbound tasklet scan threshold

Introduce a scan treshold for the qdio outbound queues. By setting the
threshold the driver can tell qdio after how much used SBALs qdio
should schedule the outbound tasklet that scans the queue for finished
SBALs. The threshold is specific by the drivers because a
Hipersockets device is much faster in utilizing outbound buffers than a
ZFCP or OSA device.

The default values after how many used SBALs the tasklet should run are:

OSA:          > 31 SBALs
Hipersockets: > 7 SBALs
zfcp:         > 55 SBALs

Signed-off-by: Jan Glauber <jang@linux.vnet.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
This commit is contained in:
Jan Glauber
2011-01-05 12:47:50 +01:00
committed by Martin Schwidefsky
parent 4f325184f2
commit 3d6c76ff32
6 changed files with 15 additions and 1 deletions

View File

@@ -1492,7 +1492,13 @@ static int handle_outbound(struct qdio_q *q, unsigned int callflags,
qperf_inc(q, fast_requeue);
out:
tasklet_schedule(&q->tasklet);
/* in case of SIGA errors we must process the error immediately */
if (used >= q->u.out.scan_threshold || rc)
tasklet_schedule(&q->tasklet);
else
/* free the SBALs in case of no further traffic */
if (!timer_pending(&q->u.out.timer))
mod_timer(&q->u.out.timer, jiffies + HZ);
return rc;
}