Public bug reported:

A ThinkPad T480s under windows has a power limit of 44W, both short and
long term, with a thermal maximum of about 93C or so. Under Linux, the
power limits are 44W and 15W (short) or so, and the thermal limit is
80C, causing a significant performance loss.

Looking at MSR and MCHBAR values, we can see that the values are
correctly at 44W in the MSR, but the MCHBAR is set to a lower value:

$ sudo rdmsr -a 0x610
42816000dd8160
42816000dd8160
42816000dd8160
42816000dd8160
42816000dd8160
42816000dd8160
42816000dd8160
42816000dd8160
$ sudo /home/jak/Downloads/iotools-1.5/iotools mmio_read64 0xfed159a0
0x0042816000dd8078


Setting the MCHBAR to the same value as the MSR register solves the problem. At 
some point intel-rapl seems to reduce overall frequency to 600 MHz, though.

The thermal limit is configured in MSR register 0x1a2; rdmsr -f 29:24 -d
0x1a2 returns 20. Setting those bits to 7 increases it, resulting in
performance comparative to Windows.

Most of the analysis is based on the analysis in

https://www.reddit.com/r/thinkpad/comments/870u0a/t480s_linux_throttling_bug/

This applies to all bionic kernels I have tested so far, including

Ubuntu 4.15.0-13.14-generic 4.15.10
--- 
ApportVersion: 2.20.9-0ubuntu4
Architecture: amd64
AudioDevicesInUse:
 USER        PID ACCESS COMMAND
 /dev/snd/pcmC2D0p:   jak        5881 F...m pulseaudio
 /dev/snd/controlC2:  jak        5881 F.... pulseaudio
 /dev/snd/controlC1:  jak        5881 F.... pulseaudio
 /dev/snd/controlC0:  jak        5881 F.... pulseaudio
CurrentDesktop: GNOME
DistroRelease: Ubuntu 18.04
InstallationDate: Installed on 2018-03-14 (28 days ago)
InstallationMedia: Ubuntu 18.04 LTS "Bionic Beaver" - Alpha amd64 (20180313)
MachineType: LENOVO 20L8S02D00
Package: linux (not installed)
ProcFB: 0 inteldrmfb
ProcKernelCmdLine: root=/dev/mapper/ubuntu--vg-root ro rootflags=subvol=@ quiet 
splash vt.handoff=1
ProcVersionSignature: Ubuntu 4.15.0-13.14-generic 4.15.10
RelatedPackageVersions:
 linux-restricted-modules-4.15.0-13-generic N/A
 linux-backports-modules-4.15.0-13-generic  N/A
 linux-firmware                             1.173
Tags:  bionic
Uname: Linux 4.15.0-13-generic x86_64
UpgradeStatus: No upgrade log present (probably fresh install)
UserGroups: adm cdrom dip kvm lpadmin lxd plugdev sambashare sudo
_MarkForUpload: True
dmi.bios.date: 01/22/2018
dmi.bios.vendor: LENOVO
dmi.bios.version: N22ET31W (1.08 )
dmi.board.asset.tag: Not Available
dmi.board.name: 20L8S02D00
dmi.board.vendor: LENOVO
dmi.board.version: Not Defined
dmi.chassis.asset.tag: No Asset Information
dmi.chassis.type: 10
dmi.chassis.vendor: LENOVO
dmi.chassis.version: None
dmi.modalias: 
dmi:bvnLENOVO:bvrN22ET31W(1.08):bd01/22/2018:svnLENOVO:pn20L8S02D00:pvrThinkPadT480s:rvnLENOVO:rn20L8S02D00:rvrNotDefined:cvnLENOVO:ct10:cvrNone:
dmi.product.family: ThinkPad T480s
dmi.product.name: 20L8S02D00
dmi.product.version: ThinkPad T480s
dmi.sys.vendor: LENOVO

** Affects: linux (Ubuntu)
     Importance: Undecided
         Status: Confirmed


** Tags: apport-collected bionic

** Tags added: apport-collected bionic

