Received: by 2002:a25:c593:0:0:0:0:0 with SMTP id v141csp783277ybe; Fri, 13 Sep 2019 06:19:46 -0700 (PDT) X-Google-Smtp-Source: APXvYqy8oadao4bfHhVcpjVh22XFLPaT4nksNt/FRLOX5sgzaacQ/85BSltXr1/bORx/od6Uqw4V X-Received: by 2002:a50:ab49:: with SMTP id t9mr44125646edc.301.1568380786823; Fri, 13 Sep 2019 06:19:46 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1568380786; cv=none; d=google.com; s=arc-20160816; b=P45BimHKDUKI/Q5V3ab1kFOSHwtbIgujzOz+Qrcaa1VkJ/zuKONGeLttCENzYh5mB2 XO2twSHrEQWpzCKUxRRXUgzDyQ3sZfr8CeQxfZwvyFeK3Pt3giw1gGSzLHbXfYaKlWKI FKHBVEpJ34Re32tMFNLcg+bCXBSOK0W/ZW3f3ERDVKT2dlZPt2wGe20BScV6py48Cz1i NaGL3PxyfpuO64XQDxs7qQWNOAj76uy/giPZThHpoGjUNpge9PpbpewVJ62uCj7gMbu2 d5ZE3J+Hg7Jkix6KJAXO6ihJN4eeE1kkhtEttlh2oHLAEGuvuUqmOhFNwtCX5H2NUNpx 3GAA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=o8iAs+b9R3mNIB/InAX7Nb7Tkb2XMfLW/lhSnhILbm0=; b=0hZEfc78MQe5G8YmjYPGobfOt2b24gGJrgGTJnmJrfgEpBj9oYfJqQBCqNJVAlRalt Z7flbT7VtWYxrtfN5Gk5YpRnZSwTjsX8yb4HJsumFd2IPARhm+e9yuL6LksDRr+APg/Z jkfTHs3otuKcXfAR9mQicJnOh69Efa9eVmBR+7M64ZAzK+WttC+EJMsDBVeEQqIT+kBQ g3lJbZpz8DiYIhGuY5smb5fN3yS11cM4s4+YIuU8JgqoADNPPbifkjS/Jl/n4TwE9Pwx pFpr4QCN8Z+efu/NSAh7djTyyCGjsZb2iIPwp9etenzPSP5gi7tRJv3o7NPaVK6EY0fK 9wJA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=tkSzHBy+; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id f5si14328040ejq.98.2019.09.13.06.19.23; Fri, 13 Sep 2019 06:19:46 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=tkSzHBy+; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2389895AbfIMNQj (ORCPT + 99 others); Fri, 13 Sep 2019 09:16:39 -0400 Received: from mail.kernel.org ([198.145.29.99]:43468 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2389872AbfIMNQh (ORCPT ); Fri, 13 Sep 2019 09:16:37 -0400 Received: from localhost (unknown [104.132.45.99]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 4E07C20CC7; Fri, 13 Sep 2019 13:16:36 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1568380596; bh=0z52JgTNdpmxBLeWd/Lzx1felvZI1R8Y+zcyaJqAtc0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=tkSzHBy+cCMxIO9kLDAVkRGnC7sm7h88nwU55mKasVoWy/7o6gBrfLKI/v+snavYI JD6goSyZRWU46L3XgFwOG3JP49E7VIUNXP3nnemH/u6I+9blDuVH7qAfufw76O/dry nx9cCCysndEWfv3XIhdsBGy3xozzz4+CipVQuXtA= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Dominique Martinet , Pavel Tatashin , Paolo Bonzini , Sasha Levin Subject: [PATCH 4.19 095/190] x86/kvmclock: set offset for kvm unstable clock Date: Fri, 13 Sep 2019 14:05:50 +0100 Message-Id: <20190913130607.198895854@linuxfoundation.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20190913130559.669563815@linuxfoundation.org> References: <20190913130559.669563815@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org [ Upstream commit b5179ec4187251a751832193693d6e474d3445ac ] VMs may show incorrect uptime and dmesg printk offsets on hypervisors with unstable clock. The problem is produced when VM is rebooted without exiting from qemu. The fix is to calculate clock offset not only for stable clock but for unstable clock as well, and use kvm_sched_clock_read() which substracts the offset for both clocks. This is safe, because pvclock_clocksource_read() does the right thing and makes sure that clock always goes forward, so once offset is calculated with unstable clock, we won't get new reads that are smaller than offset, and thus won't get negative results. Thank you Jon DeVree for helping to reproduce this issue. Fixes: 857baa87b642 ("sched/clock: Enable sched clock early") Cc: stable@vger.kernel.org Reported-by: Dominique Martinet Signed-off-by: Pavel Tatashin Signed-off-by: Paolo Bonzini Signed-off-by: Sasha Levin --- arch/x86/kernel/kvmclock.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/arch/x86/kernel/kvmclock.c b/arch/x86/kernel/kvmclock.c index 013fe3d21dbb3..2ec202cb9dfd4 100644 --- a/arch/x86/kernel/kvmclock.c +++ b/arch/x86/kernel/kvmclock.c @@ -117,12 +117,8 @@ static u64 kvm_sched_clock_read(void) static inline void kvm_sched_clock_init(bool stable) { - if (!stable) { - pv_time_ops.sched_clock = kvm_clock_read; + if (!stable) clear_sched_clock_stable(); - return; - } - kvm_sched_clock_offset = kvm_clock_read(); pv_time_ops.sched_clock = kvm_sched_clock_read; -- 2.20.1