linux-azure: add Icelake servers support in no-HWP mode to cpufreq/intel_pstate driver

Bug #1952234 reported by Bartlomiej Zolnierkiewicz
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
linux-azure (Ubuntu)
Fix Released
Undecided
Unassigned
Bionic
Invalid
Undecided
Unassigned
Focal
Fix Released
Undecided
Bartlomiej Zolnierkiewicz
Hirsute
Fix Released
Undecided
Bartlomiej Zolnierkiewicz
Impish
Fix Released
Undecided
Bartlomiej Zolnierkiewicz
linux-azure-4.15 (Ubuntu)
Invalid
Undecided
Unassigned
Bionic
Fix Released
Undecided
Bartlomiej Zolnierkiewicz
Focal
Invalid
Undecided
Unassigned
Hirsute
Invalid
Undecided
Unassigned
Impish
Invalid
Undecided
Unassigned

Bug Description

[SRU Justification]

[Impact]

Starting with the AH2020 Azure host build, Hyper-V is virtualizing some registers that provide information about the CPU frequency. The registers are read-only in a guest VM, so the guest can see the frequency, but cannot make any modifications.

This feature also requires that the VM Configuration Version be 9.2 or later, which means it needs to be a new VM type, such as the just introduced Dv5/Ev5 series, and the new M832v2 VMs.

Within the Linux VM, the presence of the feature is indicated by the “aperfmperf” flag in the “lscpu” flags output (or in the flags field in /proc/cpuinfo).

It turns out there is a Linux kernel limitation when running on the new Intel IceLake processors used for the Dv5/Ev5 series. Upstream commit fbdc21e9b038 was added to provide IceLake support in the 5.14 kernel.

Microsoft has asked to backport fbdc21e9b038 commit to all supported kernels.

[Test Plan]

Run Intel IceLake based VM and check the "aperfmperf" flag in the "lscpu" flags output.

Without the patch the intel_pstate directory is missing from /sys/devices/system/cpu/ and /sys/devices/system/cpu/cpufreq/ is empty.

[Where problems could occur]

* intel_pstate driver is always used on Intel IceLake based VMs without checking for presence of "aperfmperf" CPU flag.

* In earlier (5.4 and 4.15) linux-azure kernels when intel_pstate driver is used it is in "active" mode instead of "passive" one (as reported by "cat /sys/devices/system/cpu/intel_pstate/status", also "cat /sys/devices/system/cpu/cpufreq/policy0/scaling_driver" returns "intel_pstate" instead of "intel_cpufreq" which is the expected behavior when in "active" mode).

If a consistent behavior across all kernel versions is desired commit 33aa46f252c7 ("cpufreq: intel_pstate: Use passive mode by default without HWP") from the upstream should probably also be backported.

* /sys/devices/system/cpu/cpufreq/policy*/scaling_{min,max}_freq files can be modified and the values reported by kernel will no longer match the values used by hardware.

[Other Info]

None.

Tim Gardner (timg-tpi)
Changed in linux-azure (Ubuntu Focal):
status: New → Fix Committed
Changed in linux-azure (Ubuntu Hirsute):
status: New → Fix Committed
Changed in linux-azure (Ubuntu Impish):
status: New → Fix Committed
Changed in linux-azure (Ubuntu):
status: New → Fix Released
Changed in linux-azure (Ubuntu Focal):
assignee: nobody → Bartlomiej Zolnierkiewicz (bzolnier)
Changed in linux-azure (Ubuntu Hirsute):
assignee: nobody → Bartlomiej Zolnierkiewicz (bzolnier)
Changed in linux-azure (Ubuntu Impish):
assignee: nobody → Bartlomiej Zolnierkiewicz (bzolnier)
Changed in linux-azure-4.15 (Ubuntu Bionic):
status: New → Invalid
Changed in linux-azure-4.15 (Ubuntu Focal):
status: New → Invalid
Changed in linux-azure-4.15 (Ubuntu Hirsute):
status: New → Invalid
Changed in linux-azure-4.15 (Ubuntu Impish):
status: New → Invalid
Changed in linux-azure-4.15 (Ubuntu Bionic):
assignee: nobody → Bartlomiej Zolnierkiewicz (bzolnier)
status: Invalid → Fix Committed
Changed in linux-azure-4.15 (Ubuntu):
status: New → Invalid
Changed in linux-azure (Ubuntu Bionic):
status: New → Invalid
Revision history for this message
Ubuntu Kernel Bot (ubuntu-kernel-bot) wrote :

