From: Douglas Gilbert <dgilbert@interlog.com>
To: Phillip Susi <psusi@ubuntu.com>, Alan Stern <stern@rowland.harvard.edu>
Cc: Aaron Lu <aaron.lu@intel.com>,
Sujit Reddy Thumma <sthumma@codeaurora.org>,
todd.e.brandt@linux.intel.com, tj@kernel.org,
JBottomley@parallels.com, linux-ide@vger.kernel.org,
linux-scsi@vger.kernel.org
Subject: Re: REQ_PM vs REQ_TYPE_PM_RESUME
Date: Thu, 09 Jan 2014 13:29:53 -0500 [thread overview]
Message-ID: <52CEEAA1.2010904@interlog.com> (raw)
In-Reply-To: <52CC1FF2.1020301@ubuntu.com>
On 14-01-07 10:40 AM, Phillip Susi wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> On 1/7/2014 10:20 AM, Alan Stern wrote:
>> This raises two questions:
>>
>> Should the host's resume be allowed to complete while the host is
>> still in error recovery? Wouldn't it be better to wait until the
>> recovery is finished?
>
> Ahh, right, my other patch changed the ata_port stuff to schedule the
> eh, and return from resume, so that IT doesn't block the system
> resume path for a long period of time while IT tries to spin up the
> disk. Both the libata and sd layers were spinning up the disk.
>
> Still, the sd request should just wait in the queue until after the
> recovery completes shouldn't it?
>
>> How does the queue end up in a stopped state? (The stopped queue
>> explains why blk_peek_request returns NULL.)
>
> I was guessing that was the cause from reading the code, after
> stepping through it with gdb and qemu, it turned out it was in
> SHOST_RECOVERY rather that stopped. I suppose it may be stopped as
> well, so I guess I'll have to go do another debug session and make
> sure, but I think that was a red herring.
>
> The flow seems to simply be:
>
> host is in recovery
> sd_resume queues REQUEST SENSE
You need to be careful with the SCSI REQUEST SENSE command
when used for getting power management information from
SCSI devices (mainly disks and tape drives).
Many moons ago REQUEST SENSE was used to explicitly fetch
sense data when the previous SCSI command failed and only
yielded a single byte status: CHECK CONDITION.
All modern SCSI transports have "autosense" so the original
semantics of REQUEST SENSE became pointless. So some crafty
folks at T10 decided to re-purpose REQUEST SENSE into what
it is today. That transition has been going on for around
10 years (and may not have finished).
When REQUEST SENSE had its original semantics, TEST UNIT
READY was the only game in town for monitoring power
management. From my reading of spc4r36n.pdf section 5.1.2
"Important commands for all SCSI device servers" TEST UNIT
READY should be called before REQUEST SENSE during device
initialization (including resume). If the responses to TEST
UNIT READY and REQUEST SENSE contradict then the former is
correct.
There are SCSI devices out caught in that transition. For
example with sg_format I monitor progress with either TEST
UNIT READY or REQUEST SENSE, defaulting to the former.
[Progress indication is another new role for REQUEST SENSE.]
Note that the billion or so USB keys out there that say that
they comply with SCSI-2 should respond to a REQUEST SENSE
with its original semantics.
The ATA REQUEST SENSE DATA EXT command refers to the SPC-4
"standard" (not yet it ain't) which is naturally the new
SCSI semantics of REQUEST SENSE. I believe the ATA REQUEST
SENSE DATA EXT command is a relatively new ATA command so
it does not carry the historical baggage of its SCSI
counterpart.
Just a little more hand waving for Phillip's amusement.
Doug Gilbert
next prev parent reply other threads:[~2014-01-09 18:30 UTC|newest]
Thread overview: 142+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-10-17 19:33 [PATCH/RESEND v2 0/2] SATA disk resume time optimization Todd E Brandt
2013-11-07 1:53 ` Phillip Susi
2013-11-07 1:57 ` [PATCH 1/3] sd: don't bother spinning up disks on resume Phillip Susi
2013-11-07 18:21 ` Douglas Gilbert
2013-11-07 21:16 ` Phillip Susi
2013-11-16 18:20 ` James Bottomley
2013-11-17 3:50 ` Phillip Susi
2013-11-17 6:43 ` James Bottomley
2013-11-17 16:15 ` Phillip Susi
2013-11-17 23:54 ` Douglas Gilbert
2013-11-18 1:06 ` Phillip Susi
2013-11-18 15:54 ` Phillip Susi
2013-11-20 14:23 ` Mark Lord
2013-11-20 14:48 ` Phillip Susi
2013-11-28 1:39 ` Phillip Susi
2013-11-18 0:09 ` James Bottomley
2013-11-18 1:11 ` Phillip Susi
2013-11-16 5:23 ` Mark Lord
2013-11-16 14:52 ` Phillip Susi
2013-11-07 1:57 ` [PATCH 2/3] libata: resume in the background Phillip Susi
2013-11-07 1:57 ` [PATCH 3/3] libata: don't start disks on resume Phillip Susi
2013-11-09 1:20 ` [PATCH/RESEND v2 0/2] SATA disk resume time optimization Todd E Brandt
2013-11-09 20:59 ` Phillip Susi
2013-11-09 21:03 ` [PATCH 0/6] Let sleeping disks lie Phillip Susi
2013-12-16 23:30 ` Phillip Susi
2013-12-16 23:30 ` [PATCH 1/6] libata: use sleep instead of standby command Phillip Susi
2013-12-16 23:30 ` [PATCH 2/6] libata: avoid waking disk for several commands Phillip Susi
2013-12-16 23:30 ` [PATCH 3/6] libata: resume in the background Phillip Susi
2014-01-10 22:26 ` Dan Williams
2014-01-11 2:25 ` Phillip Susi
2014-01-11 3:11 ` Dan Williams
2013-12-16 23:30 ` [PATCH 4/6] libata: don't start disks on resume Phillip Susi
2013-12-16 23:30 ` [PATCH 5/6] sd: don't start disks on system resume Phillip Susi
2013-12-17 6:43 ` James Bottomley
2013-12-17 15:01 ` Phillip Susi
2013-12-17 17:48 ` James Bottomley
2013-12-17 18:30 ` Phillip Susi
2013-12-16 23:30 ` [PATCH 6/6] libata: return power status in REQUEST SENSE command Phillip Susi
2013-12-17 18:02 ` Sergei Shtylyov
2013-12-17 18:35 ` Phillip Susi
2014-01-06 2:14 ` REQ_PM vs REQ_TYPE_PM_RESUME Phillip Susi
2014-01-06 7:36 ` Sujit Reddy Thumma
2014-01-06 9:15 ` Aaron Lu
2014-01-06 14:40 ` Phillip Susi
2014-01-06 15:38 ` Alan Stern
2014-01-07 2:44 ` Phillip Susi
2014-01-07 15:20 ` Alan Stern
2014-01-07 15:40 ` Phillip Susi
2014-01-07 15:56 ` Alan Stern
2014-01-09 18:29 ` Douglas Gilbert [this message]
2014-01-09 19:20 ` Phillip Susi
2014-01-10 5:23 ` Douglas Gilbert
2014-01-10 14:29 ` Phillip Susi
2014-01-07 7:49 ` Aaron Lu
2014-01-07 14:50 ` Phillip Susi
2014-01-08 1:03 ` Aaron Lu
2014-01-08 1:16 ` Phillip Susi
2014-01-08 1:32 ` Aaron Lu
2014-01-08 1:53 ` Phillip Susi
2014-01-08 2:11 ` Aaron Lu
2014-01-08 2:19 ` Phillip Susi
2014-01-08 2:36 ` Aaron Lu
2014-01-08 5:24 ` Phillip Susi
2014-01-08 7:00 ` Aaron Lu
2014-01-08 19:30 ` Phillip Susi
2014-01-07 15:25 ` Alan Stern
2014-01-07 15:43 ` Phillip Susi
2014-01-07 16:08 ` Alan Stern
2014-01-07 16:37 ` Phillip Susi
2014-01-07 18:05 ` Alan Stern
2014-01-07 18:43 ` Phillip Susi
2014-01-07 19:18 ` Alan Stern
2014-01-07 23:47 ` Phillip Susi
2014-01-08 17:46 ` Alan Stern
2014-01-08 18:31 ` Alan Stern
2014-01-08 20:20 ` Phillip Susi
2014-01-08 21:21 ` Alan Stern
2014-01-08 21:50 ` Phillip Susi
2014-01-09 1:29 ` Aaron Lu
2014-01-09 12:17 ` Rafael J. Wysocki
2014-01-09 13:18 ` Rafael J. Wysocki
2014-01-09 15:40 ` Alan Stern
2014-01-09 15:53 ` Phillip Susi
2014-01-09 16:14 ` Alan Stern
2014-01-09 16:34 ` Phillip Susi
2014-01-09 17:06 ` Alan Stern
2014-01-16 16:59 ` Disk spin-up optimization during system resume Alan Stern
2014-01-16 18:04 ` Todd E Brandt
2014-01-16 18:33 ` Phillip Susi
2014-01-16 20:05 ` Alan Stern
2014-01-16 22:04 ` Todd E Brandt
2014-01-17 14:57 ` Alan Stern
2014-01-17 19:31 ` Dan Williams
2014-01-17 20:15 ` Alan Stern
2014-01-17 20:24 ` Tejun Heo
2014-01-17 20:55 ` Phillip Susi
2014-01-18 14:04 ` Tejun Heo
2014-01-18 1:36 ` Todd E Brandt
2014-01-18 1:41 ` Alan Stern
2014-01-18 2:15 ` Dan Williams
2014-01-18 2:33 ` Alan Stern
2014-01-18 3:24 ` Phillip Susi
2014-01-18 13:59 ` Tejun Heo
2014-01-17 20:49 ` Phillip Susi
2014-01-17 22:17 ` Dan Williams
2014-01-18 3:18 ` Phillip Susi
2014-01-18 4:09 ` Dan Williams
2014-01-18 14:08 ` Alan Stern
2014-01-21 10:12 ` Dan Williams
2014-01-21 14:37 ` Phillip Susi
2014-01-21 16:03 ` Alan Stern
2014-01-21 16:18 ` Phillip Susi
2014-01-21 16:49 ` Alan Stern
2014-01-21 15:44 ` Alan Stern
2014-01-21 16:18 ` Dan Williams
2014-01-21 16:55 ` Dan Williams
2014-01-20 12:38 ` CrashPlan Pro
2014-01-20 14:30 ` Phillip Susi
2014-01-18 1:24 ` Todd E Brandt
2014-01-18 3:20 ` Phillip Susi
2014-01-16 18:39 ` Phillip Susi
2014-01-16 20:08 ` Alan Stern
2014-01-17 10:16 ` Oliver Neukum
2014-01-17 10:21 ` Tejun Heo
2014-01-17 18:18 ` Alan Stern
2014-01-17 18:39 ` James Bottomley
2014-01-17 19:07 ` Tejun Heo
2013-11-09 21:03 ` [PATCH 1/6] libata: use sleep instead of standby command Phillip Susi
2013-11-09 21:03 ` [PATCH 2/6] libata: avoid waking disk to check power Phillip Susi
2013-11-11 13:05 ` Sergei Shtylyov
2013-11-09 21:03 ` [PATCH 3/6] sd: don't bother spinning up disks on resume Phillip Susi
2013-11-11 13:08 ` Sergei Shtylyov
2013-11-11 14:28 ` Phillip Susi
2013-11-09 21:03 ` [PATCH 4/6] libata: resume in the background Phillip Susi
2013-11-11 13:10 ` Sergei Shtylyov
2013-11-09 21:03 ` [PATCH 5/6] libata: don't start disks on resume Phillip Susi
2013-11-09 21:03 ` [PATCH 6/6] libata: fake some more commands when drive is sleeping Phillip Susi
2013-11-11 16:59 ` [PATCH/RESEND v2 0/2] SATA disk resume time optimization Todd E Brandt
2013-11-11 17:08 ` Phillip Susi
2013-12-17 12:15 ` Tejun Heo
2013-12-17 14:24 ` Phillip Susi
2013-11-27 16:18 ` Phillip Susi
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=52CEEAA1.2010904@interlog.com \
--to=dgilbert@interlog.com \
--cc=JBottomley@parallels.com \
--cc=aaron.lu@intel.com \
--cc=linux-ide@vger.kernel.org \
--cc=linux-scsi@vger.kernel.org \
--cc=psusi@ubuntu.com \
--cc=stern@rowland.harvard.edu \
--cc=sthumma@codeaurora.org \
--cc=tj@kernel.org \
--cc=todd.e.brandt@linux.intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).