Received: by 2002:a25:683:0:0:0:0:0 with SMTP id 125csp1919699ybg; Fri, 5 Jun 2020 00:38:30 -0700 (PDT) X-Google-Smtp-Source: ABdhPJy4u0AIwqlUoQWhIWVJPrs8j+c/zeUAlJoa159cFS6QXeIGAQC1Faku7zIQw/FxludJYpKI X-Received: by 2002:a17:906:e257:: with SMTP id gq23mr7041175ejb.398.1591342709850; Fri, 05 Jun 2020 00:38:29 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1591342709; cv=none; d=google.com; s=arc-20160816; b=yWLzJF72LtmgV9sBvQsuY4irVQSz754oRDI8uHIgyGWPzpiPqdnoVm4cshUrKiD+jC B0wg02vcW1MZoVHEAh4+DJvd/qyzBc9r3tTr4ZUl+SooBLt4Nvurf2C9Hs15k2T/YTZr GjYAKdRRVdltaZ+3O+vsXpzPmpCpjFrz1cH8mD9TTPCWLdbxxsHp0YBe0wrsLLLERz7m +5eym7ymGUz/AybPLK3Hni26ZvYlUEhXX6U2SpNBBJjl/QUghilj+O8KZb7rig6QWw2d N7YiiNvArk6uMXnSd4a1T2FxihLNTbJypH2X6FaeZD+8sJGqWN8WXziu/5N7BwR2t7cB opSw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=1VjCE6/abJfOjLL4MnyYsiz/bdxeCMpDRWtyEIY5Fyw=; b=GpfcJrA5oeZRofXTPFwyuLDN+Kzq6yvtwSLsSkCxQbu+2WMZx8hxIhGLAKizWEIXI8 1w/AXldC1jOJsSXOAbGGFaPs/3d4ubGT9Oa7qBU2vlg+A4Inmuk2Z/SClCLpDOKBdK3n ebS7DXWD6RdxdYQ1xcaqu6goJpXmhU7P+nzLp35estj4sFX02N9AHZpOuZMHaJwGF0yn RLzQIkl2uz3S38Dbj+eaQ8kaJlv/H5XPLql+Bx60mTUEBFXGzet4lXZeDh8ZnSC0QkRs R4aLO0yqOfjXYEoMOgqI3/a96RK7euqYE3O4dceHMsaipxry+7aNUDgmygLITWMzYkdU tt3g== ARC-Authentication-Results: i=1; mx.google.com; dkim=temperror (no key for signature) header.i=@szeredi.hu header.s=google header.b=GrDjQ6zP; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id i7si772703ejo.473.2020.06.05.00.38.06; Fri, 05 Jun 2020 00:38:29 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=temperror (no key for signature) header.i=@szeredi.hu header.s=google header.b=GrDjQ6zP; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726148AbgFEHfz (ORCPT + 99 others); Fri, 5 Jun 2020 03:35:55 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42258 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726024AbgFEHfy (ORCPT ); Fri, 5 Jun 2020 03:35:54 -0400 Received: from mail-ed1-x541.google.com (mail-ed1-x541.google.com [IPv6:2a00:1450:4864:20::541]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3B853C08C5C2 for ; Fri, 5 Jun 2020 00:35:54 -0700 (PDT) Received: by mail-ed1-x541.google.com with SMTP id t21so3982097edr.12 for ; Fri, 05 Jun 2020 00:35:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=szeredi.hu; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=1VjCE6/abJfOjLL4MnyYsiz/bdxeCMpDRWtyEIY5Fyw=; b=GrDjQ6zPgb16rLW77/79xBB9WwKwYgNQW0eQ4bbNWbMyOhQ8j7jNHuUga/T8Y/O5+o LEV8M9mKQY9uN+Q13VCK1oXtLwp8Qw6kEn4y91vPG/8jRoPNoblgbdO92pL0bXcLNzwS 89t2zun8h0tJIN9iGV7yFhvNW27g88kRjymm0= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=1VjCE6/abJfOjLL4MnyYsiz/bdxeCMpDRWtyEIY5Fyw=; b=IRPujfRQe86E/q6A5p9NGdYWrKz0HLn+4HrAalYlqyWdmto047Zin9iJIEngj3k83O SBs1JuQVJVNPRtSa+AChlZX/1uXMI/BfFQ/G/oYUshPftZBnF/EwjNQU9KY1OuqernHW M3C19pIiSLfAhg6UKAfOIbwGmfIcOlQiWZRKcGKoOVHO/2pXGObKxsdJV2ln2A5Mzmns 50XkeOaeQOUTy/yB+nJw/p3F15wg3Zhvwr71qH+W/Sf5Xk3kAVQzfAw0j8z8qiX/dccN lcA61MRs5YIgaB9q26pauA6J66lDqPDA6R15GznoNUHJIqDxzWTrDUazLn8KEx/xE1s+ ancQ== X-Gm-Message-State: AOAM530R7FKS3diGvNbaueuP0dSRUmItG37n+MWxlgdx/LhHW4SIRXNx JK9hMszFhU+gEa6gqnBzw5HLj7A0AoJp4IA6HMwlXQ== X-Received: by 2002:a50:ee8f:: with SMTP id f15mr8081524edr.168.1591342552038; Fri, 05 Jun 2020 00:35:52 -0700 (PDT) MIME-Version: 1.0 References: <87pnagf912.fsf@nanos.tec.linutronix.de> <87367a91rn.fsf@nanos.tec.linutronix.de> <1a1c32fe-d124-0e47-c9e4-695be7ea7567@redhat.com> In-Reply-To: <1a1c32fe-d124-0e47-c9e4-695be7ea7567@redhat.com> From: Miklos Szeredi Date: Fri, 5 Jun 2020 09:35:40 +0200 Message-ID: Subject: Re: system time goes weird in kvm guest after host suspend/resume To: Paolo Bonzini Cc: Thomas Gleixner , kvm@vger.kernel.org, Vincenzo Frascino , Juergen Gross , linux-kernel@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, Jun 4, 2020 at 10:14 PM Paolo Bonzini wrote: > > On 04/06/20 21:28, Miklos Szeredi wrote: > > time(2) returns good time, while clock_gettime(2) returns bad time. > > Here's an example: > > > > time=1591298725 RT=1591300383 MONO=39582 MONO_RAW=39582 BOOT=39582 > > time=1591298726 RT=1591300383 MONO=39582 MONO_RAW=39582 BOOT=39582 > > time=1591298727 RT=1591300383 MONO=39582 MONO_RAW=39582 BOOT=39582 > > time=1591298728 RT=1591300383 MONO=39582 MONO_RAW=39582 BOOT=39582 > > time=1591298729 RT=1591300383 MONO=39582 MONO_RAW=39582 BOOT=39582 > > > > As you can see, only time(2) is updated, the others remain the same. > > date(1) uses clock_gettime(CLOCK_REALTIME) so that shows the bad date. > > > > When the correct time reaches the value returned by CLOCK_REALTIME, > > the value jumps exactly 2199 seconds. > > clockid_to_kclock(CLOCK_REALTIME) is &clock_realtime, so clock_gettime > calls ktime_get_real_ts64, which is: > > > do { > seq = read_seqcount_begin(&tk_core.seq); > > ts->tv_sec = tk->xtime_sec; > nsecs = timekeeping_get_ns(&tk->tkr_mono); > > } while (read_seqcount_retry(&tk_core.seq, seq)); > > ts->tv_nsec = 0; > timespec64_add_ns(ts, nsecs); > > time(2) instead should actually be gettimeofday(2), which just returns > tk->xtime_sec. So the problem is the nanosecond part which is off by > 2199*10^9 nanoseconds, and that is suspiciously close to 2^31... Yep: looking at the nanosecond values as well, the difference is exactly 2199023255552 which is 2^41. Thanks, Miklos