Received: by 2002:a25:f815:0:0:0:0:0 with SMTP id u21csp4028457ybd; Tue, 25 Jun 2019 12:44:05 -0700 (PDT) X-Google-Smtp-Source: APXvYqySh9wP/hy3YGQbthkk0QRwf3tnWRNFKpRg9T+XawOSbOIMzbqc0HCVkwLxAijqYCHNGKMi X-Received: by 2002:a17:90a:601:: with SMTP id j1mr604243pjj.96.1561491845374; Tue, 25 Jun 2019 12:44:05 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1561491845; cv=none; d=google.com; s=arc-20160816; b=lxh7dllbVhafy2O1x2TwO5Q5oX1IPU9MMt0RoJCggdc7195o9sPEbCb5H5/zvOjmr9 G5VaJvFfD8FUe2mS/VemA53ejmBlXT0d4HRrI7qM5uLWWHr2gHao6u8UVL/fWvL1Nhfl paGMgNhUu49dfESa3RaqQTB9UaC4xRZcG/JwCzvjY7L6bl+kF3bz6IMKWJ2a0UhSWciL UzB0Gpbd5mcMeIDm2rz65wQzoWnbyqVRy6bcNX4IkJGUtMjiY0yPIT7xyo7Hacfd95oR uiZUCqNFOyk7SGjTYpgQ4ZMFfuJqXpaWmPK/nP7Gd2go8v2ySAzNXk6o6aSysjd/je3A 8zCg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:user-agent:references :message-id:in-reply-to:subject:cc:to:from:date; bh=tFSaDG7vaLUNND0AjOK19gzdF5m2kx9WEMaUhlhTXB8=; b=h/1AMiMH3VshHC8GgSMW7QlsK0YzZNAU8CbN/DmFw4nwRYh86bBI7X8rCIWyqa4vuz /v9W/6pi63NYsAuFO8HqYNguWf3AoZ5SjQeBT1VJAwV8mtbH4No4JPfjLIS4cuuPE+yj lHiOgU1nFESC5kUm3nXS0xNyWmO6pfUYAUstuqH9EnK3FmzFyo3rRQglq7QEHxI3HDUJ VBD9gPalAV0ere717Iv+0nv1bfLZccbww7vrEUt7OBphQqlGy6YI6qdy8HUemNdyWSHG uiXc7Wucmsif+HkAU/+Y24ikKyblHyFUqOZpHE64ibSM7hQDgPgVEWi8xnA8a2eeKMLK jDEQ== 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 78si15308303pfz.268.2019.06.25.12.43.49; Tue, 25 Jun 2019 12:44:05 -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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730423AbfFYRCV (ORCPT + 99 others); Tue, 25 Jun 2019 13:02:21 -0400 Received: from Galois.linutronix.de ([193.142.43.55]:44024 "EHLO Galois.linutronix.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727540AbfFYRCV (ORCPT ); Tue, 25 Jun 2019 13:02:21 -0400 Received: from p5b06daab.dip0.t-ipconnect.de ([91.6.218.171] helo=nanos) by Galois.linutronix.de with esmtpsa (TLS1.2:DHE_RSA_AES_256_CBC_SHA256:256) (Exim 4.80) (envelope-from ) id 1hfopi-0004Hb-GJ; Tue, 25 Jun 2019 19:02:14 +0200 Date: Tue, 25 Jun 2019 19:02:13 +0200 (CEST) From: Thomas Gleixner To: Vincenzo Frascino cc: linux-arch@vger.kernel.org, LAK , LKML , linux-mips@vger.kernel.org, linux-kselftest@vger.kernel.org, catalin.marinas@arm.com, Will Deacon , Arnd Bergmann , linux@armlinux.org.uk, Ralf Baechle , paul.burton@mips.com, Daniel Lezcano , salyzyn@android.com, pcc@google.com, shuah@kernel.org, 0x7f454c46@gmail.com, linux@rasmusvillemoes.dk, huw@codeweavers.com, sthotton@marvell.com, andre.przywara@arm.com, Andy Lutomirski Subject: Re: [PATCH 1/3] lib/vdso: Delay mask application in do_hres() In-Reply-To: <20190625161804.38713-1-vincenzo.frascino@arm.com> Message-ID: References: <20190624133607.GI29497@fuggles.cambridge.arm.com> <20190625161804.38713-1-vincenzo.frascino@arm.com> User-Agent: Alpine 2.21 (DEB 202 2017-01-01) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII X-Linutronix-Spam-Score: -1.0 X-Linutronix-Spam-Level: - X-Linutronix-Spam-Status: No , -1.0 points, 5.0 required, ALL_TRUSTED=-1,SHORTCIRCUIT=-0.0001 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, 25 Jun 2019, Vincenzo Frascino wrote: CC+ Andy > do_hres() in the vDSO generic library masks the hw counter value > immediately after reading it. > > Postpone the mask application after checking if the syscall fallback is > enabled, in order to be able to detect a possible fallback for the > architectures that have masks smaller than ULLONG_MAX. Right. This only worked on x86 because the mask is there ULLONG_MAX for all VDSO capable clocksources, i.e. that ever worked just by chance. As we talked about that already yesterday, I tested this on a couple of machines and as expected the outcome is uarch dependent. Minimal deviations to both sides and some machines do not show any change at all. I doubt it's possible to come up with a solution which makes all uarchs go faster magically. Though, thinking about it, we could remove the mask operation completely on X86. /me runs tests Thanks, tglx > Signed-off-by: Vincenzo Frascino > --- > lib/vdso/gettimeofday.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/lib/vdso/gettimeofday.c b/lib/vdso/gettimeofday.c > index ef28cc5d7bff..ee1221ba1d32 100644 > --- a/lib/vdso/gettimeofday.c > +++ b/lib/vdso/gettimeofday.c > @@ -35,12 +35,12 @@ static int do_hres(const struct vdso_data *vd, clockid_t clk, > > do { > seq = vdso_read_begin(vd); > - cycles = __arch_get_hw_counter(vd->clock_mode) & > - vd->mask; > + cycles = __arch_get_hw_counter(vd->clock_mode); > ns = vdso_ts->nsec; > last = vd->cycle_last; > if (unlikely((s64)cycles < 0)) > return clock_gettime_fallback(clk, ts); > + cycles &= vd->mask; > if (cycles > last) > ns += (cycles - last) * vd->mult; > ns >>= vd->shift; > -- > 2.22.0 > >