From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1433231AbdDYVoX (ORCPT ); Tue, 25 Apr 2017 17:44:23 -0400 Received: from mail-sn1nam02on0058.outbound.protection.outlook.com ([104.47.36.58]:56112 "EHLO NAM02-SN1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1433215AbdDYVoP (ORCPT ); Tue, 25 Apr 2017 17:44:15 -0400 Authentication-Results: vger.kernel.org; dkim=none (message not signed) header.d=none;vger.kernel.org; dmarc=none action=none header.from=amd.com; From: Janakarajan Natarajan To: , CC: Thomas Gleixner , Ingo Molnar , "H . Peter Anvin" , Janakarajan Natarajan Subject: [PATCH] Prevent timer value 0 for MWAITX Date: Tue, 25 Apr 2017 16:44:03 -0500 Message-ID: <1493156643-29366-1-git-send-email-Janakarajan.Natarajan@amd.com> X-Mailer: git-send-email 2.7.4 MIME-Version: 1.0 Content-Type: text/plain X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 72ad608e-80cc-4109-c1bb-08d48c24368d X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(48565401081)(201703131423075)(201703031133081);SRVR:CY4PR1201MB0006; X-Microsoft-Exchange-Diagnostics: 1;CY4PR1201MB0006;3:v5h3ED21qh70Xktk/HkXCAYDXnV5Wm8is4O1Wh/YVsceYzIcmWhRmjPXSJ3bVc7PZ0P8j1X4DSvR5UKg6ZpPEyA/GibGDW1/ep+/HUFPnXRFYR3No2UjnHKK+BDN+/3KQE6Ac5/gM65X3LYCYxMCN3Km/l/IT7ydL+gLcdSFIPI3C/Rf3Ny+dKr+MEJqpMvn/vRGVge9Sl/pDZSZEVr7SjjUBqiKGrlmdrpSog0RPrggBcw3kNC62tkJQHluLkIlDMTZ2bs9Udd7qJXix31q7Mb2Kr3A5LryBCE3//w3B2EVRCApnnUKHyZzFMX3xl0RTOI8J8kBm3dO9ZZA1qCFGfROJ/UKJmyhY4ctaXnkdXk=;25:Y1EMFPiAY18yasuBZei1FVNjNclaKeuUNwuogaLReV2MiV7Ad/EF1Hgr08v1ialcCtrwv7w05rbYqGDHSqIvea431WBv1ciujC3SfetYSRYxOme1bh8qS5fuqLxraVlCTFrcHoGStbTG0/tSB6fCYt8Qh5zY36+/mjV6O8yBKYR03r/IN823JCi0zSGf3EQn2ela1dlO+ce7qzveiZolT+idJK7TXX4X69JDb9SoXM+3NFlBqD0Q3LwCQFdS0L7AO0b5eyykZgwkEZ5Wrwjxa7ZlLJIYXe06CQD5nQXe1NZpAbulPL9Ib3aTA6zSlnWYK2jJagcMHGdzLUMdE4H4WGRgNZ8WM57XxO8UjIiyJ0yg0kqAVcldozAfWFI0RKYij2+eT3IP+sYKC46pexMvUhjGgIvHgqOieQUXUJiISr5e3TIcPgXiul/z/hJS0F4+dc6xELG6M4UCV++/3L18Lg== X-Microsoft-Exchange-Diagnostics: 1;CY4PR1201MB0006;31:QIdtsOXLp8z3jh2Dj+mseJA1/CdGlKKoAjow47vDWKYUkASSANKLBpWE/qf7d7xPbjnEwdWKHRPWddndQbA2bqwRhSo/gTdg5IWLim4tOj4rE9ThRVFC4IgBisi1CeeJ0ZEmMMpa6F1HgUdeRDPLmY6JBsakyLvyU+RF1nb3Nyb700URdpVJkVYDn34XaX4Vyp1nP1i4NbGfWSqW4ahGsmyDmLI2oltl4c+5ENx9hPS0eGBShC1oBJUZKzm880nu;20:cX7GUAGqL0fAF1FLZGRc3Ht8gd07DPcQU1bLGZBqYrhvK2bK1g1XgkCwmrhlt7srmIkK48nHvRZWY+p66jgCRcBFf4CcxyMXHA+dnygDwVgArUF5YjebclMzbo1UJu3dd/RQyoEQf9QPwLIK/ZPUBy6AI0ge1VP1+JedP5U3AK08RrM5i8SgnnNUbAN3lhWXcVXIb+TOuqrI/Ab4IDz6g+GtaJfGJDvXf6nySsNSqnleLZg6/XhXm7jkGKE09Qtrt1fHb76yE5i2XzMrnu+Lr1A5+93N5etamkJ15vZnOulHgn7/3adAr877xdS0bmUbD0fMiBQpPp0vWrUVQ85qDxkTPhVGLS6aU/PUiTa//DDam6ONIScWSeCeECv6KewI92zuEwWmXRo5gcV2a+Rib7vPzAum0yn5gmXu1m0gv0FVajP6+iqV/zQmfZFCT5Cq0LdD4yPlsbfRWQwkDarUkmKdIDCyRNxT1E99ApDIxYAyBo9bf6bCmuprOOHLWQA+ X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(9452136761055)(767451399110); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040450)(601004)(2401047)(5005006)(8121501046)(3002001)(10201501046)(93006095)(93001095)(6055026)(6041248)(20161123555025)(20161123560025)(20161123564025)(201703131423075)(201702281528075)(201703061421075)(20161123562025)(6072148);SRVR:CY4PR1201MB0006;BCL:0;PCL:0;RULEID:;SRVR:CY4PR1201MB0006; X-Microsoft-Exchange-Diagnostics: 1;CY4PR1201MB0006;4:BhY+W3D956jMHfMZHYJXCppkSTBHS/tVsrbsnWKzA2/0gCvmdzKMSQESiOPYEbujf0XA4ACjdsORgtFJ8H4BAOBXmt3pLkha6uvgJC8ybqhJyvWRxjuuaUcZEz0zgqlo2CRmyWsVh3t/ZcY2EkwIz/Pjok61Q71/Sz7VOPkZBTWSh1q/P6++o86FjdMOmi7dwZRhJD+diRBC1rUM9BsTFHG0qJd4zHb8blFnWjHOHoZ2Vn0/PRlV9T+/xq+U8n0RH5Ng9sLDcYN4dHgIw56haJJuzB9bg3fEJ2IuYHqfCl/39ldpnElX0wFu74UrTJl8hyvh0Qs49jKLwUe71XVG7dvP2chH2ZtuZow3IqgWBSB86TFNHeXX/hEAmfjLpBYT0aemL+wij5GE7s4cGXVFW2YnfHWGoC9E1Ddu5yvNwUCEeT7y6mcIU6aj2JomC88y43EVjV8P0YHfqLVb6Cb3QKiOOk07degGlxkZB07qUHrBkBG6VIyIoK5HC4uxSHgwDwmZ/Orjh/fgm07gCHeavUdnByIxZi/4dbzLtMxv2qdM0hupU3+CAqRKbOyZP2ic8jqeZta6NnyPl0nhxCmYUOe3tps1dqT3v92KMoC5B9mlKZptuYtu7nxRwC0/DtnAD0oEm9dgkDgXTTdxekC8R0kHDGWwvEndEYzNmoYtBFv7kSEUAFZZh4ydooRhGiDilaHI+KN0ca//ritDgNDYcc9JGgAQNJUQJ95nCvcj9kbvrAVuY4YJ1KL38cYLeXEV1+UnIQOWuDLPC8AUG0AgLQXq0zkgBPPEXLmZ5nLrDTMqJkTiKa1lXAaA5N1Ao2sY X-Forefront-PRVS: 0288CD37D9 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(6009001)(39410400002)(39450400003)(39850400002)(39400400002)(39840400002)(39860400002)(209900001)(25786009)(53936002)(6486002)(86362001)(77096006)(966004)(305945005)(6666003)(54906002)(6506006)(99286003)(50466002)(4326008)(36756003)(6306002)(48376002)(5660300001)(6436002)(38730400002)(6512007)(2906002)(47776003)(53376002)(50226002)(50986999)(81166006)(189998001)(8676002)(6606295002);DIR:OUT;SFP:1101;SCL:1;SRVR:CY4PR1201MB0006;H:DM5PR1201MB0012.namprd12.prod.outlook.com;FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;CY4PR1201MB0006;23:WCLklzDCckNr9YQfZI9RFKsGkmMVRoTwC6fuem/?= =?us-ascii?Q?mDmAg54NPAXqJZlQhzw92tUUzDxvMq6ThopV91vVAKKlv+Af8qVnVxgkuDU/?= =?us-ascii?Q?20BmIwriwCAYKVKFu/+53YRyYRqxOb/qv0vCAbIx/m9L1c47/HvJ51/iyvqa?= =?us-ascii?Q?GIFm+hqRj0H9HdKU8s+Z6MMrXCe1AbDV209hrKC6xILcMONS4IJdfSLYKlCa?= =?us-ascii?Q?ZpeOqY5ECdXwl0cpInHt9gnOsUx9kgc3lSndVaxvezTKRmgqUEc8ujJW7BPA?= =?us-ascii?Q?IqEBt/TmFbtCJvl27NUOd9mozPC9GcwPZORYTI064nm53hYV0O2ipb6nVl62?= =?us-ascii?Q?p7+7exiLtX3SQ0hi43UUMYNQX1/2aHElguR3NzK1vSZsYBALpMwNTrWkEo2H?= =?us-ascii?Q?2SpWNkOhKMmxn36RsNGZPAGRuKOdazoTonLiR+L3QsOl+u9bVjS8DN6vNaSf?= =?us-ascii?Q?N6YqBZODkkP/YIfk2Fwi1SczSmHCBME7PsTV82QwgpmqoQsLUla1In+apJWm?= =?us-ascii?Q?V5Rhb91Qy95bTX1G7XqjVwASkd/gjBPRE5488K74AL4D1KMdy6ujuI1Ke0fk?= =?us-ascii?Q?SEPdCS1S9BVaVRXeXzgnhdFCT+A292vAZMAOQPIIWTyVAERsH99f22sqLDyg?= =?us-ascii?Q?+n0+2b7lyX63VvWNI4lOEOP4u3V9KSFRBkYBZfCR4i8RJl/LLirk4Q41v+Jn?= =?us-ascii?Q?AaBRFKss3Gcyt7QNZKxym177UAYu+LpP4boZsrADj6P/2lGzGo1kTl3+yL/D?= =?us-ascii?Q?HsQjsk/cdrxBV6S5mwMlDlIk+fT5x7e+JDQwXD/YJQeLMj6WmOFgyw0MCu5J?= =?us-ascii?Q?BB3ZysNHFq1uFGQ4PXszFjV5Az2AKxznSpthX5XWNapQ+kZooA7V9j30C5GN?= =?us-ascii?Q?wk3EcaCJcQvGOv1MG2KPu2UA89kkamMyVJbrd2YgTsg5M1CKJeDHdq5axwRi?= =?us-ascii?Q?F5Q0wu3twQTFbsqROH48VAacTcu2VdI2PRORz7I7Kww=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1;CY4PR1201MB0006;6:kjaDw6Ep0eNmW76mba6cIf1oKASneu/lJvcptkHkFSEIkRGumbiQut/ehWc1mix4IoU0loa3TkTmIOIv3UBA1FJ/qnywWJuUEZZyWa9+WxMW5H3o7wfceXrVo54sKmK1adVbmDsnCW7mHsBD32YA5BPrrEcID4F0Sp5mISiaE6oKXJbKS4huiJScqSoyEiKqI+T24mud/RIQNFACqMLEB7JGfHe8JLTcIovgCBaRr3Eym91RJZS3S1nPiwe8mae706jyKA9ZdTbEFh/huvwa1+kBncl+JKIq10DbhYmVrGL73L9gWSRiPLLHpWNMXrgK3+RwzBt5+Bsr0IpGXjdvvaumFmklcTHD2b/QTrji4ntiIKlLX2V746bJY90lquatliblZh4VxTXFqL6T5r0/1okzv1qISP+7Q6ZQkGlOwFV+3Jgfi2vIoWS3e5x2YYM0OEWuCo+egX5YGov+e0OuN+rG1T0ObJtH1A7+T4YvxJupTddVjmDpbcgQ8zmJFvBUMB3yOoDv50x5fqCtLaNcjqFJMj9d5/EkqfKBrH87tWc=;5:wQVMfi/XDUNVBMkKu0wpg5N38zhwmMsQQxAvzVpLqMp8UFa27LDHt9wf4zzCraLGhk0bnfrMp6g/hg8aXIgRoCzOaobMX4T/DWIEkiG2Zn/4MDUuPj+XjartDGnYt12gW9VU0bR8brxb7Bv8dEbnlw==;24:38GC7+M51fgIGkq3f6ibtp4LOOGaBtGnQyKLRpihn243o6MFdkSwsiRwY5aBM/0hRl8+WR0l9Nb2UqjSMg9P4Rcnd/qk+h+MrruRFg95hvc= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;CY4PR1201MB0006;7:RBguEPfN4h8ARgee4LBSSCeiy2xc/6HCZkf/R+viuDB01J6OEmJDqrUbPFyRkIqjGsJ5YgUthxU1p9KgboUu25vG1+G/c8bcYbtPXoy8Wn3sAm9ekN3Mco622y7kpR1Kwnr87DZzUnqBrJvt2Qw6M/7ZwIQrJ8WV3MUjkdRvoXJ4WiE200pWtEBK3sy7Ddq+qQgytesudxO978BhReCs2GSlUfONRaxXqRg4pwrpdHMpTOxjlCuVgTQsLfbdD8PUDZNuCplsG+++Lu40OhKZWz0VV0EoWSnL4AyUqc3nURvsjvPdbFa6DT1ZF5vF7Gi5uSmlaKAYYROdmPlHafH8kg==;20:jUCZkMw0LPSMsX7fGAIOeIQT5F5wxwLkFyDBEJuznJY/KOWPP0CGOpec6UwurzjDyoNfZc1LeHEabWS/o91PBXznzWNRDwp5utzw9Wgi0R+RMsiToE4FJo2g5lNOR7EYVpZumMDxamqdTKn/jx2hDTNc7I5qzFggQcWTOgKDjvnZzf9dQqcPKT4Kx3eaivy8y7N+OzdG6F8jhFmrEQwMuePIbwhl1vOtz9gdbDGbu9enssMVxpPQJeYEbguiCALD X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Apr 2017 21:44:12.7723 (UTC) X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR1201MB0006 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This patch prevents the value 0 from being used for the MWAITX timer. 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. Cc: # 4.4.x+ Signed-off-by: Janakarajan Natarajan --- arch/x86/lib/delay.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/arch/x86/lib/delay.c b/arch/x86/lib/delay.c index a8e91ae..29df077 100644 --- a/arch/x86/lib/delay.c +++ b/arch/x86/lib/delay.c @@ -93,6 +93,13 @@ static void delay_mwaitx(unsigned long __loops) { u64 start, end, delay, loops = __loops; + /* + * Timer value of 0 causes MWAITX to wait indefinitely, unless there + * is a store on the memory monitored by MONITORX. + */ + if (loops == 0) + return; + start = rdtsc_ordered(); for (;;) { -- 2.7.4