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

RE: [PATCH v8 0/8] amd-cppc CPU Performance Scaling Driver


  • To: Jan Beulich <jbeulich@xxxxxxxx>
  • From: "Penny, Zheng" <penny.zheng@xxxxxxx>
  • Date: Wed, 3 Sep 2025 03:15:15 +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=gBxPuVYPBglpvWBWjpO0e8bUphfMwrIMC+BbUyvkfZY=; b=p0ZIT9N3Hg523/qV6XPLkJAoPwAdAX7aaIkVSngB6lnrKMbBbWHEt/e29mdFtgkjHXP8AJi0va9xiX2Mi/YCTUhk6RQB0hEeN/CjL2hr93mxNqKCbjItxEVSStev+SaxnewJ8YzguuP/wlfzpN+ZqTUQQ/AbzzVWCJMyThvKaBILAUvZptZVfs9TvrwzjHBUCS9yBvTwpyVP288SfLATQxucoNCwV0zIGW6czQfc1NRINv7vFhU0JcwfTMk6zJZZuejA+IOruelrMlIzJmCIbP3sdgn0bBIXOIRGxk8Nf7uRQeqN31VMZymI/g8ykqbtMwxEa+2Jy7qEoafoNJADpQ==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=oUz/zQ61G/w4l3uQ+JQYpccNAd4QAWxQhxwckxIPp5ygpYOkwYMHxGJoDdXzfMllAwlbZbhWdWrG+pNIPeYkYRVktLDZyCc0BVyR47ymUci3hGCm3YJGP25YHYnxThrODTFSiCCI+BooPPAuj4B2Z1T0OBLn11zPIjqcOd3H0bi/zFj6vqzq2gvGdIsV2HRSSWwwzuxnWsct+v/8cqqXZDdAlI1b8upA5ilpwnOLJhNclLMZmBk93JQUYhIPwfcrzfoHXZiEecTbaNA3qCx+Yt8qFQVaPQiVj0nqoi7cNnD454Sw7jwWgDlPhgUxDyBqFECb5/QcboW7YXy0Vm8Fgg==
  • 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, 03 Sep 2025 03:15:23 +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-09-03T03:14:47.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: AQHcGAMDd72a6pbrUkeHflfdpjpvurR3+VkAgAjYZ1A=
  • Thread-topic: [PATCH v8 0/8] amd-cppc CPU Performance Scaling Driver

[Public]

> -----Original Message-----
> From: Jan Beulich <jbeulich@xxxxxxxx>
> Sent: Thursday, August 28, 2025 8:10 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 v8 0/8] amd-cppc CPU Performance Scaling Driver
>
> On 28.08.2025 12:02, 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 (8):
> >   xen/cpufreq: introduce new sub-hypercall to propagate CPPC data
> >   xen/cpufreq: introduce "cpufreq=amd-cppc" xen cmdline and amd-cppc
> >     driver
> >   xen/cpufreq: implement amd-cppc driver for CPPC in passive mode
> >   xen/cpufreq: implement amd-cppc-epp driver for CPPC in active mode
> >   xen/cpufreq: get performance policy from governor set via xenpm
> >   tools/cpufreq: extract CPPC para from cpufreq para
> >   xen/cpufreq: bypass governor-related para for amd-cppc-epp
> >   xen/cpufreq: Adapt SET/GET_CPUFREQ_CPPC xen_sysctl_pm_op for amd-
> cppc
> >     driver
> >
> >  docs/misc/xen-command-line.pandoc         |  14 +-
> >  tools/include/xenctrl.h                   |   3 +-
> >  tools/libs/ctrl/xc_pm.c                   |  25 +-
> >  tools/misc/xenpm.c                        |  94 ++-
> >  xen/arch/x86/acpi/cpufreq/Makefile        |   1 +
> >  xen/arch/x86/acpi/cpufreq/amd-cppc.c      | 766 ++++++++++++++++++++++
> >  xen/arch/x86/acpi/cpufreq/cpufreq.c       |  69 +-
> >  xen/arch/x86/cpu/amd.c                    |   8 +-
> >  xen/arch/x86/include/asm/amd.h            |   2 +
> >  xen/arch/x86/include/asm/msr-index.h      |   6 +
> >  xen/arch/x86/platform_hypercall.c         |  19 +
> >  xen/arch/x86/x86_64/cpufreq.c             |  19 +
> >  xen/arch/x86/x86_64/platform_hypercall.c  |   3 +
> >  xen/drivers/acpi/pm-op.c                  |  68 +-
> >  xen/drivers/acpi/pmstat.c                 |   4 +
> >  xen/drivers/cpufreq/cpufreq.c             | 137 +++-
> >  xen/drivers/cpufreq/utility.c             |  15 +
> >  xen/include/acpi/cpufreq/cpufreq.h        |  40 +-
> >  xen/include/acpi/cpufreq/processor_perf.h |  14 +-
> >  xen/include/public/platform.h             |  26 +
> >  xen/include/public/sysctl.h               |   5 +-
> >  xen/include/xen/pmstat.h                  |   5 +
> >  xen/include/xlat.lst                      |   1 +
> >  23 files changed, 1283 insertions(+), 61 deletions(-)  create mode
> > 100644 xen/arch/x86/acpi/cpufreq/amd-cppc.c
>
> Oh, and - what is still missing is a CHANGELOG.md entry.

Thx, understood.

>
> Jan

 


Rackspace

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