s390: fba dasd i/o errors.
Subsystems (2)
PATCH 7/12 s390: fba dasd i/o errors.
[patch 7/12] s390: fba dasd i/o errors.
From: Horst Hummel <[email protected]>
The FBA discipline does not use retries for failed requests. A request fails after the first unsuccessful start attempt. There are some rare conditions (e.g. CIO path recovery) in which the start of an i/o on a fba device can fail. A tiny amount of retries is therefore reasonable.
diffstat:
drivers/s390/block/dasd_fba.c | 4 +++- 1 files changed, 3 insertions(+), 1 deletion(-)
drivers/s390/block/dasd_fba.c +3 -1
@@ -4,7 +4,7 @@* Bugreports.to..: <[email protected]> * (C) IBM Corporation, IBM Deutschland Entwicklung GmbH, 1999,2000 * -* $Revision: 1.39 $ +* $Revision: 1.40 $ */ #include <linux/config.h>
@@ -354,6 +354,8 @@ dasd_fba_build_cp(struct dasd_device * d } cqr->device = device; cqr->expires =5 *60 *HZ ;/* 5 minutes */ + cqr->retries =32 ; + cqr->buildclk =get_clock (); cqr->status =DASD_CQR_FILLED ;return cqr; }
Quoted 29 lines · Martin Schwidefsky
[patch 7/12] s390: fba dasd i/o errors.
From: Horst Hummel <[email protected]>
The FBA discipline does not use retries for failed requests. A request fails after the first unsuccessful start attempt. There are some rare conditions (e.g. CIO path recovery) in which the start of an i/o on a fba device can fail. A tiny amount of retries is therefore reasonable.
Signed-off-by Martin Schwidefsky <[email protected]>diffstat:
drivers/s390/block/dasd_fba.c | 4 +++- 1 files changed, 3 insertions(+), 1 deletion(-)diff -urpN
linux-2.6/drivers/s390/block/dasd_fba.clinux-2.6-patched/drivers/s390/block/dasd_fba.cdrivers/s390/block/dasd_fba.c +1
-1@@ -4,7 +4,7 @@* Bugreports.to..: <[email protected]> * (C) IBM Corporation, IBM Deutschland Entwicklung GmbH, 1999,2000 * -* $Revision: 1.39 $ +* $Revision: 1.40 $ */ #include <linux/config.h>
drivers/s390/block/dasd_fba.c dasd_fba_build_cp(struct dasd_device * d · line 357
Quoted 4 lines
drivers/s390/block/dasd_fba.c +1
-0@@ -354,6 +354,8 @@ dasd_fba_build_cp(struct dasd_device * d } cqr->device = device; cqr->expires =5 *60 *HZ ;/* 5 minutes */ + cqr->retries =32 ;
2..4 maybe, but 32? This isn't tiny by any account.
Quoted 4 lines
drivers/s390/block/dasd_fba.c +1
-0+ cqr->buildclk =get_clock (); cqr->status =DASD_CQR_FILLED ;return cqr; }
Quoted 7 lines
drivers/s390/block/dasd_fba.c dasd_fba_build_cp(struct dasd_device * d · line 357
Quoted 5 lines
drivers/s390/block/dasd_fba.c +1
-0@@ -354,6 +354,8 @@ dasd_fba_build_cp(struct dasd_device * d } cqr->device = device; cqr->expires =5 *60 *HZ ;/* 5 minutes */ + cqr->retries =32 ;2..4 maybe, but 32? This isn't tiny by any account.
Are you arguing the use of the adjective "tiny" or the technical aspects of using 32 as the number of retries for dasd fba? In the dasd driver we use a retry count of 255 as "standard", so 32 is indeed much smaller than that. If you can call it tiny, well who cares??
blue skies,
Martin
Martin Schwidefsky
Linux for zSeries Development & Services
IBM Deutschland Entwicklung GmbH
Quoted 8 lines · Martin Schwidefsky
Quoted 7 lines
drivers/s390/block/dasd_fba.c dasd_fba_build_cp(struct dasd_device * d · line 357
Quoted 5 lines
drivers/s390/block/dasd_fba.c +1
-0@@ -354,6 +354,8 @@ dasd_fba_build_cp(struct dasd_device * d } cqr->device = device; cqr->expires =5 *60 *HZ ;/* 5 minutes */ + cqr->retries =32 ;2..4 maybe, but 32? This isn't tiny by any account.
Quoted 5 lines
Are you arguing the use of the adjective "tiny" or the technical aspects of using 32 as the number of retries for dasd fba? In the dasd driver we use a retry count of 255 as "standard", so 32 is indeed much smaller than that. If you can call it tiny, well who cares??
I meant that 32 retries is too many. Retries tend to multiply. If OS does N retries per failed attempt and disk drive does M attempts per attempt, you end up with N*M retries. Add a few 'retrying' layers, and you have a 'I cannot umount this fscking scratched CDROM, maybe tomorrow' type disaster.
It's better to err to the smaller number of attempts. --
vda