[Cc: +x86 maintainers and ACPI list]
Dear Linux folks,
Am 28.01.25 um 11:49 schrieb Paul Menzel:
Thank you for your quick replies. Gautham, messages with HTML are
rejected by Linux kernel lists.
Am 28.01.25 um 04:51 schrieb Shenoy, Gautham Ranjal:
As Mario mentioned, you need to enable the CPPC option. Looking for
some of the Dell PowerEdge documentation, there is an option called
"Collaborative CPU Performance Control" (https://www.dell.com/support/manuals/en-in/poweredge-r730/r730_ompublication/system-profile-settings-details?guid=guid-2e9b46a1-71e3-4072-9d86-db648757f0e6&lang=en-us).
[cid:fe57df8f-3d99-4ea0-8f6e-b0daae49bb0e]
Can you please try enabling it ?
You quoted the Dell PowerEdge R730. I couldn’t find it in the *Dell
PowerEdge R7625 Installation and Service Manual* [1], and also it’s not
listed in the iDRAC9 Web site (attached with added `.txt` extension to
trick the Linux list).
The amd_pstate warning seems to be related to the perf counters warning
Linux prints earlier:
$ dmesg --level alert,crit,err,warn
[ 2.666393] Spectre V2 : WARNING: Unprivileged eBPF is enabled
with eIBRS on, data leaks possible via Spectre v2 BHB attacks!
[ 8.109446] Could not retrieve perf counters (-19)
[ 9.386551] scsi 0:0:4:0: set ignore_delay_remove for handle(0x0012)
[ 9.487804] amd_pstate: the _CPC object is not present in SBIOS
or ACPI disabled
[ 14.726193] wmi_bus wmi_bus-PNP0C14:00: [Firmware Bug]: WQBC
data block query control method not found
x86 maintainers, the original report with the Linux logs attached is in
the archive [3].
It looks like, there is something missing in the Dell firmware to enable
the feature.
The perf counters warning is from `amd_set_max_freq_ratio()` in
`arch/x86/kernel/acpi/cppc.c`:
```
static void amd_set_max_freq_ratio(void)
{
struct cppc_perf_caps perf_caps;
u64 numerator, nominal_perf;
u64 perf_ratio;
int rc;
rc = cppc_get_perf_caps(0, &perf_caps);
if (rc) {
pr_warn("Could not retrieve perf counters (%d)\n", rc);
return;
}
[…]
}
```
With
include/uapi/asm-generic/errno-base.h:#define ENODEV 19 /* No such
device */
this is returned by in `drivers/acpi/cppc_acpi.c`:
```
/**
* cppc_get_perf_caps - Get a CPU's performance capabilities.
* @cpunum: CPU from which to get capabilities info.
* @perf_caps: ptr to cppc_perf_caps. See cppc_acpi.h
*
* Return: 0 for success with perf_caps populated else -ERRNO.
*/
int cppc_get_perf_caps(int cpunum, struct cppc_perf_caps *perf_caps)
{
struct cpc_desc *cpc_desc = per_cpu(cpc_desc_ptr, cpunum);
[…]
if (!cpc_desc) {
pr_debug("No CPC descriptor for CPU:%d\n", cpunum);
return -ENODEV;
}
[…]
}
```
Just for your information.
Kind regards,
Paul
PS:
--
Thanks and Regards
Gautham.
Only if you care: Your signature delimiter misses a space at the end [2].
[1]: https://www.dell.com/support/manuals/de-de/poweredge-r7625/per7625_ism_pub/system-profile-settings?guid=guid-9f6b6652-4079-45e7-90f5-1c8feee08ec0&lang=en-us
[2]: https://en.wikipedia.org/wiki/Signature_block#Standard_delimiter
[3]:
https://lore.kernel.org/linux-pm/d09f52d8-e084-4875-9608-5b3db2554f3d@xxxxxxxxxxxxx/T/#t