IRQF_RESUME_EARLY and errors in dpm_suspend_noirq
Hi,
Commit 9bab0b7fbace (genirq: Add IRQF_RESUME_EARLY and resume such IRQs earlier) split the suspend/resume of the irqs into two parts.
The early-irqs get resumed during syscore_resume, while the rest get resumed by the regular resume_device_irqs.
I may be blind, but where get the early-irqs resumed in the error path of dpm_suspend_noirq?
When a suspend_noirq callback returns an error, dpm_resume_noirq gets called, which only calls resume_device_irqs while the suspend_device_irqs call in dpm_suspend_noirq suspends all irqs. So it does not seem that the early-irqs get resumed at all in this case.
Thanks
Heiko
Quoted 8 lines · Heiko Stübner
Hi,
Commit
9bab0b7fbace(genirq: AddIRQF_RESUME_EARLYand resume such IRQs earlier) split the suspend/resume of the irqs into two parts.The early-irqs get resumed during
syscore_resume, while the rest get resumed by the regularresume_device_irqs.
Quoted 8 lines
I may be blind, but where get the early-irqs resumed in the error path of
dpm_suspend_noirq?When a
suspend_noirqcallback returns an error,dpm_resume_noirqgets called, which only callsresume_device_irqswhile thesuspend_device_irqscall indpm_suspend_noirqsuspends all irqs. So it does not seem that the early-irqs get resumed at all in this case.
I also faced same issue in our suspend failure path and posted fix sometime ago as
https://lkml.org/lkml/2013/8/13/373
It is still under review.
You can try this patch if it resolve the issue.
Thanks,
Laxman
Heiko Stübner
Acked-byHi Laxman,
Am Mittwoch, 20. November 2013, 10:54:10 schrieb Laxman Dewangan:
Quoted 8 lines
Quoted 7 lines
I may be blind, but where get the early-irqs resumed in the error path of
dpm_suspend_noirq?When a
suspend_noirqcallback returns an error,dpm_resume_noirqgets called, which only callsresume_device_irqswhile thesuspend_device_irqscall indpm_suspend_noirqsuspends all irqs. So it does not seem that the early-irqs get resumed at all in this case.
Quoted 7 lines
I also faced same issue in our suspend failure path and posted fix sometime ago as
https://lkml.org/lkml/2013/8/13/373It is still under review.
From the thread on lkml.org it looks like it got no reaction at all - maybe
was just overlooked. So maybe it would be good to re-send it.
As it is not visible on lkml.org, did you also include [email protected], as the issue started in 2011?
Quoted 1 line
You can try this patch if it resolve the issue.
Your patch looks a lot more sophisticated than my current band-aid fix :-) by using the fact that irqs won't get resumed twice on their own.
So if you repost your patch you could add an
Heiko
Pavel Machek
Reviewed-byQuoted 16 lines · Heiko Stübner
Hi Laxman,
Am Mittwoch, 20. November 2013, 10:54:10 schrieb Laxman Dewangan:
Quoted 13 lines
Quoted 7 lines
I may be blind, but where get the early-irqs resumed in the error path of
dpm_suspend_noirq?When a
suspend_noirqcallback returns an error,dpm_resume_noirqgets called, which only callsresume_device_irqswhile thesuspend_device_irqscall indpm_suspend_noirqsuspends all irqs. So it does not seem that the early-irqs get resumed at all in this case.I also faced same issue in our suspend failure path and posted fix sometime ago as
https://lkml.org/lkml/2013/8/13/373It is still under review.
If it helps, you can add my
Pavel
Signature · 2 lines
(english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
Hi!
(Oops, it seems that this thread uses Rafael's old address, and that it bounces, added address from maintainers to cc.)
Pavel
Quoted 34 lines · Heiko Stübner
Hi Laxman,
Am Mittwoch, 20. November 2013, 10:54:10 schrieb Laxman Dewangan:
Quoted 8 lines
Quoted 7 lines
I may be blind, but where get the early-irqs resumed in the error path of
dpm_suspend_noirq?When a
suspend_noirqcallback returns an error,dpm_resume_noirqgets called, which only callsresume_device_irqswhile thesuspend_device_irqscall indpm_suspend_noirqsuspends all irqs. So it does not seem that the early-irqs get resumed at all in this case.Quoted 5 lines
I also faced same issue in our suspend failure path and posted fix sometime ago as
https://lkml.org/lkml/2013/8/13/373It is still under review.
From the thread on lkml.org it looks like it got no reaction at all - maybe was just overlooked. So maybe it would be good to re-send it.
As it is not visible on lkml.org, did you also include [email protected], as the issue started in 2011?
Quoted 1 line
You can try this patch if it resolve the issue.
Your patch looks a lot more sophisticated than my current band-aid fix :-) by using the fact that irqs won't get resumed twice on their own.
So if you repost your patch you could add an
Acked-by Heiko Stuebner <[email protected]>Heiko
Signature · 2 lines
(english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
Quoted 17 lines · Laxman Dewangan
Quoted 8 lines · Heiko Stübner
Hi,
Commit
9bab0b7fbace(genirq: AddIRQF_RESUME_EARLYand resume such IRQs earlier) split the suspend/resume of the irqs into two parts.The early-irqs get resumed during
syscore_resume, while the rest get resumed by the regularresume_device_irqs.Quoted 8 lines
I may be blind, but where get the early-irqs resumed in the error path of
dpm_suspend_noirq?When a
suspend_noirqcallback returns an error,dpm_resume_noirqgets called, which only callsresume_device_irqswhile thesuspend_device_irqscall indpm_suspend_noirqsuspends all irqs. So it does not seem that the early-irqs get resumed at all in this case.
Quoted 5 lines
I also faced same issue in our suspend failure path and posted fix sometime ago as
https://lkml.org/lkml/2013/8/13/373It is still under review.
IME zero comments since August is not "under review", it is "has slipped through the cracks" ;-)
I would suggest you resend it.
Ian.
Quoted 22 lines · Ian Campbell
Quoted 21 lines · Laxman Dewangan
Quoted 8 lines · Heiko Stübner
Hi,
Commit
9bab0b7fbace(genirq: AddIRQF_RESUME_EARLYand resume such IRQs earlier) split the suspend/resume of the irqs into two parts.The early-irqs get resumed during
syscore_resume, while the rest get resumed by the regularresume_device_irqs.Quoted 8 lines
I may be blind, but where get the early-irqs resumed in the error path of
dpm_suspend_noirq?When a
suspend_noirqcallback returns an error,dpm_resume_noirqgets called, which only callsresume_device_irqswhile thesuspend_device_irqscall indpm_suspend_noirqsuspends all irqs. So it does not seem that the early-irqs get resumed at all in this case.I also faced same issue in our suspend failure path and posted fix sometime ago as
https://lkml.org/lkml/2013/8/13/373
Quoted 6 lines
Quoted 1 line
It is still under review.
IME zero comments since August is not "under review", it is "has slipped through the cracks" ;-)
I would suggest you resend it.
Thanks all of you for review/ack/validating it. I resend it today. Hope at this time it will be on tree.
Howevere, I have not added stable on cc.