* [char-misc-next] mei: exclude device from suspend direct complete optimization
@ 2017-08-03 14:30 Tomas Winkler
2017-08-09 7:13 ` Winkler, Tomas
0 siblings, 1 reply; 3+ messages in thread
From: Tomas Winkler @ 2017-08-03 14:30 UTC (permalink / raw)
To: Greg Kroah-Hartman
Cc: Alexander Usyskin, linux-kernel, Rafael J . Wysocki,
Dominik Brodowski, Tomas Winkler
From: Alexander Usyskin <alexander.usyskin@intel.com>
MEI device performs link reset during system suspend sequence.
The link reset cannot be performed while device is in
runtime suspend state. The resume sequence is bypassed with
suspend direct complete optimization,so the optimization should be
disabled for mei devices.
Fixes:
[ 192.940537] Restarting tasks ...
[ 192.940610] PGI is not set
[ 192.940619] ------------[ cut here ]------------ [ 192.940623]
WARNING: CPU: 0
me.c:653 mei_me_pg_exit_sync+0x351/0x360 [ 192.940624] Modules
linked
in:
[ 192.940627] CPU: 0 PID: 1661 Comm: kworker/0:3 Not tainted
4.13.0-rc2+
#2 [ 192.940628] Hardware name: Dell Inc. XPS 13 9343/0TM99H, BIOS
A11
12/08/2016 [ 192.940630] Workqueue: pm pm_runtime_work <snip> [
192.940642] Call Trace:
[ 192.940646] ? pci_pme_active+0x1de/0x1f0 [ 192.940649] ?
pci_restore_standard_config+0x50/0x50
[ 192.940651] ? kfree+0x172/0x190
[ 192.940653] ? kfree+0x172/0x190
[ 192.940655] ? pci_restore_standard_config+0x50/0x50
[ 192.940663] mei_me_pm_runtime_resume+0x3f/0xc0
[ 192.940665] pci_pm_runtime_resume+0x7a/0xa0 [ 192.940667]
__rpm_callback+0xb9/0x1e0 [ 192.940668] ?
preempt_count_add+0x6d/0xc0 [ 192.940670] rpm_callback+0x24/0x90 [
192.940672] ? pci_restore_standard_config+0x50/0x50
[ 192.940674] rpm_resume+0x4e8/0x800 [ 192.940676]
pm_runtime_work+0x55/0xb0 [ 192.940678]
process_one_work+0x184/0x3e0 [ 192.940680]
worker_thread+0x4d/0x3a0 [ 192.940681] ?
preempt_count_sub+0x9b/0x100 [ 192.940683]
kthread+0x122/0x140 [ 192.940684] ? process_one_work+0x3e0/0x3e0 [
192.940685] ? __kthread_create_on_node+0x1a0/0x1a0
[ 192.940688] ret_from_fork+0x27/0x40 [ 192.940690] Code: 96 3a
9e ff 48 8b 7d 98 e8 cd 21 58 00 83 bb bc 01 00 00
04 0f 85 40 fe ff ff e9 41 fe ff ff 48 c7 c7 5f 04 99 96 e8 93 6b 9f
ff <0f> ff e9 5d fd ff ff e8 33 fe 99 ff 0f 1f 00 0f 1f 44 00 00 55
[ 192.940719] ---[ end trace
a86955597774ead8 ]--- [ 192.942540] done.
Suggested-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Reported-by: Dominik Brodowski <linux@dominikbrodowski.net>
Cc: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Cc: Dominik Brodowski <linux@dominikbrodowski.net>
Signed-off-by: Alexander Usyskin <alexander.usyskin@intel.com>
Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
---
drivers/misc/mei/pci-me.c | 6 ++++++
drivers/misc/mei/pci-txe.c | 6 ++++++
2 files changed, 12 insertions(+)
diff --git a/drivers/misc/mei/pci-me.c b/drivers/misc/mei/pci-me.c
index 3f4e36b8892f..4ff40d319676 100644
--- a/drivers/misc/mei/pci-me.c
+++ b/drivers/misc/mei/pci-me.c
@@ -220,6 +220,12 @@ static int mei_me_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
pci_set_drvdata(pdev, dev);
/*
+ * MEI requires to resume from runtime suspend mode
+ * in order to perform link reset flow upon system suspend.
+ */
+ pdev->dev_flags |= PCI_DEV_FLAGS_NEEDS_RESUME;
+
+ /*
* For not wake-able HW runtime pm framework
* can't be used on pci device level.
* Use domain runtime pm callbacks instead.
diff --git a/drivers/misc/mei/pci-txe.c b/drivers/misc/mei/pci-txe.c
index f811cd524468..e38a5f144373 100644
--- a/drivers/misc/mei/pci-txe.c
+++ b/drivers/misc/mei/pci-txe.c
@@ -138,6 +138,12 @@ static int mei_txe_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
pci_set_drvdata(pdev, dev);
/*
+ * MEI requires to resume from runtime suspend mode
+ * in order to perform link reset flow upon system suspend.
+ */
+ pdev->dev_flags |= PCI_DEV_FLAGS_NEEDS_RESUME;
+
+ /*
* For not wake-able HW runtime pm framework
* can't be used on pci device level.
* Use domain runtime pm callbacks instead.
--
2.9.4
^ permalink raw reply [flat|nested] 3+ messages in thread
* RE: [char-misc-next] mei: exclude device from suspend direct complete optimization
2017-08-03 14:30 [char-misc-next] mei: exclude device from suspend direct complete optimization Tomas Winkler
@ 2017-08-09 7:13 ` Winkler, Tomas
2017-08-09 8:10 ` Dominik Brodowski
0 siblings, 1 reply; 3+ messages in thread
From: Winkler, Tomas @ 2017-08-09 7:13 UTC (permalink / raw)
To: Greg Kroah-Hartman
Cc: Usyskin, Alexander, linux-kernel, Wysocki, Rafael J, Dominik Brodowski
>
> From: Alexander Usyskin <alexander.usyskin@intel.com>
>
> MEI device performs link reset during system suspend sequence.
> The link reset cannot be performed while device is in runtime suspend state.
> The resume sequence is bypassed with suspend direct complete
> optimization,so the optimization should be disabled for mei devices.
>
> Fixes:
> [ 192.940537] Restarting tasks ...
> [ 192.940610] PGI is not set
> [ 192.940619] ------------[ cut here ]------------ [ 192.940623]
> WARNING: CPU: 0
> me.c:653 mei_me_pg_exit_sync+0x351/0x360 [ 192.940624] Modules linked
> in:
> [ 192.940627] CPU: 0 PID: 1661 Comm: kworker/0:3 Not tainted 4.13.0-rc2+
> #2 [ 192.940628] Hardware name: Dell Inc. XPS 13 9343/0TM99H, BIOS
> A11
> 12/08/2016 [ 192.940630] Workqueue: pm pm_runtime_work <snip> [
> 192.940642] Call Trace:
> [ 192.940646] ? pci_pme_active+0x1de/0x1f0 [ 192.940649] ?
> pci_restore_standard_config+0x50/0x50
> [ 192.940651] ? kfree+0x172/0x190
> [ 192.940653] ? kfree+0x172/0x190
> [ 192.940655] ? pci_restore_standard_config+0x50/0x50
> [ 192.940663] mei_me_pm_runtime_resume+0x3f/0xc0
> [ 192.940665] pci_pm_runtime_resume+0x7a/0xa0 [ 192.940667]
> __rpm_callback+0xb9/0x1e0 [ 192.940668] ?
> preempt_count_add+0x6d/0xc0 [ 192.940670] rpm_callback+0x24/0x90 [
> 192.940672] ? pci_restore_standard_config+0x50/0x50
> [ 192.940674] rpm_resume+0x4e8/0x800 [ 192.940676]
> pm_runtime_work+0x55/0xb0 [ 192.940678]
> process_one_work+0x184/0x3e0 [ 192.940680]
> worker_thread+0x4d/0x3a0 [ 192.940681] ?
> preempt_count_sub+0x9b/0x100 [ 192.940683]
> kthread+0x122/0x140 [ 192.940684] ? process_one_work+0x3e0/0x3e0 [
> 192.940685] ? __kthread_create_on_node+0x1a0/0x1a0
> [ 192.940688] ret_from_fork+0x27/0x40 [ 192.940690] Code: 96 3a 9e ff 48
> 8b 7d 98 e8 cd 21 58 00 83 bb bc 01 00 00
> 04 0f 85 40 fe ff ff e9 41 fe ff ff 48 c7 c7 5f 04 99 96 e8 93 6b 9f ff <0f> ff e9
> 5d fd ff ff e8 33 fe 99 ff 0f 1f 00 0f 1f 44 00 00 55 [ 192.940719] ---[ end trace
> a86955597774ead8 ]--- [ 192.942540] done.
>
> Suggested-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
> Reported-by: Dominik Brodowski <linux@dominikbrodowski.net>
> Cc: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
> Cc: Dominik Brodowski <linux@dominikbrodowski.net>
> Signed-off-by: Alexander Usyskin <alexander.usyskin@intel.com>
> Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
> ---
Hi Greg
Sorry for wring tagging this should go to 4. 13
Dominik can you check and ACK this patch?
Thanks
Tomas
> drivers/misc/mei/pci-me.c | 6 ++++++
> drivers/misc/mei/pci-txe.c | 6 ++++++
> 2 files changed, 12 insertions(+)
>
> diff --git a/drivers/misc/mei/pci-me.c b/drivers/misc/mei/pci-me.c index
> 3f4e36b8892f..4ff40d319676 100644
> --- a/drivers/misc/mei/pci-me.c
> +++ b/drivers/misc/mei/pci-me.c
> @@ -220,6 +220,12 @@ static int mei_me_probe(struct pci_dev *pdev,
> const struct pci_device_id *ent)
> pci_set_drvdata(pdev, dev);
>
> /*
> + * MEI requires to resume from runtime suspend mode
> + * in order to perform link reset flow upon system suspend.
> + */
> + pdev->dev_flags |= PCI_DEV_FLAGS_NEEDS_RESUME;
> +
> + /*
> * For not wake-able HW runtime pm framework
> * can't be used on pci device level.
> * Use domain runtime pm callbacks instead.
> diff --git a/drivers/misc/mei/pci-txe.c b/drivers/misc/mei/pci-txe.c index
> f811cd524468..e38a5f144373 100644
> --- a/drivers/misc/mei/pci-txe.c
> +++ b/drivers/misc/mei/pci-txe.c
> @@ -138,6 +138,12 @@ static int mei_txe_probe(struct pci_dev *pdev,
> const struct pci_device_id *ent)
> pci_set_drvdata(pdev, dev);
>
> /*
> + * MEI requires to resume from runtime suspend mode
> + * in order to perform link reset flow upon system suspend.
> + */
> + pdev->dev_flags |= PCI_DEV_FLAGS_NEEDS_RESUME;
> +
> + /*
> * For not wake-able HW runtime pm framework
> * can't be used on pci device level.
> * Use domain runtime pm callbacks instead.
> --
> 2.9.4
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [char-misc-next] mei: exclude device from suspend direct complete optimization
2017-08-09 7:13 ` Winkler, Tomas
@ 2017-08-09 8:10 ` Dominik Brodowski
0 siblings, 0 replies; 3+ messages in thread
From: Dominik Brodowski @ 2017-08-09 8:10 UTC (permalink / raw)
To: Winkler, Tomas
Cc: Greg Kroah-Hartman, Usyskin, Alexander, linux-kernel, Wysocki, Rafael J
Tomas,
On Wed, Aug 09, 2017 at 07:13:25AM +0000, Winkler, Tomas wrote:
>
> >
> > From: Alexander Usyskin <alexander.usyskin@intel.com>
> >
> > MEI device performs link reset during system suspend sequence.
> > The link reset cannot be performed while device is in runtime suspend state.
> > The resume sequence is bypassed with suspend direct complete
> > optimization,so the optimization should be disabled for mei devices.
> >
> > Fixes:
> > [ 192.940537] Restarting tasks ...
> > [ 192.940610] PGI is not set
> > [ 192.940619] ------------[ cut here ]------------ [ 192.940623]
> > WARNING: CPU: 0
> > me.c:653 mei_me_pg_exit_sync+0x351/0x360 [ 192.940624] Modules linked
> > in:
> > [ 192.940627] CPU: 0 PID: 1661 Comm: kworker/0:3 Not tainted 4.13.0-rc2+
> > #2 [ 192.940628] Hardware name: Dell Inc. XPS 13 9343/0TM99H, BIOS
> > A11
> > 12/08/2016 [ 192.940630] Workqueue: pm pm_runtime_work <snip> [
> > 192.940642] Call Trace:
> > [ 192.940646] ? pci_pme_active+0x1de/0x1f0 [ 192.940649] ?
> > pci_restore_standard_config+0x50/0x50
> > [ 192.940651] ? kfree+0x172/0x190
> > [ 192.940653] ? kfree+0x172/0x190
> > [ 192.940655] ? pci_restore_standard_config+0x50/0x50
> > [ 192.940663] mei_me_pm_runtime_resume+0x3f/0xc0
> > [ 192.940665] pci_pm_runtime_resume+0x7a/0xa0 [ 192.940667]
> > __rpm_callback+0xb9/0x1e0 [ 192.940668] ?
> > preempt_count_add+0x6d/0xc0 [ 192.940670] rpm_callback+0x24/0x90 [
> > 192.940672] ? pci_restore_standard_config+0x50/0x50
> > [ 192.940674] rpm_resume+0x4e8/0x800 [ 192.940676]
> > pm_runtime_work+0x55/0xb0 [ 192.940678]
> > process_one_work+0x184/0x3e0 [ 192.940680]
> > worker_thread+0x4d/0x3a0 [ 192.940681] ?
> > preempt_count_sub+0x9b/0x100 [ 192.940683]
> > kthread+0x122/0x140 [ 192.940684] ? process_one_work+0x3e0/0x3e0 [
> > 192.940685] ? __kthread_create_on_node+0x1a0/0x1a0
> > [ 192.940688] ret_from_fork+0x27/0x40 [ 192.940690] Code: 96 3a 9e ff 48
> > 8b 7d 98 e8 cd 21 58 00 83 bb bc 01 00 00
> > 04 0f 85 40 fe ff ff e9 41 fe ff ff 48 c7 c7 5f 04 99 96 e8 93 6b 9f ff <0f> ff e9
> > 5d fd ff ff e8 33 fe 99 ff 0f 1f 00 0f 1f 44 00 00 55 [ 192.940719] ---[ end trace
> > a86955597774ead8 ]--- [ 192.942540] done.
> >
> > Suggested-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
> > Reported-by: Dominik Brodowski <linux@dominikbrodowski.net>
> > Cc: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
> > Cc: Dominik Brodowski <linux@dominikbrodowski.net>
> > Signed-off-by: Alexander Usyskin <alexander.usyskin@intel.com>
> > Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
> > ---
>
> Hi Greg
> Sorry for wring tagging this should go to 4. 13
> Dominik can you check and ACK this patch?
I'm happy to confirm that this patch solves the issue.
Thanks,
Dominik
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2017-08-09 8:11 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-08-03 14:30 [char-misc-next] mei: exclude device from suspend direct complete optimization Tomas Winkler
2017-08-09 7:13 ` Winkler, Tomas
2017-08-09 8:10 ` Dominik Brodowski
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®