[Xenial][SRU][PATCH 0/2] #LP1606147 Workaround for monitor bug slows down system

Phidias Chiang phidias.chiang at canonical.com
Tue Jul 26 08:33:15 UTC 2016


[Impact]

We've found a bug on some Apollo Lake system makes it runs very slow.
>From upstream it is caused by following reason:

"Monitored cached line may not wake up from mwait on certain Goldmont
based CPUs. This patch will avoid calling current_set_polling_and_test()
and thereby not set the TIF_ flag. The result is that we'll always send
IPIs for wakeups."

[Fix]

Upstream already provided a workaround[1] to fix this problem. This
patches haven't been merged in latest(v4.7) release but already in
linux-next.

To fix this issue in Xenial it also needs another commit introduces
macros use in the workaround:

commit 970442c599b22ccd644ebfe94d1d303bf6f87c05
Author: Dave Hansen <dave at sr71.net>
Date: Thu Jun 2 17:19:27 2016 -0700

    x86/cpu/intel: Introduce macros for Intel family numbers

This workaround checks CPU families and certain features, so no further
regressions is expected

[1]: https://lkml.org/lkml/2016/7/6/469

Dave Hansen (1):
  x86/cpu/intel: Introduce macros for Intel family numbers

Peter Zijlstra (1):
  UBUNTU: SAUCE: x86/cpu: Add workaround for MONITOR instruction erratum
    on Goldmont based CPUs

 arch/x86/include/asm/cpufeatures.h  |  1 +
 arch/x86/include/asm/intel-family.h | 68 +++++++++++++++++++++++++++++++++++++
 arch/x86/include/asm/mwait.h        |  2 +-
 arch/x86/kernel/cpu/intel.c         |  5 +++
 arch/x86/kernel/process.c           |  2 +-
 5 files changed, 76 insertions(+), 2 deletions(-)
 create mode 100644 arch/x86/include/asm/intel-family.h

-- 
2.7.3





More information about the kernel-team mailing list