From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1760613AbcLPNg7 (ORCPT ); Fri, 16 Dec 2016 08:36:59 -0500 Received: from Galois.linutronix.de ([146.0.238.70]:49705 "EHLO Galois.linutronix.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753216AbcLPNg4 (ORCPT ); Fri, 16 Dec 2016 08:36:56 -0500 Date: Fri, 16 Dec 2016 14:33:39 +0100 (CET) From: Thomas Gleixner To: LKML cc: x86@kernel.org, Peter Zijlstra , Borislav Petkov , Bruce Schlobohm , Roland Scheidegger , Kevin Stanton , Allen Hung , stable@vger.kernel.org Subject: Re: [patch 2/2] x86/tsc: Force TSC_ADJUST register to value >= zero In-Reply-To: Message-ID: References: <20161213131115.764824574@linutronix.de> <20161213131211.397588033@linutronix.de> User-Agent: Alpine 2.20 (DEB 67 2015-01-07) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, 16 Dec 2016, Thomas Gleixner wrote: > On Tue, 13 Dec 2016, Thomas Gleixner wrote: > > Roland reported that his DELL T5810 sports a value add BIOS which > > completely wreckages the TSC. The squirmware [(TM) Ingo Molnar] boots with > > random negative TSC_ADJUST values, different on all CPUs. That renders the > > TSC useless because the sycnchronization check fails. > > While everyone assumed that this is the usual DELL squirmware problem, I > have to say it's not. > > Just got my hands on a Skylake based Lenovo S510 box and it shows the same > feature: > > TSC ADJUST: CPU0: -10123656703215 > CPU1: -10123656796701 > CPU2: -10123656797460 > CPU3: -10123656798366 > > Which causes the TSC to be out of sync on a stock upstream kernel and the > TSC deadline timer wreckage is happening on that machine as well. > > I'm pretty sure, that this well thought out feature to 'hide power on time' > from TSC has not been independently 'invented' by DELL and Lenovo BIOS > tinkerers. > > I rather have the impression that this is an advisory or feature kit from > some other entity. Whoever came up with this misfeature at Intel and/or > Microsoft (sorry, I could not come up with any other suspects) should be > promoted to run the 'Linux on feature-plagued systems' hot line. Just to add another data point here. On cold boot the TSC_ADJUST value on that LENOVO machine is: -24534293, which is about 9ms. So assumed that the SDM is correct in this point and the counter starts at 0 after power on, then 9ms later might be right in that magic blob which does the low level bringup of CPUs. That comes from the CPU vendor and runs _BEFORE_ the system vendor BIOS can create havoc. Dealing with timers on x86 feels like a Sisyphean task. Thanks, tglx