diff mbox series

[RFC] thermal/core: Disable uevent messages for cooling devices

Message ID 20220710164026.541466-1-r.stratiienko@gmail.com (mailing list archive)
State RFC, archived
Headers show
Series [RFC] thermal/core: Disable uevent messages for cooling devices | expand

Commit Message

Roman Stratiienko July 10, 2022, 4:40 p.m. UTC
During suspend, the big CPU cluster is turned off first while a little
is still running. This forcibly unregisters the cooling device which
sends a "REMOVE" uevent to all subscribers [1].

In case userspace netlink subscriber has set the EPOLLWAKEUP flag, a
wakeup event is triggered that causes suspend to be aborted.

Without this change, suspend doesn't work on PinePhone PRO with AOSP
userland.

[1]: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=5c238a8b599f1ae25eaeb08ad0e9e13e2b9eb023
Signed-off-by: Roman Stratiienko <r.stratiienko@gmail.com>
---
 drivers/thermal/thermal_core.c | 1 +
 1 file changed, 1 insertion(+)

Comments

John Stultz April 8, 2024, 6:48 p.m. UTC | #1
On Sun, Jul 10, 2022 at 9:40 AM Roman Stratiienko
<r.stratiienko@gmail.com> wrote:
>
> During suspend, the big CPU cluster is turned off first while a little
> is still running. This forcibly unregisters the cooling device which
> sends a "REMOVE" uevent to all subscribers [1].
>
> In case userspace netlink subscriber has set the EPOLLWAKEUP flag, a
> wakeup event is triggered that causes suspend to be aborted.
>
> Without this change, suspend doesn't work on PinePhone PRO with AOSP
> userland.
>
> [1]: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=5c238a8b599f1ae25eaeb08ad0e9e13e2b9eb023
> Signed-off-by: Roman Stratiienko <r.stratiienko@gmail.com>

Hey Roman,
  I wanted to drudge this patch up, to ask what the current status of
it was?  Is there an alternative solution that you've been using since
this was last sent out?
I've heard of some vendors working around something similar, so I
wanted to see if we could get a common fix upstream.

thanks
-john
Roman Stratiienko April 8, 2024, 6:59 p.m. UTC | #2
Hi John,

I haven't worked on it since I posted it initially. But it looks like
there's an alternative patch already upstreamed and backported into
stable:

https://lore.kernel.org/linux-kernel/CAJZ5v0hHTuEXmQA=0D90eR_KUsOsfcxYbTS=zQYDTXuY6o_K_Q@mail.gmail.com/T/

BR,
Roman

пн, 8 апр. 2024 г. в 21:48, John Stultz <jstultz@google.com>:
>
> On Sun, Jul 10, 2022 at 9:40 AM Roman Stratiienko
> <r.stratiienko@gmail.com> wrote:
> >
> > During suspend, the big CPU cluster is turned off first while a little
> > is still running. This forcibly unregisters the cooling device which
> > sends a "REMOVE" uevent to all subscribers [1].
> >
> > In case userspace netlink subscriber has set the EPOLLWAKEUP flag, a
> > wakeup event is triggered that causes suspend to be aborted.
> >
> > Without this change, suspend doesn't work on PinePhone PRO with AOSP
> > userland.
> >
> > [1]: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=5c238a8b599f1ae25eaeb08ad0e9e13e2b9eb023
> > Signed-off-by: Roman Stratiienko <r.stratiienko@gmail.com>
>
> Hey Roman,
>   I wanted to drudge this patch up, to ask what the current status of
> it was?  Is there an alternative solution that you've been using since
> this was last sent out?
> I've heard of some vendors working around something similar, so I
> wanted to see if we could get a common fix upstream.
>
> thanks
> -john
John Stultz April 8, 2024, 7:03 p.m. UTC | #3
On Mon, Apr 8, 2024 at 11:59 AM Roman Stratiienko
<r.stratiienko@gmail.com> wrote:
>
> I haven't worked on it since I posted it initially. But it looks like
> there's an alternative patch already upstreamed and backported into
> stable:
>
> https://lore.kernel.org/linux-kernel/CAJZ5v0hHTuEXmQA=0D90eR_KUsOsfcxYbTS=zQYDTXuY6o_K_Q@mail.gmail.com/T/

Ah! Many thanks for the link! I'll check in with folks to better
understand if there is a functionality gap between what you submitted
and what landed upstream.

Thanks again!
-john
John Stultz April 8, 2024, 7:38 p.m. UTC | #4
On Mon, Apr 8, 2024 at 12:03 PM John Stultz <jstultz@google.com> wrote:
>
> On Mon, Apr 8, 2024 at 11:59 AM Roman Stratiienko
> <r.stratiienko@gmail.com> wrote:
> >
> > I haven't worked on it since I posted it initially. But it looks like
> > there's an alternative patch already upstreamed and backported into
> > stable:
> >
> > https://lore.kernel.org/linux-kernel/CAJZ5v0hHTuEXmQA=0D90eR_KUsOsfcxYbTS=zQYDTXuY6o_K_Q@mail.gmail.com/T/
>
> Ah! Many thanks for the link! I'll check in with folks to better
> understand if there is a functionality gap between what you submitted
> and what landed upstream.

Ah. Looks like it maybe hasn't landed in -stable yet.

Thanks again for the pointer!
-john
diff mbox series

Patch

diff --git a/drivers/thermal/thermal_core.c b/drivers/thermal/thermal_core.c
index cdc0552e8c42e..e6b21f2792a85 100644
--- a/drivers/thermal/thermal_core.c
+++ b/drivers/thermal/thermal_core.c
@@ -925,6 +925,7 @@  __thermal_cooling_device_register(struct device_node *np,
 	cdev->device.class = &thermal_class;
 	cdev->devdata = devdata;
 	thermal_cooling_device_setup_sysfs(cdev);
+	dev_set_uevent_suppress(&cdev->device, true);
 	ret = device_register(&cdev->device);
 	if (ret)
 		goto out_kfree_type;