Received: by 2002:a25:868d:0:0:0:0:0 with SMTP id z13csp3733017ybk; Tue, 19 May 2020 11:38:07 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxWQTQKXTO+NedllW8DjLnnpJAuqnE5Ntp9PkGte8xb334FTWYmtXLXtAPynawypWl44mx4 X-Received: by 2002:a05:6402:4d5:: with SMTP id n21mr239531edw.49.1589913487695; Tue, 19 May 2020 11:38:07 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1589913487; cv=none; d=google.com; s=arc-20160816; b=0OPKy57ab1qCVWJZbxiWP5gB4NDnMDZVZ+WANplTUu0dVpodz0YgpTUS3QFnioJK8R tMevFQ7zOnwAOaY3ol0XEcOTAuGy9E8yT2vA5mhNHo3aTfWCD+RHnKfeqx1O6yBCAGn4 u1N0ACd76SHia50rmfahtBaTH4dE46w1A/vMEGO5MfQQBWGyqTSBCa5/35Lxa1WV79BK UsDXazLviSe1DEmCyyJOln6KjSIqqdoRDRSg1fZiloqEkmBCaJzQ9LAjLQ9ZJZ9gswjD fYYe+TVmJOXMOsiDEplq+v+hxXjfk4EI1Nd5WcD3JMuFu777limuKzj75v4mmwVn6S4f 9xqw== 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=uULKDjBEjsMtByw+4iGwU9ffUZoBNpjzfWNmhhAXeHw=; b=CoSkxb0EURmp1jQE+Tsf7HYYcT6JReohvQESVj2X10sN9P9HBxL/CPpdfXNu0/USxY GY208lE2RP8woS0QmDMKT2KVeYZ9fdutKTaDfCuameKWPcd9iSBY5Iq6rsmYt0rHGiR5 cxbsiHffOQb3ejOibTNcAMQZABAqXJeDr0CUdm0XH0rxjW1hpgyo/R7Ar/sK5nBIGIkE byD05rNM0XJZLCqEv6bs2dVDafOnwYR4IsfSnmdi02mDjOGYCXDg3BFOvqp+CBCgG8Xh 30ItGU5WCDf1xtad6U4tEZntfZhQ4hWNLANF/18IowP7kIfPEKeusy5aQ0SaOmnZ3zwn CXoA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linux-foundation.org header.s=google header.b=Fs0VIPoI; 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 h27si364519ejs.754.2020.05.19.11.37.42; Tue, 19 May 2020 11:38:07 -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=pass header.i=@linux-foundation.org header.s=google header.b=Fs0VIPoI; 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 S1726990AbgESSeA (ORCPT + 99 others); Tue, 19 May 2020 14:34:00 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38536 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726059AbgESSeA (ORCPT ); Tue, 19 May 2020 14:34:00 -0400 Received: from mail-lj1-x243.google.com (mail-lj1-x243.google.com [IPv6:2a00:1450:4864:20::243]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 15E43C08C5C0 for ; Tue, 19 May 2020 11:33:56 -0700 (PDT) Received: by mail-lj1-x243.google.com with SMTP id o14so843254ljp.4 for ; Tue, 19 May 2020 11:33:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux-foundation.org; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=uULKDjBEjsMtByw+4iGwU9ffUZoBNpjzfWNmhhAXeHw=; b=Fs0VIPoI9odDQJHZmFcJ1P8SES83Orpb3l0ofzweWC7Zco3Ya3UH2dgv0MuGc5o8LV 2IyAUuwsUslMyfykUybxtSnXl7DFcaDdIUcHLO8++Q/0D9hqh+fscr4CMGVoSPG9o03/ AfKGwqxaj9az9xb0XWfkxzSG9FQ98O1D5e9U4= 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=uULKDjBEjsMtByw+4iGwU9ffUZoBNpjzfWNmhhAXeHw=; b=ZrpIXeeh+AU0uTVejcOc3RvoPokNrd3yaqiJvkCzkIMIFpC8h424t6hV75UCeVQm9D toMGZMVA8xPX6FouEtjHvLkYDpuBrPV+47KqEDgxBWYfy10CsI2EIcLhANzicao0zuXJ XAKVl++YAAFsX6RmIzmFHt6EEZOY1UD7N8L+VKONHick4NIsx9WzRg6Vb/XThJnLEUHk 2hLL66lo85KDQ8Q6GwxsWnm8O4Bm99o3YKQbK7ZBXy2iv75XJWxmaTs8qp5zOwOybOW7 8zCucenD0vDfUYboaE4xPWkgWq0G3i3uF4FmZ0qkOh6HlGKDgHpEEbLsD5etjVjxq4JU UDOw== X-Gm-Message-State: AOAM531Pm/dnHazxaBhHRV+iWJ3sayeINOycQ6tphL9vbozx72KGjgVs MU2klqYzGDwLkNxSdyv0uY9rVg9RTC0= X-Received: by 2002:a05:651c:490:: with SMTP id s16mr458706ljc.152.1589913233956; Tue, 19 May 2020 11:33:53 -0700 (PDT) Received: from mail-lj1-f177.google.com (mail-lj1-f177.google.com. [209.85.208.177]) by smtp.gmail.com with ESMTPSA id w14sm100085lfe.65.2020.05.19.11.33.51 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 19 May 2020 11:33:52 -0700 (PDT) Received: by mail-lj1-f177.google.com with SMTP id b6so858440ljj.1 for ; Tue, 19 May 2020 11:33:51 -0700 (PDT) X-Received: by 2002:a2e:9649:: with SMTP id z9mr454321ljh.204.1589913230458; Tue, 19 May 2020 11:33:50 -0700 (PDT) MIME-Version: 1.0 References: <20190718131834.GA22211@redhat.com> <20200127122817.GA10957@redhat.com> <20200519172506.GA317395@hirez.programming.kicks-ass.net> In-Reply-To: <20200519172506.GA317395@hirez.programming.kicks-ass.net> From: Linus Torvalds Date: Tue, 19 May 2020 11:33:34 -0700 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH v2] sched/cputime: make scale_stime() more precise To: Peter Zijlstra Cc: Oleg Nesterov , Ingo Molnar , Thomas Gleixner , Andrew Fox , Stephen Johnston , Linux Kernel Mailing List , Stanislaw Gruszka 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 Tue, May 19, 2020 at 10:25 AM Peter Zijlstra wrote: > > --- a/include/linux/math64.h > +++ b/include/linux/math64.h > @@ -263,6 +263,47 @@ static inline u64 mul_u64_u32_div(u64 a, u32 mul, u32 divisor) > } > #endif /* mul_u64_u32_div */ > > +#ifndef mul_u64_u64_div_u64 > +static inline u64 mul_u64_u64_div_u64(u64 a, u64 b, u64 c) Do we really want to inline this? Particularly if we expect this to be the "architecture doesn't have a better version" case? It's not like we'd expect people to call it with constant values that could be optimized by inlining, do we? If any of the values are actually constants and it's performance-critical, the code is likely better off using some special helper rather than this anyway. So I'd much rather see it as a weak function defined in lib/math/div64.c, and then architectures don't even need to override it at all. Just let them define their own (inline or not) function, and we have this as a weak fallback. No? Linus