Linux-PM Archive on lore.kernel.org
 help / color / Atom feed
From: "Zhang, Rui" <rui.zhang@intel.com>
To: Andrzej Pietrasiewicz <andrzej.p@collabora.com>,
	"linux-pm@vger.kernel.org" <linux-pm@vger.kernel.org>
Cc: "Rafael J . Wysocki" <rjw@rjwysocki.net>,
	Len Brown <lenb@kernel.org>, Jiri Pirko <jiri@mellanox.com>,
	Ido Schimmel <idosch@mellanox.com>,
	"David S . Miller" <davem@davemloft.net>,
	Peter Kaestle <peter@piie.net>,
	Darren Hart <dvhart@infradead.org>,
	Andy Shevchenko <andy@infradead.org>,
	"Support Opensource" <support.opensource@diasemi.com>,
	Daniel Lezcano <daniel.lezcano@linaro.org>,
	Amit Kucheria <amit.kucheria@verdurent.com>,
	Shawn Guo <shawnguo@kernel.org>,
	Sascha Hauer <s.hauer@pengutronix.de>,
	Pengutronix Kernel Team <kernel@pengutronix.de>,
	Fabio Estevam <festevam@gmail.com>,
	NXP Linux Team <linux-imx@nxp.com>,
	Heiko Stuebner <heiko@sntech.de>,
	Orson Zhai <orsonzhai@gmail.com>,
	Baolin Wang <baolin.wang7@gmail.com>,
	Chunyan Zhang <zhang.lyra@gmail.com>,
	"linux-acpi@vger.kernel.org" <linux-acpi@vger.kernel.org>,
	"netdev@vger.kernel.org" <netdev@vger.kernel.org>,
	"platform-driver-x86@vger.kernel.org" 
	<platform-driver-x86@vger.kernel.org>,
	"linux-arm-kernel@lists.infradead.org" 
	<linux-arm-kernel@lists.infradead.org>,
	"kernel@collabora.com" <kernel@collabora.com>,
	Barlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
Subject: RE: [PATCH v3 2/2] thermal: core: Stop polling DISABLED thermal devices
Date: Fri, 24 Apr 2020 09:03:29 +0000
Message-ID: <744357E9AAD1214791ACBA4B0B90926377CF60E3@SHSMSX108.ccr.corp.intel.com> (raw)
In-Reply-To: <20200423165705.13585-3-andrzej.p@collabora.com>

Hi, Andrzej,

Thanks for the patches. My Linux laptop was broken and won't get fixed till next
week, so I may lost some of the discussions previously.

> -----Original Message-----
> From: Andrzej Pietrasiewicz <andrzej.p@collabora.com>
> Sent: Friday, April 24, 2020 12:57 AM
> To: linux-pm@vger.kernel.org
> Cc: Zhang, Rui <rui.zhang@intel.com>; Rafael J . Wysocki
> <rjw@rjwysocki.net>; Len Brown <lenb@kernel.org>; Jiri Pirko
> <jiri@mellanox.com>; Ido Schimmel <idosch@mellanox.com>; David S .
> Miller <davem@davemloft.net>; Peter Kaestle <peter@piie.net>; Darren
> Hart <dvhart@infradead.org>; Andy Shevchenko <andy@infradead.org>;
> Support Opensource <support.opensource@diasemi.com>; Daniel Lezcano
> <daniel.lezcano@linaro.org>; Amit Kucheria
> <amit.kucheria@verdurent.com>; Shawn Guo <shawnguo@kernel.org>;
> Sascha Hauer <s.hauer@pengutronix.de>; Pengutronix Kernel Team
> <kernel@pengutronix.de>; Fabio Estevam <festevam@gmail.com>; NXP
> Linux Team <linux-imx@nxp.com>; Heiko Stuebner <heiko@sntech.de>;
> Orson Zhai <orsonzhai@gmail.com>; Baolin Wang
> <baolin.wang7@gmail.com>; Chunyan Zhang <zhang.lyra@gmail.com>; linux-
> acpi@vger.kernel.org; netdev@vger.kernel.org; platform-driver-
> x86@vger.kernel.org; linux-arm-kernel@lists.infradead.org;
> kernel@collabora.com; Andrzej Pietrasiewicz <andrzej.p@collabora.com>;
> Barlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
> Subject: [PATCH v3 2/2] thermal: core: Stop polling DISABLED thermal devices
> Importance: High
> 
> Polling DISABLED devices is not desired, as all such "disabled" devices are
> meant to be handled by userspace. This patch introduces and uses
> should_stop_polling() to decide whether the device should be polled or not.
> 
Thanks for the fix, and IMO, this reveal some more problems.
Say, we need to define "DISABLED" thermal zone.
Can we read the temperature? Can we trust the trip point value?

