Re: [PATCH v2] PM: Print pending wakeup IRQ preventing suspend

From: Rafael J. Wysocki
Date: Sat Sep 20 2014 - 19:49:15 EST


On Friday, September 19, 2014 04:52:35 AM Amit Pundir wrote:
> From: Todd Poynor <toddpoynor@xxxxxxxxxx>
>
> Currently when a pending wakeup irq stops suspend, it can be difficult
> to determine why suspend was prevented and which IRQ was actually
> responsible. In order to help debug such situation, this patch prints the
> IRQ number and action name of that pending wakeup irq.
>
> Cc: Pavel Machek <pavel@xxxxxx>
> Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
> Cc: Rafael J. Wysocki <rjw@xxxxxxxxxxxxx>
> Cc: Len Brown <len.brown@xxxxxxxxx>
> Cc: linux-pm@xxxxxxxxxxxxxxx
> Cc: Android Kernel Team <kernel-team@xxxxxxxxxxx>
> Acked-by: Pavel Machek <pavel@xxxxxx>
> Signed-off-by: Todd Poynor <toddpoynor@xxxxxxxxxx>
> [Amit Pundir: Reworded the commit message]
> Signed-off-by: Amit Pundir <amit.pundir@xxxxxxxxxx>
> ---
> Resending this patch assuming that it might have got lost in between merge
> window rush last time and now people might have some time to look at it.
>
> kernel/irq/pm.c | 7 ++++++-
> 1 file changed, 6 insertions(+), 1 deletion(-)
>
> diff --git a/kernel/irq/pm.c b/kernel/irq/pm.c
> index abcd6ca..c2bc8d9 100644
> --- a/kernel/irq/pm.c
> +++ b/kernel/irq/pm.c
> @@ -109,8 +109,13 @@ int check_wakeup_irqs(void)

check_wakeup_irqs() is going away in 3.18, please see linux-next (or the
pm-genirq branch of linux-pm.git) for details.

> * can abort suspend.
> */
> if (irqd_is_wakeup_set(&desc->irq_data)) {
> - if (desc->depth == 1 && desc->istate & IRQS_PENDING)
> + if (desc->depth == 1 && desc->istate & IRQS_PENDING) {
> + pr_info("Wakeup IRQ %d %s pending, suspend aborted\n",
> + irq,
> + desc->action && desc->action->name ?
> + desc->action->name : "");
> return -EBUSY;
> + }
> continue;
> }
> /*
>

--
I speak only for myself.
Rafael J. Wysocki, Intel Open Source Technology Center.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/