** Description changed:

  A ThinkPad T480s under windows has a power limit of 44W, both short and
  long term, with a thermal maximum of about 93C or so. Under Linux, the
  power limits are 44W and 15W (short) or so, and the thermal limit is
  80C, causing a significant performance loss.
  
  Looking at MSR and MCHBAR values, we can see that the values are
  correctly at 44W in the MSR, but the MCHBAR is set to a lower value:
  
  $ sudo rdmsr -a 0x610
  42816000dd8160
  42816000dd8160
  42816000dd8160
  42816000dd8160
  42816000dd8160
  42816000dd8160
  42816000dd8160
  42816000dd8160
  $ sudo /home/jak/Downloads/iotools-1.5/iotools mmio_read64 0xfed159a0
  0x0042816000dd8078
  
  
  Setting the MCHBAR to the same value as the MSR register solves the problem. 
At some point intel-rapl seems to reduce overall frequency to 600 MHz, though.
  
  The thermal limit is configured in MSR register 0x1a2; rdmsr -f 29:24 -d
  0x1a2 returns 20. Setting those bits to 7 increases it, resulting in
  performance comparative to Windows.
  
  Most of the analysis is based on the analysis in
  
  https://www.reddit.com/r/thinkpad/comments/870u0a/t480s_linux_throttling_bug/
  
  This applies to all bionic kernels I have tested so far, including
  
  Ubuntu 4.15.0-13.14-generic 4.15.10
+ --- 
+ ApportVersion: 2.20.9-0ubuntu4
+ Architecture: amd64
+ AudioDevicesInUse:
+  USER        PID ACCESS COMMAND
+  /dev/snd/pcmC2D0p:   jak        5881 F...m pulseaudio
+  /dev/snd/controlC2:  jak        5881 F.... pulseaudio
+  /dev/snd/controlC1:  jak        5881 F.... pulseaudio
+  /dev/snd/controlC0:  jak        5881 F.... pulseaudio
+ CurrentDesktop: GNOME
+ DistroRelease: Ubuntu 18.04
+ InstallationDate: Installed on 2018-03-14 (28 days ago)
+ InstallationMedia: Ubuntu 18.04 LTS "Bionic Beaver" - Alpha amd64 (20180313)
+ MachineType: LENOVO 20L8S02D00
+ Package: linux (not installed)
+ ProcFB: 0 inteldrmfb
+ ProcKernelCmdLine: root=/dev/mapper/ubuntu--vg-root ro rootflags=subvol=@ 
quiet splash vt.handoff=1
+ ProcVersionSignature: Ubuntu 4.15.0-13.14-generic 4.15.10
+ RelatedPackageVersions:
+  linux-restricted-modules-4.15.0-13-generic N/A
+  linux-backports-modules-4.15.0-13-generic  N/A
+  linux-firmware                             1.173
+ Tags:  bionic
+ Uname: Linux 4.15.0-13-generic x86_64
+ UpgradeStatus: No upgrade log present (probably fresh install)
+ UserGroups: adm cdrom dip kvm lpadmin lxd plugdev sambashare sudo
+ _MarkForUpload: True
+ dmi.bios.date: 01/22/2018
+ dmi.bios.vendor: LENOVO
+ dmi.bios.version: N22ET31W (1.08 )
+ dmi.board.asset.tag: Not Available
+ dmi.board.name: 20L8S02D00
+ dmi.board.vendor: LENOVO
+ dmi.board.version: Not Defined
+ dmi.chassis.asset.tag: No Asset Information
+ dmi.chassis.type: 10
+ dmi.chassis.vendor: LENOVO
+ dmi.chassis.version: None
+ dmi.modalias: 
dmi:bvnLENOVO:bvrN22ET31W(1.08):bd01/22/2018:svnLENOVO:pn20L8S02D00:pvrThinkPadT480s:rvnLENOVO:rn20L8S02D00:rvrNotDefined:cvnLENOVO:ct10:cvrNone:
+ dmi.product.family: ThinkPad T480s
+ dmi.product.name: 20L8S02D00
+ dmi.product.version: ThinkPad T480s
+ dmi.sys.vendor: LENOVO

-- 
You received this bug notification because you are a member of Kernel
Packages, which is subscribed to linux in Ubuntu.
https://bugs.launchpad.net/bugs/1763144

