Re: [PATCH] scsi: sd: add runtime pm to open / release

From: Alan Stern
Date: Tue Jun 30 2020 - 09:38:22 EST


On Tue, Jun 30, 2020 at 05:33:25AM +0200, Martin Kepplinger wrote:
> > Martin, does this fix the problem?
> >
>
> not quite: mounting works and resuming itself indeed happens now when
> copying a file, but the I/O itself doesn't, but says "device offline or
> changed":
>
> [ 167.167615] sd 0:0:0:0: [sda] tag#0 UNKNOWN(0x2003) Result:
> hostbyte=0x00 driverbyte=0x08 cmd_age=0s
> [ 167.167630] sd 0:0:0:0: [sda] tag#0 Sense Key : 0x6 [current]
> [ 167.167638] sd 0:0:0:0: [sda] tag#0 ASC=0x28 ASCQ=0x0

That code stands for "Not-ready to ready transition". It isn't really an
error, just a notification. The command should have been retried.

> [ 167.167648] sd 0:0:0:0: [sda] tag#0 CDB: opcode=0x28 28 00 00 00 24
> c2 00 00 01 00
> [ 167.167658] blk_update_request: I/O error, dev sda, sector 9410 op
> 0x0:(READ) flags 0x0 phys_seg 1 prio class 0
> [ 167.178327] FAT-fs (sda1): FAT read failed (blocknr 1218)

And it should not have failed. Martin or James, any ideas about this?

> [ 167.183895] sd 0:0:0:0: [sda] tag#0 device offline or changed
> [ 167.189695] blk_update_request: I/O error, dev sda, sector 5101888 op
> 0x0:(READ) flags 0x80700 phys_seg 8 prio class 0
> [ 167.200510] sd 0:0:0:0: [sda] tag#0 device offline or changed
>
>
> and a later try to copy a file only yields (mostly my own debug prints):
>
>
> [ 371.110798] blk_queue_enter: wait_event: pm=0
> [ 371.300666] scsi_runtime_resume
> [ 371.303834] scsi_runtime_resume
> [ 371.307007] scsi_runtime_resume
> [ 371.310213] sd 0:0:0:0: [sda] tag#0 device offline or changed
> [ 371.316011] blk_update_request: I/O error, dev sda, sector 5101888 op
> 0x0:(READ) flags 0x0 phys_seg 1 prio class 0

No way to tell from the log what caused this error.

> [ 372.560690] scsi_runtime_suspend
> [ 372.563968] scsi_runtime_suspend
> [ 372.567237] scsi_runtime_suspend
>
> thanks Alan for taking the time and trying to fix this! you're close.
> what is missing?

At this point I don't know.

Alan Stern