Confirmed that pcc-cpufreq *can* be used in preference to intel_pstate
even on a CPU that supports intel_pstate if the firmware tables are
setup to request such. One such server is an E5-2630 v3 HP DL360 G9
(shuckle).

On the default "dynamic" firmware setting you get driver=pcc-cpufreq +
governor=ondemand, with the "OS Control" setting you get
driver=intel_pstate + governor=powersave.

As above this would explain why the very poor performance is only seen
without "OS Control" set, and then, only on some hardware. Since the
firmware is in control of the CPU power states in pcc-cpufreq mode the
exact frequencies / the rate they are changed / etc are partly under
BIOS control. Secondarily it's using an entirely separate kernel path
for when and how to choose these frequencies.

Note that when pcc-cpufreq is in use the startup script
(xenial:/etc/init.d/ondemand, bionic:/lib/systemd/set-cpufreq) will use
ondemand and not powersave (contrary to what the bug report description
states). If a system using 'cpufreq' is somehow getting the powersave
governor set, this is a bug, but I haven't seen any case where that
would be true as of yet.

Also note that in Xenial, the ondemand script runs "sleep 60" before
setting the governor, apparently to let most desktops boot to the login
screen. So any method that tries to override this setting may fail on
Xenial if it runs before the 60 seconds is up (e.g. /etc/rc.local, an
init script, sysctl, etc)

I did find that we have 1 other method of setting the governor, which is
a charm ~canonical-bootstack/sysconfig which had an option added to
allow setting the governor to performance (though it doesn't default to
that). This charm installs the cpufrequtils package which also seems to
default to 'ondemand'. However if this charm was configured with
governor=powersave on such a cpufreq system, we would expect very poor
performance. Secondly when configured with governor=performance on
Xenial it runs before the 'ondemand' script finishes its 60 second wait,
so the change gets reverted. But it will work when first deployed if no
reboot is done. (Bug: https://bugs.launchpad.net/bootstack-
ops/+bug/1822774)


To my mind this leaves two remaining questions:
 - Are we ever getting into a state where we have scaling-driver=pcc-cpufreq or 
acpi-cpufreq, but governor=powersave. Such a case is likely a bug. I haven't 
found any such case as yet unless someone deployed the sysconfig charm with 
governor=powersave explicitly set (which I have not ruled out)

 - Is there some specific hardware where scaling-driver=pcc-cpufreq and
scaling-governor=ondemand performs poorly. I have yet to run a benchmark
on my example hardware to find out.

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to systemd in Ubuntu.
https://bugs.launchpad.net/bugs/1806012

Title:
  set-cpufreq: 'powersave' governor configuration sanity on ubuntu
  server

Status in systemd package in Ubuntu:
  In Progress
Status in systemd source package in Xenial:
  In Progress
Status in systemd source package in Bionic:
  In Progress
Status in systemd source package in Cosmic:
  In Progress
Status in systemd source package in Disco:
  In Progress

Bug description:
  Whilst debugging 'slow instance performance' on a Ubuntu Bionic based
  cloud, I observed that the default cpu governor configuration was set
  to 'powersave'; toggling this to 'performance' (while in not anyway a
  particularly green thing todo) resulted in the instance slowness
  disappearing and the cloud performance being as expected (based on a
  prior version of the deploy on Ubuntu Xenial).

  AFAICT Xenial does the same thing albeit in a slight different way,
  but we definitely did not see the same performance laggy-ness under a
  Xenial based cloud.

  Raising against systemd (as this package sets the governor to
  'powersave') - I feel that the switch to 'performance' although
  appropriate then obscures what might be a performance/behavioural
  difference in the underlying kernel when a machine is under load.

  ProblemType: Bug
  DistroRelease: Ubuntu 18.04
  Package: systemd 237-3ubuntu10.9
  ProcVersionSignature: Ubuntu 4.15.0-39.42-generic 4.15.18
  Uname: Linux 4.15.0-39-generic x86_64
  ApportVersion: 2.20.9-0ubuntu7.5
  Architecture: amd64
  Date: Fri Nov 30 10:05:46 2018
  Lsusb:
   Bus 002 Device 002: ID 8087:8002 Intel Corp. 
   Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
   Bus 001 Device 003: ID 413c:a001 Dell Computer Corp. Hub
   Bus 001 Device 002: ID 8087:800a Intel Corp. 
   Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
  MachineType: Dell Inc. PowerEdge R630
  ProcEnviron:
   TERM=xterm-256color
   PATH=(custom, no user)
   XDG_RUNTIME_DIR=<set>
   LANG=C.UTF-8
   SHELL=/bin/bash
  ProcKernelCmdLine: BOOT_IMAGE=/vmlinuz-4.15.0-39-generic 
root=UUID=a361a524-47eb-46c3-8a04-e5eaa65188c9 ro hugepages=103117 iommu=pt 
intel_iommu=on
  SourcePackage: systemd
  UpgradeStatus: No upgrade log present (probably fresh install)
  dmi.bios.date: 11/08/2016
  dmi.bios.vendor: Dell Inc.
  dmi.bios.version: 2.3.4
  dmi.board.name: 02C2CP
  dmi.board.vendor: Dell Inc.
  dmi.board.version: A03
  dmi.chassis.type: 23
  dmi.chassis.vendor: Dell Inc.
  dmi.modalias: 
dmi:bvnDellInc.:bvr2.3.4:bd11/08/2016:svnDellInc.:pnPowerEdgeR630:pvr:rvnDellInc.:rn02C2CP:rvrA03:cvnDellInc.:ct23:cvr:
  dmi.product.name: PowerEdge R630
  dmi.sys.vendor: Dell Inc.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/1806012/+subscriptions

-- 
Mailing list: https://launchpad.net/~touch-packages
Post to     : touch-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~touch-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to