Re: [PATCH v3 2/2] ACPI: CPPC: Add ospm_nominal_perf support

Pierre Gondois <[email protected]> Thu, 28 May 2026 14:07:19 +0200
Newsgroups dev.linux.lists.acpica-devel,org.kernel.vger.linux-acpi,org.kernel.vger.linux-kernel,org.kernel.vger.linux-pm
Message-ID <[email protected]>
Hello Sumit,
>
> Hi Pierre,
>
> Thanks for the review and the complementary patch.
> Going point by point:
>
> 1. Rollback for a partially applied multiple CPU write in
>     store_ospm_nominal_freq(): Agreed, will add into v4.
>
> 2. cppc_get_ospm_nominal_perf() and the show/init/exit coherence
>     checks that rely on it: I'd skip these as the register is write-only
>     as per spec.
>
NIT:
IIUC having a write-only register doesn't mean we cannot read it.
Cf. cppc_get_desired_perf()

> 3. Initializing the register at startup and restoring at exit: In v3, we
>     dropped the unconditional cpu_init write so user values would
>     survive CPU hotplug. The spec also makes the explicit init
>     unnecessary: "If this register is not provided, then OSPM must
>     assume that the OSPM Nominal Performance value is equal to
>     the Nominal Performance value.". The unwritten default already
>     looks well defined.

The concern I had was for the scenario where:

- the driver is loaded

- the user sets an ospm_nominal_freq value

- the driver is unloaded

In such case, the ospm_nominal_freq value will still be set to a
non-default value. The modifications suggested previously would
allow to handle that case to come back to the default value.

FWIU, we have:

+------+     +---------+     +-----------+     +------+
| User | <-> | CPPC    | <-> | CPPC      | <-> | CPPC |
+------+     | driver  |     | reg       |     | HW   |
              +---------+     | interface |     | reg  |
                              +-----------+     +------+

So if we want to handle:

- the case described above

- the case you mentioned, i.e. hot-plugging CPUs

maybe the scratch values should be stored along the CPPC register
interface. This would allow to handle complex cases where CPUs
are hotplugged and the driver is loaded/unloaded ?

Note: the same kind of scenario should apply to the auto_sel register


> 4. pr_warn() in show_ospm_nominal_freq() on HW vs cache
>     mismatch: Skipping it since it relies on (2).
>
> So in v4, will pick up the rollback and leave the rest as is.
> Happy to discuss further if you think differently.