From: "Rafael J. Wysocki" <rjw@rjwysocki.net>
To: Lukas Wunner <lukas@wunner.de>
Cc: Geert Uytterhoeven <geert@linux-m68k.org>,
Bjorn Helgaas <bhelgaas@google.com>,
Yinghai Lu <yinghai@kernel.org>,
Mika Westerberg <mika.westerberg@linux.intel.com>,
Laurent Pinchart <laurent.pinchart@ideasonboard.com>,
Simon Horman <horms@verge.net.au>,
linux-pci <linux-pci@vger.kernel.org>,
Linux PM list <linux-pm@vger.kernel.org>,
Linux-Renesas <linux-renesas-soc@vger.kernel.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: PCI / PM: Crashes in PME scan during system suspend
Date: Sat, 15 Apr 2017 00:27:31 +0200 [thread overview]
Message-ID: <3960283.lbE9ESSj2m@aspire.rjw.lan> (raw)
In-Reply-To: <20170414082249.GA5417@wunner.de>
On Friday, April 14, 2017 10:22:49 AM Lukas Wunner wrote:
> On Tue, Feb 14, 2017 at 12:26:01PM +0100, Rafael J. Wysocki wrote:
> > On Tuesday, February 14, 2017 10:31:38 AM Geert Uytterhoeven wrote:
> > > Laurent Pinchart reported that r8a7790/Lager crashes during suspend tests.
> > >
> > > I managed to reproduce the issue on r8a7791/koelsch:
> > > - It only happens during suspend tests, after writing either "platform"
> > > or "processors" to /sys/power/pm_test,
> > > - It does not (or is less likely) to happen during full system suspend
> > > ("core" or "none").
> > >
> > > More investigation shows this happens when the PME scan runs, once per
> > > second. During PME scan, the PCI host bridge (rcar-pci) registers are
> > > accessed while the host bridge's module clock has already been disabled,
> > > leading to a crash.
> >
> > OK, so clearly PME scans should be suspended before the host bridge
> > registers become inaccessible.
> >
> > Another question, though, is whether or not PME scans are actually necessary
> > on the affected platforms at all.
>
> I'm not seeing a fix for this in linux-next, am I missing something?
> Has anyone looked into it or is the issue still open?
It is still open AFAICS.
> Below is a tentative patch which moves PME polling to a freezable
> workqueue, so it is frozen before the host bridge is suspended.
> Geert, Laurent, could you test this?
>
> The patch may be problematic in that pci_pme_list_scan() acquires
> pci_pme_list_mutex, which is also acquired by pci_pme_active(),
> which gets called when devices are suspended -- *after* the worker
> has been frozen. I'm not really familiar with the freezer, can it
> happen that the worker is frozen while holding the mutex? If so
> this would deadlock. Rafael?
That depends on the worker, precisely on where it calls try_to_freeze().
That said I think it won't do that while holding any locks. :-)
Thanks,
Rafael
next prev parent reply other threads:[~2017-04-14 22:33 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-02-14 9:31 Geert Uytterhoeven
2017-02-14 11:26 ` Rafael J. Wysocki
2017-04-14 8:22 ` Lukas Wunner
2017-04-14 22:27 ` Rafael J. Wysocki [this message]
2017-04-16 7:55 ` Lukas Wunner
2017-04-18 6:49 ` Geert Uytterhoeven
2017-04-18 14:06 ` Rafael J. Wysocki
2017-04-18 18:39 ` Lukas Wunner
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=3960283.lbE9ESSj2m@aspire.rjw.lan \
--to=rjw@rjwysocki.net \
--cc=bhelgaas@google.com \
--cc=geert@linux-m68k.org \
--cc=horms@verge.net.au \
--cc=laurent.pinchart@ideasonboard.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=linux-renesas-soc@vger.kernel.org \
--cc=lukas@wunner.de \
--cc=mika.westerberg@linux.intel.com \
--cc=yinghai@kernel.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Powered by JetHome