From: Christian Loehle <christian.loehle@arm.com>
To: Zhongqiu Han <quic_zhonhan@quicinc.com>,
rafael@kernel.org, lenb@kernel.org, pavel@kernel.org,
tony.luck@intel.com, reinette.chatre@intel.com,
Dave.Martin@arm.com, james.morse@arm.com, ulf.hansson@linaro.org,
amit.kucheria@linaro.org
Cc: linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v2 0/5] PM QoS: Add CPU affinity latency QoS support and resctrl integration
Date: Sat, 2 Aug 2025 15:38:54 +0100 [thread overview]
Message-ID: <f682e782-ffea-48b2-997d-ddbaf7ea8a8f@arm.com> (raw)
In-Reply-To: <819fb853-59f7-4296-8499-715c142487f5@quicinc.com>
On 7/28/25 11:40, Zhongqiu Han wrote:
> On 7/28/2025 6:09 PM, Christian Loehle wrote:
>> On 7/21/25 13:40, Zhongqiu Han wrote:
>>> Hi all,
>>>
>>> This patch series introduces support for CPU affinity-based latency
>>> constraints in the PM QoS framework. The motivation is to allow
>>> finer-grained power management by enabling latency QoS requests to target
>>> specific CPUs, rather than applying system-wide constraints.
>>>
>>> The current PM QoS framework supports global and per-device CPU latency
>>> constraints. However, in many real-world scenarios, such as IRQ affinity
>>> or CPU-bound kernel threads, only a subset of CPUs are
>>> performance-critical. Applying global constraints in such cases
>>> unnecessarily prevents other CPUs from entering deeper C-states, leading
>>> to increased power consumption.
>>>
>>> This series addresses that limitation by introducing a new interface that
>>> allows latency constraints to be applied to a CPU mask. This is
>>> particularly useful on heterogeneous platforms (e.g., big.LITTLE) and
>>> embedded systems where power efficiency is critical for example:
>>>
>>> driver A rt kthread B module C
>>> CPU IDs (mask): 0-3 2-5 6-7
>>> target latency(us): 20 30 100
>>> | | |
>>> v v v
>>> +---------------------------------+
>>> | PM QoS Framework |
>>> +---------------------------------+
>>> | | |
>>> v v v
>>> CPU IDs (mask): 0-3 2-3,4-5 6-7
>>> runtime latency(us): 20 20, 30 100
>>>
>>> The current implementation includes only cpu_affinity_latency_qos_add()
>>> and cpu_affinity_latency_qos_remove() interfaces. An update interface is
>>> planned for future submission, along with PM QoS optimizations in the UFS
>>> subsystem.
>>
>> So what's needed for the UFS use-case additionally?
>> Would adding that here be too much?
>>
>
> Hi Christian,
> Thanks for your review and discussion~
>
> Currently my plan is only to move forward with the current patch series,
> which includes only the below interfaces:
>
> cpu_affinity_latency_qos_add()
> cpu_affinity_latency_qos_remove()
> cpu_affinity_latency_qos_active()
>
>
> For most use-cases, seems these three interfaces already sufficient.
Probably, but IMO there's no real user of the new extended interface yet,
making review harder and lacking justification.
FWIW in 2014 Lina also pushed for something like $SUBJECT
https://lore.kernel.org/all/1407945689-18494-5-git-send-email-lina.iyer@linaro.org/
Lina made an interface to tie the PM QoS to the relevant irq, which I think
was a great idea. Maybe that series is interesting for you, too?
>
>
> The reason I mentioned UFS is to explain why the update
> interface cpu_affinity_latency_qos_update()
>
> is not included at this stage. The UFS use-case is planned to
> use the cpu_affinity_latency_qos_update() interface in the future, which
> is similar to the global CPU PM QoS interface
> cpu_latency_qos_update_request().
next prev parent reply other threads:[~2025-08-02 14:39 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-07-21 12:40 Zhongqiu Han
2025-07-21 12:41 ` [PATCH v2 1/5] PM: QoS: Add support for CPU affinity latency PM QoS Zhongqiu Han
2025-08-21 10:37 ` Rafael J. Wysocki
2025-08-22 10:31 ` Zhongqiu Han
2025-07-21 12:41 ` [PATCH v2 2/5] PM: QOS: Remove unnecessary KERN_ERR on WARN() calls Zhongqiu Han
2025-07-21 12:41 ` [PATCH v2 3/5] Documentation: PM: QoS: Add CPU affinity latency PM QoS Interface documentation Zhongqiu Han
2025-07-21 12:41 ` [PATCH v2 4/5] Documentation: PM: QoS: Fix return type and return value description Zhongqiu Han
2025-08-01 11:27 ` Christian Loehle
2025-08-04 11:58 ` Zhongqiu Han
2025-07-21 12:41 ` [PATCH v2 5/5] resctrl: Replace PM QoS logic with cpu_affinity_latency_qos_* helpers Zhongqiu Han
2025-07-28 10:09 ` [PATCH v2 0/5] PM QoS: Add CPU affinity latency QoS support and resctrl integration Christian Loehle
2025-07-28 10:40 ` Zhongqiu Han
2025-08-02 14:38 ` Christian Loehle [this message]
2025-08-04 13:47 ` Zhongqiu Han
2025-08-15 12:48 ` Zhongqiu Han
2025-10-23 11:03 ` Ulf Hansson
2025-10-24 8:40 ` Zhongqiu Han
2025-10-24 10:44 ` Ulf Hansson
2025-10-27 12:38 ` Zhongqiu Han
2025-10-23 13:09 ` Lukasz Luba
2025-10-24 8:25 ` Zhongqiu Han
2025-10-28 13:12 ` Lukasz Luba
2025-10-30 13:25 ` Zhongqiu Han
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=f682e782-ffea-48b2-997d-ddbaf7ea8a8f@arm.com \
--to=christian.loehle@arm.com \
--cc=Dave.Martin@arm.com \
--cc=amit.kucheria@linaro.org \
--cc=james.morse@arm.com \
--cc=lenb@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=pavel@kernel.org \
--cc=quic_zhonhan@quicinc.com \
--cc=rafael@kernel.org \
--cc=reinette.chatre@intel.com \
--cc=tony.luck@intel.com \
--cc=ulf.hansson@linaro.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
all inboxes | Powered by JetHome®