TSC_DEADLINE incorrectly disabled inside virtual guests

Bug #1724912 reported by Dan Streetman on 2017-10-19
22
This bug affects 3 people
Affects Status Importance Assigned to Milestone
linux (Ubuntu)
Medium
Dan Streetman
Artful
Medium
Dan Streetman
Bionic
Medium
Dan Streetman

Bug Description

An upstream commit added Intel cpu model/microcode checks to disable TSC_DEADLINE due to cpu errata:

commit bd9240a18edfbfa72e957fc2ba831cf1f13ea073
Author: Peter Zijlstra <email address hidden>
Date: Wed May 31 17:52:03 2017 +0200

    x86/apic: Add TSC_DEADLINE quirk due to errata

That commit is included in the Ubuntu kernels starting at artful v4.13.

However, most hypervisors virtualize TSC deadline timer (and therefore it isn't affected by Intel CPU errata inside the guest), and even if any hypervisors directly exposed the hardware TSC deadline timer, the guests cannot update CPU microcode and therefore it's the hypervisor's job to disable/hide/virtualize the TSC deadline timer from the guest.

This upstream commit skips the microcode check to disable the TSC deadline timer if it detects it's running under a hypervisor:

commit cc6afe2240298049585e86b1ade85efc8a7f225d
Author: Paolo Bonzini <email address hidden>
Date: Tue Oct 10 12:12:57 2017 +0200

    x86/apic: Silence "FW_BUG TSC_DEADLINE disabled due to Errata" on hypervisors

Dan Streetman (ddstreet) on 2017-10-19
Changed in linux (Ubuntu):
status: New → Fix Released
Changed in linux (Ubuntu Artful):
assignee: nobody → Dan Streetman (ddstreet)
importance: Undecided → Medium
status: Fix Released → In Progress
Dan Streetman (ddstreet) wrote :

This requires two commits, 594a30fb12424717a41c62323d2a8bf167dbccad and cc6afe2240298049585e86b1ade85efc8a7f225d, which are already upstream and will be included in the 4.14 kernel; so this SRU is required only for artful, as b-series will have the needed patches already.

Changed in linux (Ubuntu Artful):
status: In Progress → Fix Committed

This bug is awaiting verification that the 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-artful' to 'verification-done-artful'. If the problem still exists, change the tag 'verification-needed-artful' to 'verification-failed-artful'.

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-artful
Dan Streetman (ddstreet) wrote :

Previous kernel version:

ubuntu@ip-172-31-9-93:~$ uname -a
Linux ip-172-31-9-93 4.13.0-16-generic #19-Ubuntu SMP Wed Oct 11 18:35:14 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
ubuntu@ip-172-31-9-93:~$ dmesg|grep TSC
[ 0.000000] tsc: Fast TSC calibration using PIT
[ 0.000000] [Firmware Bug]: TSC_DEADLINE disabled due to Errata; please update microcode to version: 0x2000014 (or later)

-proposed kernel version:

ubuntu@ip-172-31-9-93:~$ uname -a
Linux ip-172-31-9-93 4.13.0-17-generic #20-Ubuntu SMP Mon Nov 6 10:04:08 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
ubuntu@ip-172-31-9-93:~$ dmesg|grep TSC
[ 0.000000] tsc: Fast TSC calibration using PIT
[ 0.071013] TSC deadline timer enabled

tags: added: verification-done-artful
removed: verification-needed-artful
Launchpad Janitor (janitor) wrote :
Download full text (21.9 KiB)

This bug was fixed in the package linux - 4.13.0-17.20

---------------
linux (4.13.0-17.20) artful; urgency=low

  * linux: 4.13.0-17.20 -proposed tracker (LP: #1728927)

  [ Seth Forshee ]
  * thunderx2 ahci errata workaround needs additional delays (LP: #1724117)
    - SAUCE: ahci: thunderx2: stop engine fix update

  * usb 3-1: 2:1: cannot get freq at ep 0x1 (LP: #1708499)
    - ALSA: usb-audio: Add sample rate quirk for Plantronics C310/C520-M

  * Plantronics Blackwire C520-M - Cannot get freq at ep 0x1, 0x81
    (LP: #1709282)
    - ALSA: usb-audio: Add sample rate quirk for Plantronics C310/C520-M

  * TSC_DEADLINE incorrectly disabled inside virtual guests (LP: #1724912)
    - x86/apic: Silence "FW_BUG TSC_DEADLINE disabled due to Errata" on CPUs
      without the feature
    - x86/apic: Silence "FW_BUG TSC_DEADLINE disabled due to Errata" on
      hypervisors

  * x86/apic: Update TSC_DEADLINE quirk with additional SKX stepping
    (LP: #1724612)
    - x86/apic: Update TSC_DEADLINE quirk with additional SKX stepping

  * [Artful] Add support for Dell/Wyse 3040 audio codec (LP: #1723916)
    - SAUCE: ASoC: rt5670: Add support for Wyse 3040

  * [Artful] Some Dell Monitors Doesn't Work Well with Dell/Wyse 3040
    (LP: #1723915)
    - SAUCE: drm/i915: Workaround for DP DPMS D3 on Dell monitor

  * [Artful] Support headset mode for DELL WYSE (LP: #1723913)
    - SAUCE: ALSA: hda/realtek - Add support headset mode for DELL WYSE

  * Touchpad and TrackPoint Dose Not Work on Lenovo X1C6 and X280 (LP: #1723986)
    - SAUCE: Input: synaptics-rmi4 - RMI4 can also use SMBUS version 3
    - SAUCE: Input: synaptics - Lenovo X1 Carbon 5 should use SMBUS/RMI
    - SAUCE: Input: synaptics - add Intertouch support on X1 Carbon 6th and X280

  * Artful update to v4.13.8 stable release (LP: #1724669)
    - USB: dummy-hcd: Fix deadlock caused by disconnect detection
    - MIPS: math-emu: Remove pr_err() calls from fpu_emu()
    - MIPS: bpf: Fix uninitialised target compiler error
    - mei: always use domain runtime pm callbacks.
    - dmaengine: edma: Align the memcpy acnt array size with the transfer
    - dmaengine: ti-dma-crossbar: Fix possible race condition with dma_inuse
    - NFS: Fix uninitialized rpc_wait_queue
    - nfs/filelayout: fix oops when freeing filelayout segment
    - HID: usbhid: fix out-of-bounds bug
    - crypto: skcipher - Fix crash on zero-length input
    - crypto: shash - Fix zero-length shash ahash digest crash
    - KVM: MMU: always terminate page walks at level 1
    - KVM: nVMX: fix guest CR4 loading when emulating L2 to L1 exit
    - usb: renesas_usbhs: Fix DMAC sequence for receiving zero-length packet
    - pinctrl/amd: Fix build dependency on pinmux code
    - iommu/amd: Finish TLB flush in amd_iommu_unmap()
    - device property: Track owner device of device property
    - Revert "vmalloc: back off when the current task is killed"
    - fs/mpage.c: fix mpage_writepage() for pages with buffers
    - ALSA: usb-audio: Kill stray URB at exiting
    - ALSA: seq: Fix use-after-free at creating a port
    - ALSA: seq: Fix copy_from_user() call inside lock
    - ALSA: caiaq: Fix stray URB at probe error path
    - ALSA: li...

Changed in linux (Ubuntu Artful):
status: Fix Committed → Fix Released
Dan Streetman (ddstreet) on 2018-05-25
Changed in linux (Ubuntu):
status: In Progress → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Duplicates of this bug

Other bug subscribers