RE: [PATCH v3 4/5] Documentation: amd-pstate: add driver working mode introduction

From: Yuan, Perry
Date: Thu Nov 17 2022 - 04:34:21 EST


[AMD Official Use Only - General]



> -----Original Message-----
> From: Bagas Sanjaya <bagasdotme@xxxxxxxxx>
> Sent: Thursday, November 17, 2022 4:58 PM
> To: Yuan, Perry <Perry.Yuan@xxxxxxx>
> Cc: rafael.j.wysocki@xxxxxxxxx; Huang, Ray <Ray.Huang@xxxxxxx>;
> viresh.kumar@xxxxxxxxxx; Limonciello, Mario
> <Mario.Limonciello@xxxxxxx>; Fontenot, Nathan
> <Nathan.Fontenot@xxxxxxx>; Deucher, Alexander
> <Alexander.Deucher@xxxxxxx>; Sharma, Deepak <Deepak.Sharma@xxxxxxx>;
> Huang, Shimmer <Shimmer.Huang@xxxxxxx>; Meng, Li (Jassmine)
> <Li.Meng@xxxxxxx>; Du, Xiaojian <Xiaojian.Du@xxxxxxx>; Karny, Wyes
> <Wyes.Karny@xxxxxxx>; Shenoy, Gautham Ranjal <gautham.shenoy@xxxxxxx>;
> Narayan, Ananth <Ananth.Narayan@xxxxxxx>; linux-pm@xxxxxxxxxxxxxxx;
> linux- kernel@xxxxxxxxxxxxxxx
> Subject: Re: [PATCH v3 4/5] Documentation: amd-pstate: add driver
> working mode introduction
>
> On Thu, Nov 17, 2022 at 03:35:40PM +0800, Perry Yuan wrote:
> > Introduce the `amd_pstate` driver new working mode with
> > `amd_pstate=passive` added to kernel command line.
> > If there is no passive mode enabled by user, amd_pstate driver will
> > be disabled by default for now.
> >
> ><snipped>...
> > -.. _shared_mem:
> > -
> > -``shared_mem``
> > -Use a module param (shared_mem) to enable related processors
> manually
> >with -**amd_pstate.shared_mem=1**.
> > -Due to the performance issue on the processors with `Shared Memory
> >Support -<perf_cap_>`_, we disable it presently and will re-enable
> >this by default -once we address performance issue with this solution.
> > -
> > -To check whether the current processor is using `Full MSR Support
> ><perf_cap_>`_ -or `Shared Memory Support <perf_cap_>`_ : ::
> > -
> > - ray@hr-test1:~$ lscpu | grep cppc
> > - Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge
> mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext
> fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc
> cpuid extd_apicid aperfmperf rapl pni pclmulqdq monitor ssse3 fma cx16
> sse4_1
> sse4_2 x2apic movbe popcnt aes xsave avx f16c rdrand lahf_lm
> cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch
> osvw ibs skinit wdt tce topoext perfctr_core perfctr_nb bpext
> perfctr_llc mwaitx cpb cat_l3
> cdp_l3 hw_pstate ssbd mba ibrs ibpb stibp vmmcall fsgsbase bmi1 avx2
> smep
> bmi2 erms invpcid cqm rdt_a rdseed adx smap clflushopt clwb sha_ni
> xsaveopt xsavec xgetbv1 xsaves cqm_llc cqm_occup_llc cqm_mbm_total
> cqm_mbm_local clzero irperf xsaveerptr rdpru wbnoinvd cppc arat npt
> lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists
> pausefilter pfthreshold avic v_vmsave_vmload vgif v_spec_ctrl umip pku
> ospke vaes vpclmulqdq rdpid overflow_recov succor smca fsrm
> > -
> > -If the CPU flags have ``cppc``, then this processor supports `Full
> >MSR Support -<perf_cap_>`_. Otherwise, it supports `Shared Memory
> Support <perf_cap_>`_.
> > +Passive Mode
> > +------------
> > +
> > +``amd_pstate=passive``
> > +
> > +It will be enabled if the ``amd_pstate=passive`` is passed to the
> > +kernel in
> the command line.
> > +In this mode, ``amd_pstate`` driver software specifies a desired
> > +QoS target in the CPPC performance scale as a relative number. This
> > +can be expressed as percentage of nominal performance
> > +(infrastructure max). Below the nominal sustained performance
> > +level, desired performance expresses the average performance level
> > +of the processor subject to the Performance Reduction Tolerance
> > +register. Above the nominal performance level, processor must
> > +provide at least nominal
> performance requested and go higher if current operating conditions allow.
> >
> >
> > ``cpupower`` tool support for ``amd-pstate``
> >
>
> Why do you replace shared_mem subsection with passive mode section? It
> isn't be mentioned in the patch description.
shared_mem is not needed any more, if no cppc flag detected for MSR support, pstate driver will use shared memory interface(cppc acpi) to set/get perf values to the low-level firmware.
There are two type CPPC only in the amd cppc implementation.
Removing shared_mem parameter will make it simple to load amd pstate driver now.

Perry.

>
> --
> An old man doll... just what I always wanted! - Clara