Title:
  Significantly lower power and thermal limits on ThinkPad T480s (and
  probably others) than on Windows

Status in linux package in Ubuntu:
  Confirmed

Bug description:
  A ThinkPad T480s under windows has a power limit of 44W, both short
  and long term, with a thermal maximum of about 93C or so. Under Linux,
  the power limits are 44W and 15W (short) or so, and the thermal limit
  is 80C, causing a significant performance loss.

  Looking at MSR and MCHBAR values, we can see that the values are
  correctly at 44W in the MSR, but the MCHBAR is set to a lower value:

  $ sudo rdmsr -a 0x610
  42816000dd8160
  42816000dd8160
  42816000dd8160
  42816000dd8160
  42816000dd8160
  42816000dd8160
  42816000dd8160
  42816000dd8160
  $ sudo /home/jak/Downloads/iotools-1.5/iotools mmio_read64 0xfed159a0
  0x0042816000dd8078

  
  Setting the MCHBAR to the same value as the MSR register solves the problem. 
At some point intel-rapl seems to reduce overall frequency to 600 MHz, though.

  The thermal limit is configured in MSR register 0x1a2; rdmsr -f 29:24
  -d 0x1a2 returns 20. Setting those bits to 7 increases it, resulting
  in performance comparative to Windows.

  Most of the analysis is based on the analysis in

  https://www.reddit.com/r/thinkpad/comments/870u0a/t480s_linux_throttling_bug/

  This applies to all bionic kernels I have tested so far, including

  Ubuntu 4.15.0-13.14-generic 4.15.10
  --- 
  ApportVersion: 2.20.9-0ubuntu4
  Architecture: amd64
  AudioDevicesInUse:
   USER        PID ACCESS COMMAND
   /dev/snd/pcmC2D0p:   jak        5881 F...m pulseaudio
   /dev/snd/controlC2:  jak        5881 F.... pulseaudio
   /dev/snd/controlC1:  jak        5881 F.... pulseaudio
   /dev/snd/controlC0:  jak        5881 F.... pulseaudio
  CurrentDesktop: GNOME
  DistroRelease: Ubuntu 18.04
  InstallationDate: Installed on 2018-03-14 (28 days ago)
  InstallationMedia: Ubuntu 18.04 LTS "Bionic Beaver" - Alpha amd64 (20180313)
  MachineType: LENOVO 20L8S02D00
  Package: linux (not installed)
  ProcFB: 0 inteldrmfb
  ProcKernelCmdLine: root=/dev/mapper/ubuntu--vg-root ro rootflags=subvol=@ 
quiet splash vt.handoff=1
  ProcVersionSignature: Ubuntu 4.15.0-13.14-generic 4.15.10
  RelatedPackageVersions:
   linux-restricted-modules-4.15.0-13-generic N/A
   linux-backports-modules-4.15.0-13-generic  N/A
   linux-firmware                             1.173
  Tags:  bionic
  Uname: Linux 4.15.0-13-generic x86_64
  UpgradeStatus: No upgrade log present (probably fresh install)
  UserGroups: adm cdrom dip kvm lpadmin lxd plugdev sambashare sudo
  _MarkForUpload: True
  dmi.bios.date: 01/22/2018
  dmi.bios.vendor: LENOVO
  dmi.bios.version: N22ET31W (1.08 )
  dmi.board.asset.tag: Not Available
  dmi.board.name: 20L8S02D00
  dmi.board.vendor: LENOVO
  dmi.board.version: Not Defined
  dmi.chassis.asset.tag: No Asset Information
  dmi.chassis.type: 10
  dmi.chassis.vendor: LENOVO
  dmi.chassis.version: None
  dmi.modalias: 
dmi:bvnLENOVO:bvrN22ET31W(1.08):bd01/22/2018:svnLENOVO:pn20L8S02D00:pvrThinkPadT480s:rvnLENOVO:rn20L8S02D00:rvrNotDefined:cvnLENOVO:ct10:cvrNone:
  dmi.product.family: ThinkPad T480s
  dmi.product.name: 20L8S02D00
  dmi.product.version: ThinkPad T480s
  dmi.sys.vendor: LENOVO

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

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

Reply via email to