Received: by 2002:ac0:a582:0:0:0:0:0 with SMTP id m2-v6csp74914imm; Wed, 3 Oct 2018 12:08:30 -0700 (PDT) X-Google-Smtp-Source: ACcGV61XKOtXcwXELLytWpEvIFwh/PLXXFpMvJrPIj7hGZIThl5xBnXJ/+3IGUWtO3Bj8lnT+tpm X-Received: by 2002:a62:63c2:: with SMTP id x185-v6mr3028875pfb.13.1538593710319; Wed, 03 Oct 2018 12:08:30 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1538593710; cv=none; d=google.com; s=arc-20160816; b=fSjONZVLsygBfByQLLqD/WXot2xwb6B8TRqUOSpO5/tUlidRADYNk2hPLj1nH6gNTI 9517njrYapFekiW9ohW1TJApqSWGb16fw7KnAQ4YaqavVmelT5YoMpJC4JUeBxkWJ4ec 88f5q+yvovtEzIALKK3mF2uFfbqw4SdSNHd849AqzmWYeqtRjikHS5kjckoitOVc+CyH 7+pPRZVf5hO2jl1Xk8z2pVR7a6mAKtY/njMUM2lLg4emI+FUuUJpifu/6tYK+RcPAYV9 Int/CENAbkYTEENz0sOlSKllcl/QlYwup4HncTrdMdtwiPjbTj4x8jp58Emqo2AGSAyd jV7g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date; bh=gk1Zp+g2aLSs/hvrzoULP8RphCMEVCobBgR3dV7zEcg=; b=TgomaDv/LEn3wXAGr1FKqFahgOhgN312WYWh/EHqeCFiH/9bOjlqS45PsywwTOkWuP HaJwCTq9QhQdpNT8I+3a5O4Mzm6oTJBo+d5nmcHuXNHhpBl0rH7ZIjrf+k+4N2d8soUa j7uWwGv94z5GosGIPEuj2k/GjXCH6n7VJ8kPFcX+4kuWdtSfFrceqDVcHAifONjvd3x7 DoDPM6byjID81ozT8UN1B2DvKVY65wUjoOtgIQOpdt9Wprqh8iiTLT3qZh+utlYaesS2 j2vMSkOxcXf7WwuXu4tvAhvGZe4f0wZ6zKsv3TGRXFM5qR3WPPdsnFU6rWp4UFNcPZIr RBpg== ARC-Authentication-Results: i=1; mx.google.com; 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id t6-v6si2300804pgk.306.2018.10.03.12.08.15; Wed, 03 Oct 2018 12:08:30 -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; 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727143AbeJDB5W (ORCPT + 99 others); Wed, 3 Oct 2018 21:57:22 -0400 Received: from mx1.redhat.com ([209.132.183.28]:53247 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726941AbeJDB5W (ORCPT ); Wed, 3 Oct 2018 21:57:22 -0400 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id A3A2287629; Wed, 3 Oct 2018 19:07:41 +0000 (UTC) Received: from amt.cnet (ovpn-112-2.gru2.redhat.com [10.97.112.2]) by smtp.corp.redhat.com (Postfix) with ESMTP id B04F2672C0; Wed, 3 Oct 2018 19:07:40 +0000 (UTC) Received: from amt.cnet (localhost [127.0.0.1]) by amt.cnet (Postfix) with ESMTP id 44A9310514F; Wed, 3 Oct 2018 16:05:08 -0300 (BRT) Received: (from marcelo@localhost) by amt.cnet (8.14.7/8.14.7/Submit) id w93J54gh023695; Wed, 3 Oct 2018 16:05:04 -0300 Date: Wed, 3 Oct 2018 16:05:04 -0300 From: Marcelo Tosatti To: Andy Lutomirski Cc: Thomas Gleixner , Paolo Bonzini , Radim Krcmar , Wanpeng Li , LKML , X86 ML , Peter Zijlstra , Matt Rickard , Stephen Boyd , John Stultz , Florian Weimer , KY Srinivasan , Vitaly Kuznetsov , devel@linuxdriverproject.org, Linux Virtualization , Arnd Bergmann , Juergen Gross Subject: Re: [patch 00/11] x86/vdso: Cleanups, simmplifications and CLOCK_TAI support\ Message-ID: <20181003190500.GA23638@amt.cnet> References: <20180914125006.349747096@linutronix.de> <20181003190026.GB21381@amt.cnet> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20181003190026.GB21381@amt.cnet> User-Agent: Mutt/1.5.21 (2010-09-15) X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.26]); Wed, 03 Oct 2018 19:07:42 +0000 (UTC) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Oct 03, 2018 at 04:00:29PM -0300, Marcelo Tosatti wrote: > On Tue, Oct 02, 2018 at 10:15:49PM -0700, Andy Lutomirski wrote: > > Hi Vitaly, Paolo, Radim, etc., > > > > On Fri, Sep 14, 2018 at 5:52 AM Thomas Gleixner wrote: > > > > > > Matt attempted to add CLOCK_TAI support to the VDSO clock_gettime() > > > implementation, which extended the clockid switch case and added yet > > > another slightly different copy of the same code. > > > > > > Especially the extended switch case is problematic as the compiler tends to > > > generate a jump table which then requires to use retpolines. If jump tables > > > are disabled it adds yet another conditional to the existing maze. > > > > > > This series takes a different approach by consolidating the almost > > > identical functions into one implementation for high resolution clocks and > > > one for the coarse grained clock ids by storing the base data for each > > > clock id in an array which is indexed by the clock id. > > > > > > > I was trying to understand more of the implications of this patch > > series, and I was again reminded that there is an entire extra copy of > > the vclock reading code in arch/x86/kvm/x86.c. And the purpose of > > that code is very, very opaque. > > > > Can one of you explain what the code is even doing? From a couple of > > attempts to read through it, it's a whole bunch of > > probably-extremely-buggy code that, > > Yes, probably. > > > drumroll please, tries to atomically read the TSC value and the time. And decide whether the > > result is "based on the TSC". > > I think "based on the TSC" refers to whether TSC clocksource is being > used. > > > And then synthesizes a TSC-to-ns > > multiplier and shift, based on *something other than the actual > > multiply and shift used*. > > > > IOW, unless I'm totally misunderstanding it, the code digs into the > > private arch clocksource data intended for the vDSO, uses a poorly > > maintained copy of the vDSO code to read the time (instead of doing > > the sane thing and using the kernel interfaces for this), and > > propagates a totally made up copy to the guest. > > I posted kernel interfaces for this, and it was suggested to > instead write a "in-kernel user of pvclock data". > > If you can get kernel interfaces to replace that, go for it. I prefer > kernel interfaces as well. And cleanup patches, to make that code look nicer, are also very welcome!