From: Ohad Ben-Cohen <ohad@wizery.com> To: Alan Stern <stern@rowland.harvard.edu> Cc: "Rafael J. Wysocki" <rjw@sisk.pl>, linux-pm@lists.linux-foundation.org, Johannes Berg <johannes@sipsolutions.net>, linux-wireless@vger.kernel.org, linux-mmc@vger.kernel.org, Ido Yariv <ido@wizery.com>, Kevin Hilman <khilman@deeprootsystems.com> Subject: Re: [linux-pm] subtle pm_runtime_put_sync race and sdio functions Date: Sat, 25 Dec 2010 22:58:04 +0200 [thread overview] Message-ID: <AANLkTimj0E3Rz_8WQrU4wGg3ONyXzkUT9+U3Xqz7Cq0X@mail.gmail.com> (raw) In-Reply-To: <Pine.LNX.4.44L0.1012251046060.5079-100000@netrider.rowland.org> On Sat, Dec 25, 2010 at 6:21 PM, Alan Stern <stern@rowland.harvard.edu> wrote: > Right. You may or may not realize it, but this requirement means that > the driver _must_ bypass runtime PM sometimes. http://www.spinics.net/lists/linux-pm/msg22864.html > Now you've lost me. Which of the driver's handlers are you talking > about? The driver's handler, which is called by mac80211, and is responsible to power off the device. The _same_ handler is being called either during runtime or during a system transition to suspend > What races? Driver thinks power is off and device is now fully reset, but it's isn't really > Why does the driver have to _assume_ the device was powered off -- why > doesn't it simply _do_ the power down? runtime PM is disabled during suspend. and the driver doesn't know that the system is suspending, and it is using pm_runtime_put_sync(). It's the same code that executes during runtime and while system is suspending Even if we changed mac80211 to tell us the system is suspending, so we would power off the device directly in this case, it won't solve all of our problems, because even during runtime we need to bypass runtime PM due to /sys/devices/.../power/control. > Maybe it would help if you provided a list of the relevant subroutines > together with descriptions of the circumstances under which they are > called and what they are expected to do. For example, a brief > pseudo-code listing. Frankly, I don't think it's worth it. We're just a single use case and Rafael already said he won't support it. > It's not necessary to maintain usage_count while you're bypassing > runtime PM. Just make sure when you're done that everything is back in > sync. I think you are missing the fact that we will have to bypass runtime PM also during runtime, and not only in suspend/resume, and that's due to /sys/devices/.../power/control. That's why we will also have to maintain usage_count - to prevent dpm_complete() from powering the device down, when it is really up. > Why shouldn't dpm_complete cause the device to be powered down > (assuming the device isn't in use, of course)? Because it _is_ in use
WARNING: multiple messages have this Message-ID (diff)
From: Ohad Ben-Cohen <ohad-Ix1uc/W3ht7QT0dZR+AlfA@public.gmane.org> To: Alan Stern <stern-nwvwT67g6+6dFdvTe/nMLpVzexx5G7lz@public.gmane.org> Cc: "Rafael J. Wysocki" <rjw-KKrjLPT3xs0@public.gmane.org>, linux-pm-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org, Johannes Berg <johannes-cdvu00un1VgdHxzADdlk8Q@public.gmane.org>, linux-wireless-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-mmc-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Ido Yariv <ido-Ix1uc/W3ht7QT0dZR+AlfA@public.gmane.org>, Kevin Hilman <khilman-1D3HCaltpLuhEniVeURVKkEOCMrvLtNR@public.gmane.org> Subject: Re: [linux-pm] subtle pm_runtime_put_sync race and sdio functions Date: Sat, 25 Dec 2010 22:58:04 +0200 [thread overview] Message-ID: <AANLkTimj0E3Rz_8WQrU4wGg3ONyXzkUT9+U3Xqz7Cq0X@mail.gmail.com> (raw) In-Reply-To: <Pine.LNX.4.44L0.1012251046060.5079-100000-pYrvlCTfrz9XsRXLowluHWD2FQJk+8+b@public.gmane.org> On Sat, Dec 25, 2010 at 6:21 PM, Alan Stern <stern-nwvwT67g6+6dFdvTe/nMLpVzexx5G7lz@public.gmane.org> wrote: > Right. You may or may not realize it, but this requirement means that > the driver _must_ bypass runtime PM sometimes. http://www.spinics.net/lists/linux-pm/msg22864.html > Now you've lost me. Which of the driver's handlers are you talking > about? The driver's handler, which is called by mac80211, and is responsible to power off the device. The _same_ handler is being called either during runtime or during a system transition to suspend > What races? Driver thinks power is off and device is now fully reset, but it's isn't really > Why does the driver have to _assume_ the device was powered off -- why > doesn't it simply _do_ the power down? runtime PM is disabled during suspend. and the driver doesn't know that the system is suspending, and it is using pm_runtime_put_sync(). It's the same code that executes during runtime and while system is suspending Even if we changed mac80211 to tell us the system is suspending, so we would power off the device directly in this case, it won't solve all of our problems, because even during runtime we need to bypass runtime PM due to /sys/devices/.../power/control. > Maybe it would help if you provided a list of the relevant subroutines > together with descriptions of the circumstances under which they are > called and what they are expected to do. For example, a brief > pseudo-code listing. Frankly, I don't think it's worth it. We're just a single use case and Rafael already said he won't support it. > It's not necessary to maintain usage_count while you're bypassing > runtime PM. Just make sure when you're done that everything is back in > sync. I think you are missing the fact that we will have to bypass runtime PM also during runtime, and not only in suspend/resume, and that's due to /sys/devices/.../power/control. That's why we will also have to maintain usage_count - to prevent dpm_complete() from powering the device down, when it is really up. > Why shouldn't dpm_complete cause the device to be powered down > (assuming the device isn't in use, of course)? Because it _is_ in use -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2010-12-25 20:58 UTC|newest] Thread overview: 179+ messages / expand[flat|nested] mbox.gz Atom feed top 2010-12-09 23:37 subtle pm_runtime_put_sync race and sdio functions Ohad Ben-Cohen 2010-12-10 0:00 ` Rafael J. Wysocki 2010-12-10 0:00 ` [linux-pm] " Rafael J. Wysocki 2010-12-10 17:24 ` Alan Stern 2010-12-10 17:24 ` [linux-pm] " Alan Stern 2010-12-10 22:01 ` Rafael J. Wysocki 2010-12-10 22:01 ` [linux-pm] " Rafael J. Wysocki 2010-12-10 23:02 ` Ohad Ben-Cohen 2010-12-10 23:02 ` [linux-pm] " Ohad Ben-Cohen 2010-12-10 22:59 ` Ohad Ben-Cohen 2010-12-10 22:59 ` [linux-pm] " Ohad Ben-Cohen 2010-12-11 1:17 ` Ohad Ben-Cohen 2010-12-11 14:53 ` Alan Stern 2010-12-11 1:17 ` Ohad Ben-Cohen 2010-12-11 14:50 ` Alan Stern 2010-12-18 13:29 ` Ohad Ben-Cohen 2010-12-18 13:29 ` [linux-pm] " Ohad Ben-Cohen 2010-12-18 14:16 ` David Vrabel 2010-12-18 15:12 ` Ohad Ben-Cohen 2010-12-18 15:12 ` Ohad Ben-Cohen 2010-12-18 14:16 ` David Vrabel 2010-12-18 15:07 ` [linux-pm] " Rafael J. Wysocki 2010-12-18 16:00 ` Ohad Ben-Cohen 2010-12-18 16:00 ` [linux-pm] " Ohad Ben-Cohen 2010-12-18 16:40 ` Johannes Berg 2010-12-18 19:08 ` Ohad Ben-Cohen 2010-12-18 19:08 ` Ohad Ben-Cohen 2010-12-18 21:30 ` Alan Stern 2010-12-18 21:30 ` Alan Stern 2010-12-18 22:57 ` Rafael J. Wysocki 2010-12-18 22:57 ` [linux-pm] " Rafael J. Wysocki 2010-12-18 21:30 ` Alan Stern 2010-12-18 22:52 ` Rafael J. Wysocki 2010-12-18 22:52 ` [linux-pm] " Rafael J. Wysocki 2010-12-18 19:08 ` Ohad Ben-Cohen 2010-12-18 21:29 ` [linux-pm] " Alan Stern 2010-12-18 21:29 ` Alan Stern 2010-12-18 21:29 ` Alan Stern 2010-12-18 22:50 ` Rafael J. Wysocki 2010-12-18 22:50 ` [linux-pm] " Rafael J. Wysocki 2010-12-18 16:40 ` Johannes Berg 2010-12-18 22:47 ` [linux-pm] " Rafael J. Wysocki 2010-12-18 22:47 ` Rafael J. Wysocki 2010-12-19 7:48 ` Ohad Ben-Cohen 2010-12-19 7:48 ` Ohad Ben-Cohen 2010-12-19 7:48 ` Ohad Ben-Cohen 2010-12-19 10:22 ` Rafael J. Wysocki 2010-12-19 10:22 ` [linux-pm] " Rafael J. Wysocki 2010-12-20 3:37 ` Alan Stern 2010-12-20 3:37 ` Alan Stern 2010-12-20 21:17 ` Rafael J. Wysocki 2010-12-21 0:57 ` Alan Stern 2010-12-21 0:57 ` Alan Stern 2010-12-21 21:31 ` Rafael J. Wysocki 2010-12-22 1:42 ` Alan Stern 2010-12-22 1:42 ` Alan Stern 2010-12-22 12:29 ` Rafael J. Wysocki 2010-12-22 12:29 ` Rafael J. Wysocki 2011-01-26 23:28 ` Kevin Hilman 2011-01-26 23:28 ` Kevin Hilman 2011-01-27 18:13 ` Alan Stern 2011-01-27 18:13 ` [linux-pm] " Alan Stern 2011-01-27 18:13 ` Alan Stern 2011-01-27 19:22 ` Kevin Hilman 2011-01-27 19:22 ` [linux-pm] " Kevin Hilman 2011-01-27 19:22 ` Kevin Hilman 2011-01-27 19:49 ` Alan Stern 2011-01-27 19:49 ` [linux-pm] " Alan Stern 2011-01-27 19:49 ` Alan Stern 2011-01-27 20:15 ` Kevin Hilman 2011-01-27 20:15 ` [linux-pm] " Kevin Hilman 2011-01-27 20:15 ` Kevin Hilman 2011-01-27 22:18 ` Vitaly Wool 2011-01-27 22:18 ` Vitaly Wool 2011-01-27 22:18 ` Vitaly Wool 2011-01-27 23:21 ` Rafael J. Wysocki 2011-01-27 23:21 ` [linux-pm] " Rafael J. Wysocki 2011-01-27 23:49 ` Kevin Hilman 2011-01-27 23:49 ` [linux-pm] " Kevin Hilman 2011-01-27 23:11 ` Rafael J. Wysocki 2011-01-27 23:11 ` [linux-pm] " Rafael J. Wysocki 2011-01-27 18:20 ` Vitaly Wool 2011-01-27 18:20 ` [linux-pm] " Vitaly Wool 2011-01-27 18:20 ` Vitaly Wool 2011-01-27 18:54 ` Kevin Hilman 2011-01-27 18:54 ` [linux-pm] " Kevin Hilman 2010-12-22 12:29 ` Rafael J. Wysocki 2010-12-22 1:42 ` Alan Stern 2010-12-21 21:31 ` Rafael J. Wysocki 2010-12-21 0:57 ` Alan Stern 2010-12-20 21:17 ` Rafael J. Wysocki 2010-12-20 3:37 ` Alan Stern 2010-12-21 22:23 ` Kevin Hilman 2010-12-21 22:23 ` [linux-pm] " Kevin Hilman 2010-12-22 1:48 ` Alan Stern 2010-12-22 1:48 ` Alan Stern 2010-12-22 1:48 ` Alan Stern 2010-12-23 7:51 ` Ohad Ben-Cohen 2010-12-23 7:51 ` [linux-pm] " Ohad Ben-Cohen 2010-12-23 16:03 ` Alan Stern 2010-12-23 16:03 ` [linux-pm] " Alan Stern 2010-12-23 16:03 ` Alan Stern 2010-12-25 7:34 ` Ohad Ben-Cohen 2010-12-25 7:34 ` Ohad Ben-Cohen 2010-12-25 16:21 ` Alan Stern 2010-12-25 16:21 ` Alan Stern 2010-12-25 20:58 ` Ohad Ben-Cohen 2010-12-25 20:58 ` Ohad Ben-Cohen [this message] 2010-12-25 20:58 ` [linux-pm] " Ohad Ben-Cohen 2010-12-25 21:50 ` Vitaly Wool 2010-12-25 21:50 ` [linux-pm] " Vitaly Wool 2010-12-26 5:27 ` Ohad Ben-Cohen 2010-12-26 5:27 ` [linux-pm] " Ohad Ben-Cohen 2010-12-25 21:54 ` Vitaly Wool 2010-12-25 21:54 ` Vitaly Wool 2010-12-25 21:54 ` Vitaly Wool 2010-12-26 2:48 ` [linux-pm] " Alan Stern 2010-12-26 2:48 ` Alan Stern 2010-12-26 5:55 ` Ohad Ben-Cohen 2010-12-26 5:55 ` [linux-pm] " Ohad Ben-Cohen 2010-12-26 5:55 ` Ohad Ben-Cohen 2010-12-26 11:45 ` Rafael J. Wysocki 2010-12-26 12:43 ` Ohad Ben-Cohen 2010-12-26 12:43 ` [linux-pm] " Ohad Ben-Cohen 2010-12-26 12:43 ` Ohad Ben-Cohen 2010-12-26 18:35 ` Rafael J. Wysocki 2010-12-28 19:11 ` Ohad Ben-Cohen 2010-12-28 19:11 ` [linux-pm] " Ohad Ben-Cohen 2010-12-28 19:21 ` Rafael J. Wysocki 2010-12-28 19:21 ` [linux-pm] " Rafael J. Wysocki 2010-12-28 19:21 ` Rafael J. Wysocki 2010-12-28 19:34 ` Ohad Ben-Cohen 2010-12-28 20:36 ` Rafael J. Wysocki 2010-12-28 20:36 ` [linux-pm] " Rafael J. Wysocki 2010-12-28 19:34 ` Ohad Ben-Cohen 2010-12-26 18:35 ` Rafael J. Wysocki 2010-12-26 14:53 ` [linux-pm] " Ohad Ben-Cohen 2010-12-26 18:37 ` Rafael J. Wysocki 2010-12-26 18:37 ` [linux-pm] " Rafael J. Wysocki 2010-12-28 19:15 ` Ohad Ben-Cohen 2010-12-28 20:04 ` Rafael J. Wysocki 2010-12-28 20:04 ` [linux-pm] " Rafael J. Wysocki 2010-12-28 20:04 ` Rafael J. Wysocki 2010-12-28 20:41 ` Ohad Ben-Cohen 2010-12-28 20:41 ` [linux-pm] " Ohad Ben-Cohen 2010-12-28 20:41 ` Ohad Ben-Cohen 2010-12-28 19:15 ` Ohad Ben-Cohen 2010-12-26 14:53 ` Ohad Ben-Cohen 2010-12-26 11:45 ` Rafael J. Wysocki 2010-12-26 17:00 ` [linux-pm] " Alan Stern 2010-12-26 17:00 ` Alan Stern 2010-12-28 19:04 ` Ohad Ben-Cohen 2010-12-28 19:04 ` [linux-pm] " Ohad Ben-Cohen 2010-12-28 19:04 ` Ohad Ben-Cohen 2010-12-28 21:46 ` Alan Stern 2010-12-28 21:46 ` [linux-pm] " Alan Stern 2010-12-28 21:46 ` Alan Stern 2010-12-29 6:34 ` Ohad Ben-Cohen 2010-12-30 4:25 ` Alan Stern 2010-12-30 4:25 ` Alan Stern 2010-12-30 4:25 ` Alan Stern 2010-12-29 6:34 ` Ohad Ben-Cohen 2010-12-29 8:01 ` Ohad Ben-Cohen 2010-12-29 8:01 ` [linux-pm] " Ohad Ben-Cohen 2010-12-30 4:30 ` Alan Stern 2010-12-30 4:30 ` [linux-pm] " Alan Stern 2010-12-30 4:30 ` Alan Stern 2010-12-26 17:00 ` Alan Stern 2010-12-26 2:48 ` Alan Stern 2010-12-25 16:21 ` Alan Stern 2010-12-25 7:34 ` Ohad Ben-Cohen 2010-12-18 22:47 ` Rafael J. Wysocki 2010-12-18 15:07 ` Rafael J. Wysocki 2010-12-18 21:20 ` [linux-pm] " Alan Stern 2010-12-18 23:03 ` Rafael J. Wysocki 2010-12-18 23:03 ` Rafael J. Wysocki 2010-12-19 10:00 ` [linux-pm] " Ohad Ben-Cohen 2010-12-19 10:00 ` Ohad Ben-Cohen 2010-12-18 21:20 ` Alan Stern
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=AANLkTimj0E3Rz_8WQrU4wGg3ONyXzkUT9+U3Xqz7Cq0X@mail.gmail.com \ --to=ohad@wizery.com \ --cc=ido@wizery.com \ --cc=johannes@sipsolutions.net \ --cc=khilman@deeprootsystems.com \ --cc=linux-mmc@vger.kernel.org \ --cc=linux-pm@lists.linux-foundation.org \ --cc=linux-wireless@vger.kernel.org \ --cc=rjw@sisk.pl \ --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: linkBe 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.