mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-18 18:23:53 +08:00
scsi: scsi_debug: skip long delays when ndelay small
A test program's runtime became impractically long since any non zero ndelay (e.g. 1 nanosec) caused Start Stop Unit to delay over 8 magnitudes greater than other commands. This patch skips long delays (on Start Stop Unit and Synchronize Cache) if ndelay is less than or equal to 10 microsecs. Signed-off-by: Douglas Gilbert <dgilbert@interlog.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
parent
920447f138
commit
75aa3209c9
@ -5790,11 +5790,13 @@ static int scsi_debug_queuecommand(struct Scsi_Host *shost,
|
|||||||
fini:
|
fini:
|
||||||
if (F_DELAY_OVERR & flags)
|
if (F_DELAY_OVERR & flags)
|
||||||
return schedule_resp(scp, devip, errsts, pfp, 0, 0);
|
return schedule_resp(scp, devip, errsts, pfp, 0, 0);
|
||||||
else if ((sdebug_jdelay || sdebug_ndelay) && (flags & F_LONG_DELAY)) {
|
else if ((flags & F_LONG_DELAY) && (sdebug_jdelay > 0 ||
|
||||||
|
sdebug_ndelay > 10000)) {
|
||||||
/*
|
/*
|
||||||
* If any delay is active, for F_SSU_DELAY want at least 1
|
* Skip long delays if ndelay <= 10 microseconds. Otherwise
|
||||||
* second and if sdebug_jdelay>0 want a long delay of that
|
* for Start Stop Unit (SSU) want at least 1 second delay and
|
||||||
* many seconds; for F_SYNC_DELAY want 1/20 of that.
|
* if sdebug_jdelay>1 want a long delay of that many seconds.
|
||||||
|
* For Synchronize Cache want 1/20 of SSU's delay.
|
||||||
*/
|
*/
|
||||||
int jdelay = (sdebug_jdelay < 2) ? 1 : sdebug_jdelay;
|
int jdelay = (sdebug_jdelay < 2) ? 1 : sdebug_jdelay;
|
||||||
int denom = (flags & F_SYNC_DELAY) ? 20 : 1;
|
int denom = (flags & F_SYNC_DELAY) ? 20 : 1;
|
||||||
|
Loading…
Reference in New Issue
Block a user