Bug 2118786

Summary: RFE: Add support to TuneD for using pm_qos_resume_latency_us on specified cpus.
Product: Red Hat Enterprise Linux 9 Reporter: Joe Mario <jmario>
Component: tunedAssignee: Jaroslav Škarvada <jskarvad>
Status: CLOSED ERRATA QA Contact: Robin Hack <rhack>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: unspecifiedCC: bwensley, cfontain, jeder, jmencak, jskarvad, msivak, sjanderk
Target Milestone: rcKeywords: FutureFeature, Patch, Triaged, Upstream
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: tuned-2.20.0-0.1.rc1.el9 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2023-05-09 08:26:31 UTC Type: Feature Request
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Joe Mario 2022-08-16 18:45:22 UTC
Description of request:

In TuneD today, a user can set a desired c-state system-wide via the "force_latency=cstate..." mechanism.  

There is an interest in having TuneD also support using the pm_qos_resume_latency_us interface to set c-state latency values on specific cpus.  This grew out of the "cpu power-performance" discussions of late.

With pm_qos_resume_latency_us, the c-states allowed for each CPU can be controlled with:
/sys/devices/system/cpu/cpu<c>/power/pm_qos_resume_latency_us

The value can be set to:
- "n/a": special value that disables c-states completely
- "0": allows all c-states
- "x": allows any c-state with a resume latency less than x

There are a couple of benefits of using pm_qos_resume_latency_us this way:

1. Required latency values can be set on individual CPUs.  

2) Hardware Cstate number independence:  
Because different servers support different numbers of c-states (often with different latency values in them), the use of pm_qos_resume_latency_us makes it easier for the user to simply request a desired latency value.  

This frees the user of having to worry about which c-state number a given latency maps to on any individual cpu.  


Additional info:
[1] See https://static.lwn.net/kerneldoc/admin-guide/pm/cpuidle.html#power-management-quality-of-service-for-cpus

Comment 4 Jaroslav Škarvada 2023-02-08 15:22:26 UTC
Upstream PR:
https://github.com/redhat-performance/tuned/pull/485

Comment 15 errata-xmlrpc 2023-05-09 08:26:31 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory (tuned bug fix and enhancement update), and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHBA-2023:2585