[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [PATCH v5 00/18] amd-cppc CPU Performance Scaling Driver


  • To: Jan Beulich <jbeulich@xxxxxxxx>
  • From: "Penny, Zheng" <penny.zheng@xxxxxxx>
  • Date: Wed, 18 Jun 2025 06:14:50 +0000
  • Accept-language: en-US
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=2nWrf/BkyrVp/Xubv+mTIZwVfT3na+aymVVlKwCzzgg=; b=nQ/Ihezg93PW19Kv46pqejUqIS7TjssAy3wezunRXIgnq1AVW7jXfZPHoZLjWY9QTMp/BShnB6yWypWRpCPnVnrIJiKwhcYwZp/ve7vuRB6uGsWMXy4yAQC5LzrpNMggzov6Sozj5Yv0HRhRuVhVwl24xYFJqIxDVHehzb0R+oChHLGpNU+nAGeTzMJ4VCMtGKXGm5h62zfVm9DZJdOwNbelhagdJiqfLFnECVTkwVW422ixuZQru0vpFLZozPdq014itL28b3+UwJlp/tFnLdGcoeOVWUzIvIhkSwvmV6GdEGN6Wfkysiu8ZDu9lPTZt0mHA2sf5ycSOArCjc97EQ==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=rSbjTn5g9qD/y7MMFoNLEQ9lebyxJUh+A7joHv/yrEfPlJZWMBWvpvqaYUOo+posQYCuuxs2vMHKUqN3ShO0LXjqtfv0GkpEYXtDU1UCbQuzeQKcYW5+QuD0G35lD8KhE5w5dB32oXZRBqzM4k5JEaWaCppC1NtTSmoCiqZZ0CPxGbu95meKxIRKBDTdgVtcQZArC7mnVSkWvlryJUmYuWbiSo5Xe891eD+9exKFtKV8vT7x8ITSO4h/xXAOIeEeUW3CYEpMuKjiKu4uDXzqVnBWkT6J16PffQYMisVCrgLE/PCDtH3p5Ys8KT7w/nj/smJsL//7dF0BJk3orsSg8g==
  • Authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=amd.com;
  • Cc: "Huang, Ray" <Ray.Huang@xxxxxxx>, Andrew Cooper <andrew.cooper3@xxxxxxxxxx>, Roger Pau Monné <roger.pau@xxxxxxxxxx>, Anthony PERARD <anthony.perard@xxxxxxxxxx>, "Orzel, Michal" <Michal.Orzel@xxxxxxx>, Julien Grall <julien@xxxxxxx>, Stefano Stabellini <sstabellini@xxxxxxxxxx>, Juergen Gross <jgross@xxxxxxxx>, "xen-devel@xxxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxxx>
  • Delivery-date: Wed, 18 Jun 2025 06:15:17 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
  • Msip_labels: MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Enabled=True;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SetDate=2025-06-18T06:14:33.0000000Z;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Name=Open Source;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_ContentBits=3;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Method=Privileged
  • Thread-index: AQHbzuQ5QS9t68DsIkSY3rIqCe+mtLQHSw6AgAEwUfA=
  • Thread-topic: [PATCH v5 00/18] amd-cppc CPU Performance Scaling Driver

[Public]

> -----Original Message-----
> From: Jan Beulich <jbeulich@xxxxxxxx>
> Sent: Tuesday, June 17, 2025 6:42 PM
> To: Penny, Zheng <penny.zheng@xxxxxxx>
> Cc: Huang, Ray <Ray.Huang@xxxxxxx>; Andrew Cooper
> <andrew.cooper3@xxxxxxxxxx>; Roger Pau Monné <roger.pau@xxxxxxxxxx>;
> Anthony PERARD <anthony.perard@xxxxxxxxxx>; Orzel, Michal
> <Michal.Orzel@xxxxxxx>; Julien Grall <julien@xxxxxxx>; Stefano Stabellini
> <sstabellini@xxxxxxxxxx>; Juergen Gross <jgross@xxxxxxxx>; xen-
> devel@xxxxxxxxxxxxxxxxxxxx
> Subject: Re: [PATCH v5 00/18] amd-cppc CPU Performance Scaling Driver
>
> On 27.05.2025 10:48, Penny Zheng wrote:
> > amd-cppc is the AMD CPU performance scaling driver that introduces a
> > new CPU frequency control mechanism on modern AMD APU and CPU series
> > in Xen. The new mechanism is based on Collaborative Processor
> > Performance Control (CPPC) which provides finer grain frequency
> > management than legacy ACPI hardware P-States. Current AMD CPU/APU
> > platforms are using the ACPI P-states driver to manage CPU frequency
> > and clocks with switching only in 3 P-states. CPPC replaces the ACPI
> > P-states controls and allows a flexible, low-latency interface for Xen
> > to directly communicate the performance hints to hardware.
> >
> > amd_cppc driver has 2 operation modes: autonomous (active) mode, and
> > non-autonomous (passive) mode. We register different CPUFreq driver
> > for different modes, "amd-cppc" for passive mode and "amd-cppc-epp"
> > for active mode.
> >
> > The passive mode leverages common governors such as *ondemand*,
> > *performance*, etc, to manage the performance tuning. While the active
> > mode uses epp to provides a hint to the hardware if software wants to
> > bias toward performance (0x0) or energy efficiency (0xff). CPPC power
> > algorithm in hardware will automatically calculate the runtime
> > workload and adjust the realtime cpu cores frequency according to the
> > power supply and thermal, core voltage and some other hardware conditions.
> >
> > amd-cppc is enabled on passive mode with a top-level
> > `cpufreq=amd-cppc` option, while users add extra `active` flag to select 
> > active
> mode.
> >
> > With `cpufreq=amd-cppc,active`, we did a 60s sampling test to see the
> > CPU frequency change, through tweaking the energy_perf preference from
> > `xenpm set-cpufreq-cppc powersave` to `xenpm set-cpufreq-cppc performance`.
> > The outputs are as follows:
> > ```
> > Setting CPU in powersave mode
> > Sampling and Outputs:
> >   Avg freq      580000 KHz
> >   Avg freq      580000 KHz
> >   Avg freq      580000 KHz
> > Setting CPU in performance mode
> > Sampling and Outputs:
> >   Avg freq      4640000 KHz
> >   Avg freq      4220000 KHz
> >   Avg freq      4640000 KHz
> >
> > Penny Zheng (18):
> >   xen/cpufreq: guard perf.states[] access with XEN_PX_INIT
> >   xen/cpufreq: move "init" flag into common structure
> >   xen/cpufreq: extract _PSD info from "struct xen_processor_performance"
> >   xen/cpufreq: introduce new sub-hypercall to propagate CPPC data
> >   xen/cpufreq: refactor cmdline "cpufreq=xxx"
> >   xen/cpufreq: introduce "cpufreq=amd-cppc" xen cmdline
> >   xen/cpufreq: disable px statistic info in amd-cppc mode
> >   xen/cpu: Expand core frequency calculation for AMD Family 1Ah CPUs
> >   xen/amd: introduce amd_process_freq() to get processor frequency
> >   xen/cpufreq: introduce a new amd cppc driver for cpufreq scaling
> >   xen/cpufreq: implement EPP support for the amd-cppc driver in active
> >     mode
> >   xen/cpufreq: get performance policy from governor set via xenpm
> >   xen/cpufreq: normalize hwp driver check with hwp_active()
> >   xen/cpufreq: introduce GET_CPUFREQ_CPPC sub-cmd
> >   xen/cpufreq: bypass governor-related para for amd-cppc-epp
> >   tools: drop "has_num" condition check for cppc mode
> >   tools: optimize cpufreq average freq print
> >   xen/cpufreq: Adapt SET/GET_CPUFREQ_CPPC xen_sysctl_pm_op for amd-
> cppc
> >     driver
>
> As indicated in individual replies, three of the patches may be possible to 
> go in
> before you re-post. Subject to what I said in the replies (patches 02, 08, 
> and 13).
> Please clarify what (if anything) to do.
>

For patch 02, the only concern is that it is based on 01, and 01 shall be 
removed and I'll add extra check for CPPC to ensure ->perf.state_count must be 
zero in get_cpufreq_para()
For patch 08, I already have agreed in individual reply
For patch 13, ok for me too

> Jan

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.