]> git.baikalelectronics.ru Git - kernel.git/commit
Prevent timer value 0 for MWAITX
authorJanakarajan Natarajan <Janakarajan.Natarajan@amd.com>
Tue, 25 Apr 2017 21:44:03 +0000 (16:44 -0500)
committerThomas Gleixner <tglx@linutronix.de>
Sun, 30 Apr 2017 11:35:11 +0000 (13:35 +0200)
commit6e036e9bf56781d509a91d0e6f301769952b039a
treeaf58405562e5f6660127705861ab8ea5855d4827
parent644528abcc85b4ce0b40f5cff1947f3c53030ce7
Prevent timer value 0 for MWAITX

Newer hardware has uncovered a bug in the software implementation of
using MWAITX for the delay function. A value of 0 for the timer is meant
to indicate that a timeout will not be used to exit MWAITX. On newer
hardware this can result in MWAITX never returning, resulting in NMI
soft lockup messages being printed. On older hardware, some of the other
conditions under which MWAITX can exit masked this issue. The AMD APM
does not currently document this and will be updated.

Please refer to http://marc.info/?l=kvm&m=148950623231140 for
information regarding NMI soft lockup messages on an AMD Ryzen 1800X.
This has been root-caused as a 0 passed to MWAITX causing it to wait
indefinitely.

This change has the added benefit of avoiding the unnecessary setup of
MONITORX/MWAITX when the delay value is zero.

Signed-off-by: Janakarajan Natarajan <Janakarajan.Natarajan@amd.com>
Link: http://lkml.kernel.org/r/1493156643-29366-1-git-send-email-Janakarajan.Natarajan@amd.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
arch/x86/lib/delay.c