IMO, a disabled thermal zone does not mean it is handled by userspace, because
that is what the userspace governor designed for.
Instead, if a thermal zone is disabled, in thermal_zone_device_update(), we should
basically skip all the other operations as well.

I'll try your patches and probably make an incremental patch.

Thanks,
rui

> Signed-off-by: Andrzej Pietrasiewicz <andrzej.p@collabora.com>
> ---
>  drivers/thermal/thermal_core.c | 16 ++++++++++++++--
>  1 file changed, 14 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/thermal/thermal_core.c
> b/drivers/thermal/thermal_core.c index a2a5034f76e7..03c4d8d23284 100644
> --- a/drivers/thermal/thermal_core.c
> +++ b/drivers/thermal/thermal_core.c
> @@ -305,13 +305,22 @@ static void thermal_zone_device_set_polling(struct
> thermal_zone_device *tz,
>  		cancel_delayed_work(&tz->poll_queue);
>  }
> 
> +static inline bool should_stop_polling(struct thermal_zone_device *tz)
> +{
> +	return thermal_zone_device_get_mode(tz) ==
> THERMAL_DEVICE_DISABLED; }
> +
>  static void monitor_thermal_zone(struct thermal_zone_device *tz)  {
> +	bool stop;
> +
> +	stop = should_stop_polling(tz);
> +
>  	mutex_lock(&tz->lock);
> 
> -	if (tz->passive)
> +	if (!stop && tz->passive)
>  		thermal_zone_device_set_polling(tz, tz->passive_delay);
> -	else if (tz->polling_delay)
> +	else if (!stop && tz->polling_delay)
>  		thermal_zone_device_set_polling(tz, tz->polling_delay);
>  	else
>  		thermal_zone_device_set_polling(tz, 0); @@ -503,6 +512,9
> @@ void thermal_zone_device_update(struct thermal_zone_device *tz,  {
>  	int count;
> 
> +	if (should_stop_polling(tz))
> +		return;
> +
>  	if (atomic_read(&in_suspend))
>  		return;
> 
> --
> 2.17.1


  reply index

Thread overview: 137+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-04-07 17:49 [RFC 0/8] Stop monitoring disabled devices Andrzej Pietrasiewicz
2020-04-07 17:49 ` [RFC 1/8] thermal: int3400_thermal: Statically initialize .get_mode()/.set_mode() ops Andrzej Pietrasiewicz
     [not found]   ` <CGME20200415091204eucas1p1983548c2db52d8d0c2a5367034ec80dd@eucas1p1.samsung.com>
2020-04-15  9:12     ` Bartlomiej Zolnierkiewicz
2020-04-07 17:49 ` [RFC 2/8] thermal: Properly handle mode values in .set_mode() Andrzej Pietrasiewicz
     [not found]   ` <CGME20200415100543eucas1p24e24293da39844ca8791db86af5365a7@eucas1p2.samsung.com>
2020-04-15 10:05     ` Bartlomiej Zolnierkiewicz
2020-04-07 17:49 ` [RFC 3/8] thermal: Store thermal mode in a dedicated enum Andrzej Pietrasiewicz
     [not found]   ` <CGME20200415100944eucas1p1dcfeb784e790ca2fc3417fd2797e3f5d@eucas1p1.samsung.com>
2020-04-15 10:09     ` Bartlomiej Zolnierkiewicz
2020-04-07 17:49 ` [RFC 4/8] thermal: core: Introduce THERMAL_DEVICE_INITIAL Andrzej Pietrasiewicz
2020-04-07 17:49 ` [RFC 5/8] thermal: core: Monitor thermal zone after mode change Andrzej Pietrasiewicz
2020-04-07 17:49 ` [RFC 6/8] thermal: Set initial state to THERMAL_DEVICE_INITIAL Andrzej Pietrasiewicz
2020-04-07 17:49 ` [RFC 7/8] thermal: of: Monitor thermal zone after enabling it Andrzej Pietrasiewicz
     [not found]   ` <CGME20200415101829eucas1p18e21324d3c39926fffc6c8b5dc52f206@eucas1p1.samsung.com>
2020-04-15 10:18     ` Bartlomiej Zolnierkiewicz
2020-04-07 17:49 ` [RFC 8/8] thermal: Stop polling DISABLED thermal devices Andrzej Pietrasiewicz
2020-04-09 10:29 ` [RFC 0/8] Stop monitoring disabled devices Daniel Lezcano
2020-04-09 11:10   ` Andrzej Pietrasiewicz
     [not found]     ` <CGME20200415104010eucas1p101278e53e34a2e56dfc7c82b533a9122@eucas1p1.samsung.com>
2020-04-15 10:40       ` Bartlomiej Zolnierkiewicz
2020-04-17 16:23         ` Andrzej Pietrasiewicz
2020-04-19 11:42           ` Bartlomiej Zolnierkiewicz
2020-04-17 21:11         ` Peter Kästle
2020-04-14 18:00   ` [RFC v2 0/9] " Andrzej Pietrasiewicz
2020-04-14 18:00     ` [RFC v2 1/9] thermal: int3400_thermal: Statically initialize .get_mode()/.set_mode() ops Andrzej Pietrasiewicz
2020-04-15  9:23       ` Daniel Lezcano
2020-04-14 18:00     ` [RFC v2 2/9] thermal: Eliminate an always-false condition Andrzej Pietrasiewicz
2020-04-14 18:00     ` [RFC v2 3/9] thermal: Properly handle mode values in .set_mode() Andrzej Pietrasiewicz
2020-04-14 22:14       ` Daniel Lezcano
2020-04-14 18:01     ` [RFC v2 4/9] thermal: core: Let thermal zone device's mode be stored in its struct Andrzej Pietrasiewicz
2020-04-14 22:30       ` Daniel Lezcano
2020-04-14 18:01     ` [RFC v2 5/9] thermal: Store mode in thermal_zone_device Andrzej Pietrasiewicz
2020-04-15 10:55       ` Daniel Lezcano
2020-04-17 16:20         ` [RFC v3 0/2] Stop monitoring disabled devices Andrzej Pietrasiewicz
2020-04-17 16:20           ` [RFC v3 1/2] thermal: core: Let thermal zone device's mode be stored in its struct Andrzej Pietrasiewicz
2020-04-17 20:44             ` Andy Shevchenko
2020-04-19 11:38             ` Bartlomiej Zolnierkiewicz
2020-04-19 13:10               ` Bartlomiej Zolnierkiewicz
2020-04-20 18:17                 ` [PATCH 0/2] Stop monitoring disabled devices Andrzej Pietrasiewicz
2020-04-20 18:17                   ` [PATCH 1/2] thermal: core: Let thermal zone device's mode be stored in its struct Andrzej Pietrasiewicz
2020-04-22  7:49                     ` kbuild test robot
2020-04-22 17:14                       ` Andrzej Pietrasiewicz
2020-04-22 17:03                     ` kbuild test robot
2020-04-22 17:15                       ` Andrzej Pietrasiewicz
2020-04-20 18:17                   ` [PATCH 2/2] thermal: core: Stop polling DISABLED thermal devices Andrzej Pietrasiewicz
2020-04-22 16:12                   ` [PATCH RESEND 1/2] thermal: core: Let thermal zone device's mode be stored in its struct Andrzej Pietrasiewicz
2020-04-23 14:39                     ` Bartlomiej Zolnierkiewicz
2020-04-23 16:57                       ` [PATCH v3 0/2] Stop monitoring disabled devices Andrzej Pietrasiewicz
2020-04-23 16:57                         ` [PATCH v3 1/2] thermal: core: Let thermal zone device's mode be stored in its struct Andrzej Pietrasiewicz
2020-05-04  7:00                           ` Bartlomiej Zolnierkiewicz
2020-04-23 16:57                         ` [PATCH v3 2/2] thermal: core: Stop polling DISABLED thermal devices Andrzej Pietrasiewicz
2020-04-24  9:03                           ` Zhang, Rui [this message]
2020-04-27 14:20                             ` Zhang, Rui
2020-04-27 18:34                               ` Andrzej Pietrasiewicz
2020-04-28 13:55                                 ` Zhang, Rui
2020-04-20 11:03               ` [RFC v3 1/2] thermal: core: Let thermal zone device's mode be stored in its struct Andrzej Pietrasiewicz
2020-04-20 18:19                 ` Andrzej Pietrasiewicz
2020-05-23 21:24             ` Daniel Lezcano
2020-05-25 19:35               ` Andrzej Pietrasiewicz
2020-05-25 22:08                 ` Daniel Lezcano
2020-05-26 16:56                   ` Andrzej Pietrasiewicz
2020-05-27 13:30               ` Bartlomiej Zolnierkiewicz
2020-04-17 16:20           ` [RFC v3 2/2] thermal: core: Stop polling DISABLED thermal devices Andrzej Pietrasiewicz
2020-04-19 13:50           ` [RFC v3 1/2] thermal: core: Let thermal zone device's mode be stored in its struct Peter Kästle
2020-04-14 18:01     ` [RFC v2 6/9] thermal: Remove get_mode() method Andrzej Pietrasiewicz
2020-04-14 18:01     ` [RFC v2 7/9] thermal: core: Monitor thermal zone after mode change Andrzej Pietrasiewicz
2020-04-14 18:01     ` [RFC v2 8/9] thermal: of: Monitor thermal zone after enabling it Andrzej Pietrasiewicz
2020-04-14 18:01     ` [RFC v2 9/9] thermal: core: Stop polling DISABLED thermal devices Andrzej Pietrasiewicz
2020-04-14 21:52     ` [RFC v2 0/9] Stop monitoring disabled devices Ezequiel Garcia
     [not found] <Message-ID: <4493c0e4-51aa-3907-810c-74949ff27ca4@samsung.com>
2020-05-28 19:20 ` [PATCH v4 00/11] " Andrzej Pietrasiewicz
2020-05-28 19:20   ` [PATCH v4 01/11] acpi: thermal: Fix error handling in the register function Andrzej Pietrasiewicz
2020-05-29 14:50     ` Guenter Roeck
2020-06-24  8:16     ` Bartlomiej Zolnierkiewicz
2020-05-28 19:20   ` [PATCH v4 02/11] thermal: Store thermal mode in a dedicated enum Andrzej Pietrasiewicz
2020-05-29 14:48     ` Guenter Roeck
2020-05-29 15:13       ` Andrzej Pietrasiewicz
2020-05-29 15:34         ` Guenter Roeck
2020-06-24  9:38     ` Bartlomiej Zolnierkiewicz
2020-05-28 19:20   ` [PATCH v4 03/11] thermal: Add current mode to thermal zone device Andrzej Pietrasiewicz
2020-05-29 14:51     ` Guenter Roeck
2020-06-24  9:39     ` Bartlomiej Zolnierkiewicz
2020-05-28 19:20   ` [PATCH v4 04/11] thermal: Store device mode in struct thermal_zone_device Andrzej Pietrasiewicz
2020-06-24  9:40     ` Bartlomiej Zolnierkiewicz
2020-05-28 19:20   ` [PATCH v4 05/11] thermal: remove get_mode() operation of drivers Andrzej Pietrasiewicz
2020-06-24  9:47     ` Bartlomiej Zolnierkiewicz
2020-05-28 19:20   ` [PATCH v4 06/11] thermal: Add mode helpers Andrzej Pietrasiewicz
2020-06-24  9:49     ` Bartlomiej Zolnierkiewicz
2020-05-28 19:20   ` [PATCH v4 07/11] thermal: Use mode helpers in drivers Andrzej Pietrasiewicz
2020-06-24  9:51     ` Bartlomiej Zolnierkiewicz
2020-06-26 16:08       ` Andrzej Pietrasiewicz
2020-05-28 19:20   ` [PATCH v4 08/11] thermal: Explicitly enable non-changing thermal zone devices Andrzej Pietrasiewicz
2020-06-24 10:00     ` Bartlomiej Zolnierkiewicz
2020-05-28 19:20   ` [PATCH v4 09/11] thermal: core: Stop polling DISABLED thermal devices Andrzej Pietrasiewicz
2020-06-24 10:02     ` Bartlomiej Zolnierkiewicz
2020-05-28 19:20   ` [PATCH v4 10/11] thermal: Simplify or eliminate unnecessary set_mode() methods Andrzej Pietrasiewicz
2020-06-24 10:03     ` Bartlomiej Zolnierkiewicz
2020-05-28 19:20   ` [PATCH v4 11/11] thermal: Rename set_mode() to change_mode() Andrzej Pietrasiewicz
2020-06-24 10:03     ` Bartlomiej Zolnierkiewicz
2020-06-01 11:36   ` [PATCH v4 02/11] thermal: Store thermal mode in a dedicated enum Peter Kästle
2020-06-01 11:36   ` [PATCH v4 04/11] thermal: Store device mode in struct thermal_zone_device Peter Kästle
2020-06-01 11:37   ` [PATCH v4 05/11] thermal: remove get_mode() operation of drivers Peter Kästle
2020-06-01 11:37   ` [PATCH v4 07/11] thermal: Use mode helpers in drivers Peter Kästle
2020-06-01 11:38   ` [PATCH v4 10/11] thermal: Simplify or eliminate unnecessary set_mode() methods Peter Kästle
2020-06-01 11:38   ` [PATCH v4 11/11] thermal: Rename set_mode() to change_mode() Peter Kästle
2020-06-23 14:37   ` [PATCH v4 00/11] Stop monitoring disabled devices Daniel Lezcano
2020-06-26 17:37     ` [PATCH v5 " Andrzej Pietrasiewicz
2020-06-26 17:37       ` [PATCH v5 01/11] acpi: thermal: Fix error handling in the register function Andrzej Pietrasiewicz
2020-06-29  7:19         ` Amit Kucheria
2020-06-26 17:37       ` [PATCH v5 02/11] thermal: Store thermal mode in a dedicated enum Andrzej Pietrasiewicz
2020-06-29  7:19         ` Amit Kucheria
2020-06-26 17:37       ` [PATCH v5 03/11] thermal: Add current mode to thermal zone device Andrzej Pietrasiewicz
2020-06-29  7:19         ` Amit Kucheria
2020-06-26 17:37       ` [PATCH v5 04/11] thermal: Store device mode in struct thermal_zone_device Andrzej Pietrasiewicz
2020-06-29  7:19         ` Amit Kucheria
2020-06-26 17:37       ` [PATCH v5 05/11] thermal: remove get_mode() operation of drivers Andrzej Pietrasiewicz
2020-06-29  7:20         ` Amit Kucheria
2020-06-26 17:37       ` [PATCH v5 06/11] thermal: Add mode helpers Andrzej Pietrasiewicz
2020-06-26 20:50         ` kernel test robot
2020-06-26 20:50         ` [RFC PATCH] thermal: thermal_zone_device_set_mode() can be static kernel test robot
2020-06-26 20:55         ` [PATCH v5 06/11] thermal: Add mode helpers kernel test robot
2020-06-29  7:04         ` Amit Kucheria
2020-06-29 11:16           ` [PATCH v6 00/11] Stop monitoring disabled devices Andrzej Pietrasiewicz
2020-06-29 11:16             ` [PATCH v6 01/11] acpi: thermal: Fix error handling in the register function Andrzej Pietrasiewicz
2020-06-29 11:16             ` [PATCH v6 02/11] thermal: Store thermal mode in a dedicated enum Andrzej Pietrasiewicz
2020-06-29 11:16             ` [PATCH v6 03/11] thermal: Add current mode to thermal zone device Andrzej Pietrasiewicz
2020-06-29 11:16             ` [PATCH v6 04/11] thermal: Store device mode in struct thermal_zone_device Andrzej Pietrasiewicz
2020-06-29 11:16             ` [PATCH v6 05/11] thermal: remove get_mode() operation of drivers Andrzej Pietrasiewicz
2020-06-29 11:16             ` [PATCH v6 06/11] thermal: Add mode helpers Andrzej Pietrasiewicz
2020-06-29 12:08               ` Daniel Lezcano
2020-06-29 11:16             ` [PATCH v6 07/11] thermal: Use mode helpers in drivers Andrzej Pietrasiewicz
2020-06-29 11:16             ` [PATCH v6 08/11] thermal: Explicitly enable non-changing thermal zone devices Andrzej Pietrasiewicz
2020-06-29 11:16             ` [PATCH v6 09/11] thermal: core: Stop polling DISABLED thermal devices Andrzej Pietrasiewicz
2020-06-29 11:16             ` [PATCH v6 10/11] thermal: Simplify or eliminate unnecessary set_mode() methods Andrzej Pietrasiewicz
2020-06-29 11:16             ` [PATCH v6 11/11] thermal: Rename set_mode() to change_mode() Andrzej Pietrasiewicz
2020-06-26 17:37       ` [PATCH v5 07/11] thermal: Use mode helpers in drivers Andrzej Pietrasiewicz
2020-06-26 17:37       ` [PATCH v5 08/11] thermal: Explicitly enable non-changing thermal zone devices Andrzej Pietrasiewicz
2020-06-26 17:37       ` [PATCH v5 09/11] thermal: core: Stop polling DISABLED thermal devices Andrzej Pietrasiewicz
2020-06-26 17:37       ` [PATCH v5 10/11] thermal: Simplify or eliminate unnecessary set_mode() methods Andrzej Pietrasiewicz
2020-06-26 17:37       ` [PATCH v5 11/11] thermal: Rename set_mode() to change_mode() Andrzej Pietrasiewicz
2020-06-01 10:02 ` [PATCH v4 00/11] Stop monitoring disabled devices Peter Kästle
2020-06-01 10:20   ` Andrzej Pietrasiewicz

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=744357E9AAD1214791ACBA4B0B90926377CF60E3@SHSMSX108.ccr.corp.intel.com \
    --to=rui.zhang@intel.com \
    --cc=amit.kucheria@verdurent.com \
    --cc=andrzej.p@collabora.com \
    --cc=andy@infradead.org \
    --cc=b.zolnierkie@samsung.com \
    --cc=baolin.wang7@gmail.com \
    --cc=daniel.lezcano@linaro.org \
    --cc=davem@davemloft.net \
    --cc=dvhart@infradead.org \
    --cc=festevam@gmail.com \
    --cc=heiko@sntech.de \
    --cc=idosch@mellanox.com \
    --cc=jiri@mellanox.com \
    --cc=kernel@collabora.com \
    --cc=kernel@pengutronix.de \
    --cc=lenb@kernel.org \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-imx@nxp.com \
    --cc=linux-pm@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=orsonzhai@gmail.com \
    --cc=peter@piie.net \
    --cc=platform-driver-x86@vger.kernel.org \
    --cc=rjw@rjwysocki.net \
    --cc=s.hauer@pengutronix.de \
    --cc=shawnguo@kernel.org \
    --cc=support.opensource@diasemi.com \
    --cc=zhang.lyra@gmail.com \
    /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

Linux-PM Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/linux-pm/0 linux-pm/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 linux-pm linux-pm/ https://lore.kernel.org/linux-pm \
		linux-pm@vger.kernel.org
	public-inbox-index linux-pm

Example config snippet for mirrors

Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.kernel.vger.linux-pm


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git