From: Sujit Reddy Thumma <sthumma@codeaurora.org>
To: Phillip Susi <psusi@ubuntu.com>, Aaron Lu <aaron.lu@intel.com>
Cc: 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: Mon, 06 Jan 2014 13:06:20 +0530 [thread overview]
Message-ID: <52CA5CF4.2080708@codeaurora.org> (raw)
In-Reply-To: <52CA1191.8060804@ubuntu.com>
On 1/6/2014 7:44 AM, Phillip Susi wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA512
>
> On 12/16/2013 06:30 PM, Phillip Susi wrote:
>> For some reason, the system hangs on resume if I issue the REQUEST
>> SENSE command after blk_pre_runtime_suspend. My understanding is
>> that the REQ_PM flag should make the command process even though
>> the queue is RPM_SUSPENDING, but it doesn't seem to work. Anyone
>> have any idea why?
>
> So I found the problem but I'm confused by it. I thought that the
> REQ_PM flag was supposed to make sure the request was dispatched even
> though the device was still suspended ( or suspending ). It seems
> that this is not the case, and only requests with the type set to
> REQ_TYPE_PM_RESUME are dispatched during suspend/resume. The
> following patch fixes the hang, but I'm not sure why it is needed or
> if it is generally appropriate:
>
Adding Aaron Lu, author of block layer runtime PM.
I have seen similar issue and fixed it by relaxing the rpm_status check
to allow processing of requests while suspended -
diff --git a/block/blk-core.c b/block/blk-core.c
index 6853ef6..f99165b 100644
--- a/block/blk-core.c
+++ b/block/blk-core.c
@@ -2140,8 +2140,7 @@ static void blk_account_io_done(struct request *req)
static struct request *blk_pm_peek_request(struct request_queue *q,
struct request *rq)
{
- if (q->dev && (q->rpm_status == RPM_SUSPENDED ||
- (q->rpm_status != RPM_ACTIVE && !(rq->cmd_flags & REQ_PM))))
+ if (q->dev && q->rpm_status != RPM_ACTIVE && !(rq->cmd_flags & REQ_PM))
return NULL;
else
return rq;
> diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c
> index 7bd7f0d..c5ce50d 100644
> - --- a/drivers/scsi/scsi_lib.c
> +++ b/drivers/scsi/scsi_lib.c
> @@ -227,7 +227,9 @@ int scsi_execute(struct scsi_device *sdev, const
> unsigned char *cmd,
> req->sense_len = 0;
> req->retries = retries;
> req->timeout = timeout;
> - - req->cmd_type = REQ_TYPE_BLOCK_PC;
> + if (flags & REQ_PM)
> + req->cmd_type = REQ_TYPE_PM_RESUME;
> + else req->cmd_type = REQ_TYPE_BLOCK_PC;
> req->cmd_flags |= flags | REQ_QUIET | REQ_PREEMPT;
>
> /*
>
>
--
Regards,
Sujit
next prev parent reply other threads:[~2014-01-06 7:36 UTC|newest]
Thread overview: 101+ 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 [this message]
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
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
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=52CA5CF4.2080708@codeaurora.org \
--to=sthumma@codeaurora.org \
--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=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).