[patch 3/8] qdio: output queue stall on FCP and network devices

From: Martin Schwidefsky
Date: Tue Jul 17 2007 - 08:21:07 EST


From: Frank Pavlic <fpavlic@xxxxxxxxxx>

When running QIOASSIST enabled qdio devices in a z/VM environment
the output queue for such devices stall in heavy workload situations.
When SQBS and EQBS instructions returns CCQ=96 qdio does not reissue
the instruction again with the register settings done by millicode
but processed the returned qdio buffer. This is wrong. qdio has to
reissue the instruction once again on CCQ=96, as we already do it
for CCQ=97.

Signed-off-by: Frank Pavlic <fpavlic@xxxxxxxxxx>
Signed-off-by: Martin Schwidefsky <schwidefsky@xxxxxxxxxx>
---

drivers/s390/cio/qdio.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

Index: quilt-2.6/drivers/s390/cio/qdio.c
===================================================================
--- quilt-2.6.orig/drivers/s390/cio/qdio.c
+++ quilt-2.6/drivers/s390/cio/qdio.c
@@ -166,9 +166,9 @@ qdio_check_ccq(struct qdio_q *q, unsigne
{
char dbf_text[15];

- if (ccq == 0 || ccq == 32 || ccq == 96)
+ if (ccq == 0 || ccq == 32)
return 0;
- if (ccq == 97)
+ if (ccq == 96 || ccq == 97)
return 1;
/*notify devices immediately*/
sprintf(dbf_text,"%d", ccq);

--
blue skies,
Martin.

"Reality continues to ruin my life." - Calvin.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/