This bug is awaiting verification that the linux-azure/5.13.0-1009.10 kernel in -proposed solves the problem. Please test the kernel and update this bug with the results. If the problem is solved, change the tag 'verification-needed-impish' to 'verification-done-impish'. If the problem still exists, change the tag 'verification-needed-impish' to 'verification-failed-impish'.

If verification is not done by 5 working days from today, this fix will be dropped from the source code, and this bug will be closed.

See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Thank you!

tags: added: verification-needed-impish
Revision history for this message
Ubuntu Kernel Bot (ubuntu-kernel-bot) wrote :

This bug is awaiting verification that the linux-azure/5.4.0-1065.68 kernel in -proposed solves the problem. Please test the kernel and update this bug with the results. If the problem is solved, change the tag 'verification-needed-focal' to 'verification-done-focal'. If the problem still exists, change the tag 'verification-needed-focal' to 'verification-failed-focal'.

If verification is not done by 5 working days from today, this fix will be dropped from the source code, and this bug will be closed.

See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Thank you!

tags: added: verification-needed-focal
Revision history for this message
Ubuntu Kernel Bot (ubuntu-kernel-bot) wrote :

This bug is awaiting verification that the linux-azure/5.11.0-1023.24 kernel in -proposed solves the problem. Please test the kernel and update this bug with the results. If the problem is solved, change the tag 'verification-needed-hirsute' to 'verification-done-hirsute'. If the problem still exists, change the tag 'verification-needed-hirsute' to 'verification-failed-hirsute'.

If verification is not done by 5 working days from today, this fix will be dropped from the source code, and this bug will be closed.

See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Thank you!

tags: added: verification-needed-hirsute
Revision history for this message
Ubuntu Kernel Bot (ubuntu-kernel-bot) wrote :

This bug is awaiting verification that the linux-azure-4.15/4.15.0-1129.142 kernel in -proposed solves the problem. Please test the kernel and update this bug with the results. If the problem is solved, change the tag 'verification-needed-bionic' to 'verification-done-bionic'. If the problem still exists, change the tag 'verification-needed-bionic' to 'verification-failed-bionic'.

If verification is not done by 5 working days from today, this fix will be dropped from the source code, and this bug will be closed.

See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Thank you!

tags: added: verification-needed-bionic
tags: added: verification-done-bionic verification-done-focal verification-done-hirsute verification-done-impish
removed: verification-needed-bionic verification-needed-focal verification-needed-hirsute verification-needed-impish
Revision history for this message
Launchpad Janitor (janitor) wrote :
Download full text (36.0 KiB)

This bug was fixed in the package linux-azure - 5.11.0-1023.24

