From: Kristian Klausen <email@example.com> To: "Rafael J. Wysocki" <firstname.lastname@example.org> Cc: "Rafael J. Wysocki" <email@example.com>, Linux ACPI <firstname.lastname@example.org>, Linux PM <email@example.com>, LKML <firstname.lastname@example.org>, Zhang Rui <email@example.com>, Rajneesh Bhardwaj <firstname.lastname@example.org>, Andy Shevchenko <email@example.com>, Mario Limonciello <firstname.lastname@example.org>, Kai-Heng Feng <email@example.com> Subject: Re: [PATCH v3 0/8] PM / ACPI: sleep: Additional changes related to suspend-to-idle Date: Tue, 20 Aug 2019 15:10:34 +0200 [thread overview] Message-ID: <firstname.lastname@example.org> (raw) In-Reply-To: <CAJZ5v0gw1Dw8FUgKmkeq5TCa=OqvFUVTq6aHgFw-D9O4YiiCKw@mail.gmail.com> On 19.08.2019 22.41, Rafael J. Wysocki wrote: > On Mon, Aug 19, 2019 at 5:47 PM Kristian Klausen <email@example.com> wrote: >> On 19.08.2019 11.05, Rafael J. Wysocki wrote: >>> On Monday, August 19, 2019 9:59:02 AM CEST Rafael J. Wysocki wrote: >>>> On Fri, Aug 16, 2019 at 10:26 PM Kristian Klausen <firstname.lastname@example.org> wrote: >>>>> On 02.08.2019 12.33, Rafael J. Wysocki wrote: >>>>>> Hi All, >>>>>> >>>>>>>> On top of the "Simplify the suspend-to-idle control flow" patch series >>>>>>>> posted previously: >>>>>>>> >>>>>>>> https://lore.kernel.org/lkml/71085220.z6FKkvYQPX@kreacher/ >>>>>>>> >>>>>>>> sanitize the suspend-to-idle flow even further. >>>>>>>> >>>>>>>> First off, decouple EC wakeup from the LPS0 _DSM processing (patch 1). >>>>>>>> >>>>>>>> Next, reorder the code to invoke LPS0 _DSM Functions 5 and 6 in the >>>>>>>> specification-compliant order with respect to suspending and resuming >>>>>>>> devices (patch 2). >>>>>>>> >>>>>>>> Finally, rearrange lps0_device_attach() (patch 3) and add a command line >>>>>>>> switch to prevent the LPS0 _DSM from being used. >>>>>>> The v2 is because I found a (minor) bug in patch 1, decided to use a module >>>>>>> parameter instead of a kernel command line option in patch 4. Also, there >>>>>>> are 4 new patches: >>>>>>> >>>>>>> Patch 5: Switch the EC over to polling during "noirq" suspend and back >>>>>>> during "noirq" resume. >>>>>>> >>>>>>> Patch 6: Eliminate acpi_sleep_no_ec_events(). >>>>>>> >>>>>>> Patch 7: Consolidate some EC code depending on PM_SLEEP. >>>>>>> >>>>>>> Patch 8: Add EC GPE dispatching debug message. >>>>>> The v3 is just a rearranged v2 so as to move the post sensitive patch (previous patch 2) >>>>>> to the end of the series. [After applying the full series the code is the same as before.] >>>>>> >>>>>> For easier testing, the series (along with some previous patches depended on by it) >>>>>> is available in the pm-s2idle-testing branch of the linux-pm.git tree at kernel.org: >>>>>> >>>>>> https://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git/log/?h=pm-s2idle-testing >>>>> It was just testing this patch series(461fc1caed55), to see if it would >>>>> fix my charging issue >>>>> (https://bugzilla.kernel.org/show_bug.cgi?id=201307), which it didn't. >>>> It is unlikely to help in that case. >> Do you have any idea what the issue could be? > Basically, there are two possibilities: either the OS is expected to > handle the AC/battery switching events, or the platform firmware > should take care of them. In the former case, the EC should generate > events to be handled by the OS and in the latter one there needs to be > a way to let the platform firmware that it needs to take care of those > events going forward. > > In either case there may be a platform-specific action to be carried > out during suspend and resume to set this up as expected which may be > missing. Thanks for the explanation. I don't think I have the expertise to solve the issue, but at least now I'm one step closer. > >>>>> I did however notice that my laptop (ASUS Zenbook UX430UNR/i7-8550U) >>>>> won't wake when opening the lid or pressing a key, the only way to wake >>>>> the laptop is pressing the power button. >>>>> >>>>> I also tested mainline (5.3.0-rc4 b7e7c85dc7b0) and 5.2.8 and the laptop >>>>> wakes without issue when the lid is opened or a key is presed. >>>>>> Please refer to the changelogs for details. >>>> Thanks for your report. >>>> >>>> I seem to see a similar issue with respect to the lid on one of my >>>> test machines, looking into it right now. >>> Well, my lid issue seems to be unrelated as it doesn't result from any patches in the >>> series in question. >>> >>> First off, please clone 5.3-rc5 from kernel.org and double check if the issue is not >>> present in that one. >>> >>> If that's not the case, merge the pm-s2idle-rework branch from my tree on top of it >>> and retest. >>> >>> If you still see the issue then, apply the appended patch (on top of the pm-s2idle-reqork >>> branch ) and, after starting the kernel, do >>> >>> # echo 1 > /sys/power/pm_debug_messages >>> >>> suspend the system and try to wake it up through all of the ways that stopped working. >>> >>> Then, wake it up with the power button, save the output of dmesg and send it to me. >>> >>> Thanks! >> With 5.3-rc5 the laptops wakes up without any issue when pressing a key >> or opening the lid. >> With v5.3-rc5+pm-s2idle-testing I can only wake the laptop by pressing >> the power button. > OK, thanks for verifying. > > So it is unclear to me how the series can cause an issue like that to appear. > >> dmesg with pm_debug_messages=1 and your patch: >> [ 55.646109] PM: suspend entry (s2idle) >> [ 55.698559] Filesystems sync: 0.052 seconds >> [ 55.698561] PM: Preparing system for sleep (s2idle) >> [ 55.700661] Freezing user space processes ... (elapsed 0.210 seconds) >> done. >> [ 55.911494] OOM killer disabled. >> [ 55.911495] Freezing remaining freezable tasks ... (elapsed 0.001 >> seconds) done. >> [ 55.913192] PM: Suspending system (s2idle) >> [ 55.913195] printk: Suspending console(s) (use no_console_suspend to >> debug) >> [ 55.914778] [drm] CT: disabled >> [ 55.916057] wlan0: deauthenticating from 64:70:02:a5:fd:02 by local >> choice (Reason: 3=DEAUTH_LEAVING) >> [ 56.045634] sd 2:0:0:0: [sda] Synchronizing SCSI cache >> [ 56.046650] sd 2:0:0:0: [sda] Stopping disk >> [ 56.287622] PM: suspend of devices complete after 371.285 msecs >> [ 56.287627] PM: start suspend of devices complete after 373.684 msecs >> [ 56.307155] PM: late suspend of devices complete after 19.477 msecs >> [ 56.312479] ACPI: EC: interrupt blocked >> [ 56.352761] PM: noirq suspend of devices complete after 45.205 msecs >> [ 56.352770] ACPI: \_PR_.PR00: LPI: Device not power manageable >> [ 56.352774] ACPI: \_PR_.PR01: LPI: Device not power manageable >> [ 56.352776] ACPI: \_PR_.PR02: LPI: Device not power manageable >> [ 56.352779] ACPI: \_PR_.PR03: LPI: Device not power manageable >> [ 56.352782] ACPI: \_PR_.PR04: LPI: Device not power manageable >> [ 56.352785] ACPI: \_PR_.PR05: LPI: Device not power manageable >> [ 56.352788] ACPI: \_PR_.PR06: LPI: Device not power manageable >> [ 56.352790] ACPI: \_PR_.PR07: LPI: Device not power manageable >> [ 56.352793] ACPI: \_SB_.PCI0.GFX0: LPI: Device not power manageable >> [ 56.352800] ACPI: \_SB_.PCI0.RP06.PXSX: LPI: Device not power manageable >> [ 56.357057] PM: suspend-to-idle >> [ 69.338656] PM: Timekeeping suspended for 12.178 seconds >> [ 69.338701] PM: irq_pm_check_wakeup: IRQ 9 >> [ 69.338704] PM: IRQ wakeup: IRQ 9 > This clearly is the power button event causing the system to wake up. > The other actions, whatever they were, didn't cause any interrupts to > be triggered. > > I suspect that the issue is related to the EC, so please try to revert commit > > fcd0a04267ac ACPI: PM: s2idle: Switch EC over to polling during "noirq" suspend > > and see if that makes any difference (should revert cleanly). > > If that doesn't make any difference, please also try to revert commits > (on top of the above revert) > > 11f26633cccb PM: suspend: Fix platform_suspend_prepare_noirq() > ac9eafbe930a ACPI: PM: s2idle: Execute LPS0 _DSM functions with > suspended devices > > (in this order) and retest. Reverting the following commits, didn't fix the issue: fcd0a04267ac ACPI: PM: s2idle: Switch EC over to polling during "noirq" suspend 6e86633a791f ACPI: PM: s2idle: Eliminate acpi_sleep_no_ec_events() 11f26633cccb PM: suspend: Fix platform_suspend_prepare_noirq() ac9eafbe930a ACPI: PM: s2idle: Execute LPS0 _DSM functions with suspended devices I didn't bother reverting all the commits, so I did a checkout of: b605c44c30b5 PM: sleep: Drop dpm_noirq_begin() and dpm_noirq_end() and everything works, then I did a checkout of: 10a08fd65ec1 ACPI: PM: Set up EC GPE for system wakeup from drivers that need it and the laptop won't wake when opening the lid or pressing a key. So 10a08fd65ec1 must be the culprit.
next prev parent reply other threads:[~2019-08-20 13:10 UTC|newest] Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-08-02 10:33 Rafael J. Wysocki 2019-08-02 10:38 ` [PATCH v3 1/8] ACPI: PM: Set up EC GPE for system wakeup from drivers that need it Rafael J. Wysocki 2019-08-02 10:38 ` [PATCH v3 2/8] ACPI: PM: s2idle: Rearrange lps0_device_attach() Rafael J. Wysocki 2019-08-02 10:38 ` [PATCH v3 3/8] ACPI: PM: s2idle: Add acpi.sleep_no_lps0 module parameter Rafael J. Wysocki 2019-08-02 10:40 ` [PATCH v3 4/8] ACPI: PM: s2idle: Switch EC over to polling during "noirq" suspend Rafael J. Wysocki 2019-08-02 10:41 ` [PATCH v3 5/8] ACPI: PM: s2idle: Eliminate acpi_sleep_no_ec_events() Rafael J. Wysocki 2019-08-02 10:43 ` [PATCH v3 6/8] ACPI: EC: PM: Consolidate some code depending on PM_SLEEP Rafael J. Wysocki 2019-08-02 10:44 ` [PATCH v3 7/8] ACPI: EC: PM: Make acpi_ec_dispatch_gpe() print debug message Rafael J. Wysocki 2019-08-02 10:45 ` [PATCH v3 8/8] ACPI: PM: s2idle: Execute LPS0 _DSM functions with suspended devices Rafael J. Wysocki [not found] ` <CGME20190809120052eucas1p11b56806662ef4f4efb82a152ad651481@eucas1p1.samsung.com> 2019-08-09 12:00 ` Marek Szyprowski 2019-08-09 12:15 ` Rafael J. Wysocki 2019-08-10 11:24 ` [PATCH] PM: suspend: Fix platform_suspend_prepare_noirq() Rafael J. Wysocki 2019-08-05 16:25 ` [PATCH v3 0/8] PM / ACPI: sleep: Additional changes related to suspend-to-idle Kai-Heng Feng 2019-08-12 13:55 ` Bhardwaj, Rajneesh 2019-08-12 21:32 ` Rafael J. Wysocki 2019-08-16 20:20 ` Kristian Klausen 2019-08-19 7:59 ` Rafael J. Wysocki 2019-08-19 9:05 ` Rafael J. Wysocki 2019-08-19 15:45 ` Kristian Klausen 2019-08-19 20:41 ` Rafael J. Wysocki 2019-08-20 13:10 ` Kristian Klausen [this message] 2019-08-20 13:29 ` Rafael J. Wysocki 2019-08-20 21:38 ` Rafael J. Wysocki 2019-08-20 22:47 ` Kristian Klausen 2019-08-21 7:30 ` Rafael J. Wysocki
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 \ --email@example.com \ --firstname.lastname@example.org \ --email@example.com \ --firstname.lastname@example.org \ --email@example.com \ --firstname.lastname@example.org \ --email@example.com \ --firstname.lastname@example.org \ --email@example.com \ --firstname.lastname@example.org \ --email@example.com \ --firstname.lastname@example.org \ --subject='Re: [PATCH v3 0/8] PM / ACPI: sleep: Additional changes related to suspend-to-idle' \ /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
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).