]> git.karo-electronics.de Git - karo-tx-linux.git/commit
[S390] qdio: 2nd stage retry on SIGA-W busy conditions
authorJan Glauber <jang@linux.vnet.ibm.com>
Wed, 27 Jul 2011 05:58:20 +0000 (07:58 +0200)
committerHeiko Carstens <heiko.carstens@de.ibm.com>
Wed, 27 Jul 2011 05:58:21 +0000 (07:58 +0200)
commit3d383bb3f8cbd62ef37b4f67b2e317a622598c4b
tree9eef773eef9c60ed32fc0d9388ff9e43316a8bcb
parente371d46ae45488bcb112a99a7de462e9e3aa6764
[S390] qdio: 2nd stage retry on SIGA-W busy conditions

The SIGA-W may return with the busy bit set which means the device was
blocked. The busy loop which retries the SIGA-W for 100us may not be
long enough when running under a heavily loaded hypervisor.

Extend the retry mechanism by adding a longer second stage which retries
the SIGA-W for up to 10s. In difference to the first retry loop the second
stage is using mdelay to stop the cpu between the retries and thereby
avoid additional preassure in on the hypervisor.
If the second stage retry is successfull a device reset is avoided.

Signed-off-by: Jan Glauber <jang@linux.vnet.ibm.com>
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
drivers/s390/cio/qdio.h
drivers/s390/cio/qdio_main.c