---------------
linux-azure (5.11.0-1023.24) hirsute; urgency=medium

  * hirsute/linux-azure: 5.11.0-1023.24 -proposed tracker (LP: #1952268)

  * Enable arm64 for Hyper-V guests (LP: #1949770)
    - Drivers: hv: vmbus: Move Hyper-V page allocator to arch neutral code
    - x86/hyper-v: Move hv_message_type to architecture neutral module
    - Drivers: hv: Redo Hyper-V synthetic MSR get/set functions
    - Drivers: hv: vmbus: Move hyperv_report_panic_msg to arch neutral code
    - Drivers: hv: vmbus: Handle auto EOI quirk inline
    - Drivers: hv: vmbus: Move handling of VMbus interrupts
    - clocksource/drivers/hyper-v: Handle vDSO differences inline
    - clocksource/drivers/hyper-v: Handle sched_clock differences inline
    - asm-generic/hyperv: change HV_CPU_POWER_MANAGEMENT to HV_CPU_MANAGEMENT
    - x86/hyperv: detect if Linux is the root partition
    - clocksource/hyperv: use MSR-based access if running as root
    - clocksource/drivers/hyper-v: Set clocksource rating based on Hyper-V feature
    - clocksource/drivers/hyper-v: Move handling of STIMER0 interrupts
    - drivers: hv: Fix whitespace errors
    - x86/Hyper-V: Support for free page reporting
    - x86/hyperv: Move hv_do_rep_hypercall to asm-generic
    - drivers: hv: Create a consistent pattern for checking Hyper-V hypercall
      status
    - arm64: smccc: Add support for SMCCCv1.2 extended input/output registers
    - Drivers: hv: Move Hyper-V extended capability check to arch neutral code
    - asm-generic/hyperv: Add missing #include of nmi.h
    - arm64: hyperv: Add Hyper-V hypercall and register access utilities
    - arm64: hyperv: Add panic handler
    - arm64: hyperv: Initialize hypervisor on boot
    - arm64: efi: Export screen_info
    - Drivers: hv: Enable Hyper-V code to be built on ARM64
    - [Packaging] linux-azure: Add basic packaging support for arm64
    - [Config] linux-azure: Extending existing annotations to arm64
    - [Config] linux-azure: Generate initial config for arm64
    - [Packaging] linux-azure: Ignore initial arm64 ABI
    - Drivers: hv: Make portions of Hyper-V init code be arch neutral
    - Drivers: hv: Add arch independent default functions for some Hyper-V
      handlers
    - Drivers: hv: Move Hyper-V misc functionality to arch-neutral code
    - drivers: hv: Decouple Hyper-V clock/timer code from VMbus drivers
    - PCI: Introduce domain_nr in pci_host_bridge
    - PCI: Support populating MSI domains of root buses via bridges
    - arm64: PCI: Restructure pcibios_root_bridge_prepare()
    - arm64: PCI: Support root bridge preparation for Hyper-V
    - PCI: hv: Generify PCI probing
    - PCI: hv: Set ->domain_nr of pci_host_bridge at probing time
    - PCI: hv: Turn on the host bridge probing on ARM64
    - PCI: hv: Set up MSI domain at bridge probing time
    - [Config] azure: COMMON_CLK_XLNX_CLKWZRD=m
    - PCI: hv: Support for create interrupt v3
    - SAUCE: PCI: hv: Make the code arch neutral by adding arch specific
      interfaces
    - SAUCE: arm64: PCI: hv: Add support for Hyper-V vPCI
    - [Packaging] Update CONFIG_PCI_HYPERV policy for arm64
    - PCI: hv: Dr...

Changed in linux-azure (Ubuntu Hirsute):
status: Fix Committed → Fix Released
Revision history for this message
Launchpad Janitor (janitor) wrote :
Download full text (10.8 KiB)

This bug was fixed in the package linux-azure-4.15 - 4.15.0-1129.142

---------------
linux-azure-4.15 (4.15.0-1129.142) bionic; urgency=medium

  * bionic/linux-azure-4.15: 4.15.0-1129.142 -proposed tracker (LP: #1953649)

  [ Ubuntu: 4.15.0-166.174 ]

  * bionic/linux: 4.15.0-166.174 -proposed tracker (LP: #1953667)
  * Ubuntu version macros overflow with high ABI numbers (LP: #1953522)
    - SAUCE: Revert "stable: clamp SUBLEVEL in 4.14"
  * test_bpf.sh test in net of ubuntu_kernel_selftests failed on B-4.15 and
    variants (LP: #1953287)
    - SAUCE: Revert "bpf: add also cbpf long jump test cases with heavy expansion"
  * test_bpf.sh test in net of ubuntu_kernel_selftests failed on B-4.15 and
    variants (LP: #1953287) // CVE-2018-25020
    - bpf: fix truncated jump targets on heavy expansions

linux-azure-4.15 (4.15.0-1128.141) bionic; urgency=medium

  * bionic/linux-azure-4.15: 4.15.0-1128.141 -proposed tracker (LP: #1952330)

  * linux-azure: add Icelake servers support in no-HWP mode to
    cpufreq/intel_pstate driver (LP: #1952234)
    - cpufreq: intel_pstate: Add Icelake servers support in no-HWP mode

  [ Ubuntu: 4.15.0-165.173 ]

  * bionic/linux: 4.15.0-165.173 -proposed tracker (LP: #1952780)
  * Support builtin revoked certificates (LP: #1932029)
    - certs: Add EFI_CERT_X509_GUID support for dbx entries
    - certs: Move load_system_certificate_list to a common function
    - integrity: Move import of MokListRT certs to a separate routine
    - integrity: Load certs from the EFI MOK config table
    - certs: Add ability to preload revocation certs
    - certs: add 'x509_revocation_list' to gitignore
    - SAUCE: Dump stack when X.509 certificates cannot be loaded
    - [Packaging] build canonical-revoked-certs.pem from branch/arch certs
    - [Packaging] Revoke 2012 UEFI signing certificate as built-in
    - [Config] Configure CONFIG_SYSTEM_REVOCATION_KEYS with revoked keys
  * Support importing mokx keys into revocation list from the mok table
    (LP: #1928679)
    - efi: Support for MOK variable config table
    - efi: mokvar-table: fix some issues in new code
    - efi: mokvar: add missing include of asm/early_ioremap.h
    - efi/mokvar: Reserve the table only if it is in boot services data
    - SAUCE: integrity: Load mokx certs from the EFI MOK config table
    - SAUCE: integrity: add informational messages when revoking certs
  * CVE-2021-4002
    - arm64: tlb: Provide forward declaration of tlb_flush() before including
      tlb.h
    - mm: mmu_notifier fix for tlb_end_vma
    - hugetlbfs: flush TLBs correctly after huge_pmd_unshare

  [ Ubuntu: 4.15.0-164.172 ]

  * bionic/linux: 4.15.0-164.172 -proposed tracker (LP: #1952348)
  * Packaging resync (LP: #1786013)
    - [Packaging] resync update-dkms-versions helper
    - debian/dkms-versions -- update from kernel-versions (main/2021.11.29)
  * Bionic update: upstream stable patchset 2021-11-23 (LP: #1951997)
    - btrfs: always wait on ordered extents at fsync time
    - ARM: dts: at91: sama5d2_som1_ek: disable ISC node by default
    - xtensa: xtfpga: use CONFIG_USE_OF instead of CONFIG_OF
    - xtensa: xtfpga: Try software restart before simulating CPU reset
   ...

Changed in linux-azure-4.15 (Ubuntu Bionic):
status: Fix Committed → Fix Released
Revision history for this message
Launchpad Janitor (janitor) wrote :
Download full text (19.7 KiB)

This bug was fixed in the package linux-azure - 5.4.0-1065.68

---------------
linux-azure (5.4.0-1065.68) focal; urgency=medium

  * focal/linux-azure: 5.4.0-1065.68 -proposed tracker (LP: #1952290)

  * Re-enable DEBUG_INFO_BTF where it was disabled (LP: #1945632)
    - [Config] azure: enable CONFIG_DEBUG_INFO_BTF

  * Support builtin revoked certificates (LP: #1932029)
    - [Config] azure: set CONFIG_SYSTEM_REVOCATION_KEYS

  * Bionic/linux-azure: Call trace on Ubuntu 18.04 VM with Standard NV24
    (LP: #1952621)
    - PCI/sysfs: Convert "config" to static attribute

  * linux-azure: add Icelake servers support in no-HWP mode to
    cpufreq/intel_pstate driver (LP: #1952234)
    - cpufreq: intel_pstate: Add Icelake servers support in no-HWP mode

  [ Ubuntu: 5.4.0-92.103 ]

  * focal/linux: 5.4.0-92.103 -proposed tracker (LP: #1952316)
  * Packaging resync (LP: #1786013)
    - [Packaging] resync update-dkms-versions helper
    - debian/dkms-versions -- update from kernel-versions (main/2021.11.29)
  * CVE-2021-4002
    - tlb: mmu_gather: add tlb_flush_*_range APIs
    - hugetlbfs: flush TLBs correctly after huge_pmd_unshare
  * Re-enable DEBUG_INFO_BTF where it was disabled (LP: #1945632)
    - [Config] Enable CONFIG_DEBUG_INFO_BTF on all arches
  * Focal linux-azure: Vm crash on Dv5/Ev5 (LP: #1950462)
    - KVM: VMX: eVMCS: make evmcs_sanitize_exec_ctrls() work again
    - jump_label: Fix usage in module __init
  * Support builtin revoked certificates (LP: #1932029)
    - Revert "UBUNTU: SAUCE: (lockdown) Make get_cert_list() not complain about
      cert lists that aren't present."
    - integrity: Move import of MokListRT certs to a separate routine
    - integrity: Load certs from the EFI MOK config table
    - certs: Add ability to preload revocation certs
    - integrity: Load mokx variables into the blacklist keyring
    - certs: add 'x509_revocation_list' to gitignore
    - SAUCE: Dump stack when X.509 certificates cannot be loaded
    - [Packaging] build canonical-revoked-certs.pem from branch/arch certs
    - [Packaging] Revoke 2012 UEFI signing certificate as built-in
    - [Config] Configure CONFIG_SYSTEM_REVOCATION_KEYS with revoked keys
  * Support importing mokx keys into revocation list from the mok table
    (LP: #1928679)
    - efi: Support for MOK variable config table
    - efi: mokvar-table: fix some issues in new code
    - efi: mokvar: add missing include of asm/early_ioremap.h
    - efi/mokvar: Reserve the table only if it is in boot services data
    - SAUCE: integrity: add informational messages when revoking certs
  * Support importing mokx keys into revocation list from the mok table
    (LP: #1928679) // CVE-2020-26541 when certificates are revoked via
    MokListXRT.
    - SAUCE: integrity: Load mokx certs from the EFI MOK config table
  * Focal update: v5.4.157 upstream stable release (LP: #1951883)
    - ARM: 9133/1: mm: proc-macros: ensure *_tlb_fns are 4B aligned
    - ARM: 9134/1: remove duplicate memcpy() definition
    - ARM: 9139/1: kprobes: fix arch_init_kprobes() prototype
    - ARM: 9141/1: only warn about XIP address when not compile testing
    - ipv6: use siphash in rt6_exception_hash()
    - i...

Changed in linux-azure (Ubuntu Focal):
status: Fix Committed → Fix Released
Revision history for this message
Launchpad Janitor (janitor) wrote :
Download full text (39.8 KiB)

This bug was fixed in the package linux-azure - 5.13.0-1009.10

---------------
linux-azure (5.13.0-1009.10) impish; urgency=medium

  * impish/linux-azure: 5.13.0-1009.10 -proposed tracker (LP: #1952257)

  * linux-azure: add Icelake servers support in no-HWP mode to
    cpufreq/intel_pstate driver (LP: #1952234)
    - cpufreq: intel_pstate: Add Icelake servers support in no-HWP mode

  [ Ubuntu: 5.13.0-23.23 ]

  * impish/linux: 5.13.0-23.23 -proposed tracker (LP: #1952263)
  * Packaging resync (LP: #1786013)
    - [Packaging] resync update-dkms-versions helper
    - debian/dkms-versions -- update from kernel-versions (main/2021.11.29)
  * CVE-2021-4002
    - hugetlbfs: flush TLBs correctly after huge_pmd_unshare
  * [SRU][I/OEM-5.13/OEM-5.14] Add MAC passthrough support for more Lenovo docks
    (LP: #1951767)
    - net: usb: r8152: Add MAC passthrough support for more Lenovo Docks
  * Fix non-working e1000e device after resume (LP: #1951861)
    - SAUCE: Revert "e1000e: Additional PHY power saving in S0ix"
    - SAUCE: Revert "e1000e: Add polling mechanism to indicate CSME DPG exit"
    - SAUCE: Revert "e1000e: Add handshake with the CSME to support S0ix"
  * CVE-2021-43267
    - tipc: fix size validations for the MSG_CRYPTO type
  * Impish update: upstream stable patchset 2021-11-22 (LP: #1951880)
    - ext4: check and update i_disksize properly
    - ext4: correct the error path of ext4_write_inline_data_end()
    - ASoC: Intel: sof_sdw: tag SoundWire BEs as non-atomic
    - HID: apple: Fix logical maximum and usage maximum of Magic Keyboard JIS
    - netfilter: ip6_tables: zero-initialize fragment offset
    - HID: wacom: Add new Intuos BT (CTL-4100WL/CTL-6100WL) device IDs
    - ASoC: SOF: loader: release_firmware() on load failure to avoid batching
    - netfilter: nf_nat_masquerade: make async masq_inet6_event handling generic
    - netfilter: nf_nat_masquerade: defer conntrack walk to work queue
    - mac80211: Drop frames from invalid MAC address in ad-hoc mode
    - m68k: Handle arrivals of multiple signals correctly
    - hwmon: (ltc2947) Properly handle errors when looking for the external clock
    - net: prevent user from passing illegal stab size
    - mac80211: check return value of rhashtable_init
    - vboxfs: fix broken legacy mount signature checking
    - net: sun: SUNVNET_COMMON should depend on INET
    - drm/amdgpu: fix gart.bo pin_count leak
    - scsi: ses: Fix unsigned comparison with less than zero
    - scsi: virtio_scsi: Fix spelling mistake "Unsupport" -> "Unsupported"
    - perf/core: fix userpage->time_enabled of inactive events
    - sched: Always inline is_percpu_thread()
    - hwmon: (pmbus/ibm-cffps) max_power_out swap changes
    - ALSA: usb-audio: Unify mixer resume and reset_resume procedure
    - KVM: arm64: nvhe: Fix missing FORCE for hyp-reloc.S build rule
    - pinctrl: qcom: sc7280: Add PM suspend callbacks
    - net: bgmac-platform: handle mac-address deferral
    - scsi: qla2xxx: Fix excessive messages during device logout
    - io_uring: kill fasync
    - upstream stable to v5.10.74, v5.14.13
    - ALSA: usb-audio: Add quirk for VF0770
    - ALSA: pcm: Workaround for a wrong offset in SYNC_PT...

Changed in linux-azure (Ubuntu Impish):
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.