All of lore.kernel.org
 help / color / mirror / Atom feed
From: Oliver Neukum <oliver@neukum.org>
To: Aaron Lu <aaron.lu@intel.com>
Cc: Alan Stern <stern@rowland.harvard.edu>,
	Aaron Lu <aaron.lwe@gmail.com>,
	James Bottomley <James.Bottomley@hansenpartnership.com>,
	Jeff Garzik <jgarzik@pobox.com>,
	linux-scsi@vger.kernel.org, linux-ide@vger.kernel.org,
	linux-pm@vger.kernel.org, linux-acpi@vger.kernel.org
Subject: Re: [PATCH v6 1/7] scsi: sr: support runtime pm for ODD
Date: Tue, 11 Sep 2012 10:55:44 +0200	[thread overview]
Message-ID: <3578472.dQIepChrCX@linux-lqwf.site> (raw)
In-Reply-To: <20120911064429.GA2196@mint-spring.sh.intel.com>

On Tuesday 11 September 2012 14:44:30 Aaron Lu wrote:
> On Mon, Sep 10, 2012 at 12:45:51PM +0200, Oliver Neukum wrote:
> > On Monday 10 September 2012 17:16:22 Aaron Lu wrote:
> > 
> > > +static int sr_resume(struct device *dev)
> > > +{
> > > +	struct scsi_cd *cd;
> > > +	struct scsi_sense_hdr sshdr;
> > > +
> > > +	cd = dev_get_drvdata(dev);
> > > +
> > > +	if (!cd->device->powered_off)
> > > +		return 0;
> > > +
> > > +	/* get the disk ready */
> > > +	scsi_test_unit_ready(cd->device, SR_TIMEOUT, MAX_RETRIES, &sshdr);
> > > +
> > > +	/* if user wakes up the ODD, eject the tray */
> > > +	if (cd->device->need_eject) {
> > > +		cd->device->need_eject = 0;
> > > +		if (!(cd->cdi.mask & CDC_CLOSE_TRAY))
> > > +			sr_tray_move(&cd->cdi, 1);
> > 
> > 1. Even if the door is locked?
> 
> This piece of code of sr_resume is intended for ZPODD devices, for
> normal devices it will simply return as the powered_off flag will never
> be set for them.
> 
> And for ZPODD devices, the door shouldn't be in locked state here since
> for it to enter power off state, "no medium inside" has to be satisfied

This is true only if the device is autosuspended. But sr_resume()
will also be called if the whole system was suspended.
What happens if the user presses the door button on the drive
while the system was suspended?

> and when there is no medium inside, we do not lock its door.
> 
> > 2. sr_tray_move allocates memory with GFP_KERNEL. This smells of a deadlock.
> 
> Sorry, don't get this. Can you please elaborate?

Suppose you need to wake up two devices for the same reason, a ZPODD and a hard
drive. The ZPODD is woken first and sr_resume() requests memory with GFP_KERNEL.
The VM layer decides to page out to the hard drive to be woken up -> deadlock.

	Regards
		Oliver


  reply	other threads:[~2012-09-11  8:55 UTC|newest]

Thread overview: 48+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-09-04 14:24 [PATCH v6 0/7] ZPODD patches Aaron Lu
2012-09-04 14:24 ` [PATCH v6 1/7] scsi: sr: support runtime pm for ODD Aaron Lu
2012-09-04 15:57   ` Oliver Neukum
2012-09-04 17:59     ` Alan Stern
2012-09-04 18:47       ` Oliver Neukum
2012-09-05 15:22         ` Aaron Lu
2012-09-05 16:08           ` Alan Stern
2012-09-05 22:49             ` Aaron Lu
2012-09-06 15:06               ` Alan Stern
2012-09-06 15:25                 ` Oliver Neukum
2012-09-06 17:08                   ` Alan Stern
2012-09-06 18:06                     ` Oliver Neukum
2012-09-06 18:50                       ` Alan Stern
2012-09-10  9:16                         ` Aaron Lu
2012-09-10 10:45                           ` Oliver Neukum
2012-09-11  6:44                             ` Aaron Lu
2012-09-11  8:55                               ` Oliver Neukum [this message]
2012-09-11  9:24                                 ` Aaron Lu
2012-09-11  9:30                                   ` Oliver Neukum
2012-09-11 11:11                                     ` Aaron Lu
2012-09-11 12:10                                       ` Oliver Neukum
2012-09-11 12:31                                         ` Aaron Lu
2012-09-11 12:35                                           ` Oliver Neukum
2012-09-11 12:13                                     ` Aaron Lu
2012-09-07 14:53                 ` Aaron Lu
2012-09-07 15:41                   ` Alan Stern
2012-09-05 18:06           ` Oliver Neukum
2012-09-06  5:55             ` Aaron Lu
2012-09-06  5:17     ` Aaron Lu
2012-09-04 14:24 ` [PATCH v6 2/7] block: genhd: export disk_(un)block_events Aaron Lu
2012-09-04 14:24 ` [PATCH v6 3/7] scsi: sr: block events checking when suspended for zpodd Aaron Lu
2012-09-04 14:24 ` [PATCH v6 4/7] libata: acpi: set can_power_off for both ODD and HD Aaron Lu
2012-09-07  2:37   ` Jeff Garzik
2012-09-04 14:24 ` [PATCH v6 5/7] scsi: pm: add may_power_off flag Aaron Lu
2012-09-04 16:01   ` Oliver Neukum
2012-09-06  1:52     ` Aaron Lu
2012-09-04 14:24 ` [PATCH v6 6/7] scsi: sr: use may_power_off Aaron Lu
2012-09-04 14:24 ` [PATCH v6 7/7] libata: acpi: respect may_power_off flag Aaron Lu
2012-09-07  2:38   ` Jeff Garzik
2012-09-13  2:42 ` [PATCH v6 0/7] ZPODD patches Jack Wang
2012-09-13  3:20   ` Aaron Lu
2012-09-13  8:15     ` Jack Wang
2012-09-13  8:30       ` Aaron Lu
2012-09-13  8:39         ` Jack Wang
2012-09-13  8:56           ` Aaron Lu
2012-09-13  9:01             ` James Bottomley
2012-09-13  9:12             ` Jack Wang
2012-09-13  9:19               ` [PATCH " Aaron Lu

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=3578472.dQIepChrCX@linux-lqwf.site \
    --to=oliver@neukum.org \
    --cc=James.Bottomley@hansenpartnership.com \
    --cc=aaron.lu@intel.com \
    --cc=aaron.lwe@gmail.com \
    --cc=jgarzik@pobox.com \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-ide@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=linux-scsi@vger.kernel.org \
    --cc=stern@rowland.harvard.edu \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.