Received: by 2002:a05:6a10:6d10:0:0:0:0 with SMTP id gq16csp2740394pxb; Mon, 25 Apr 2022 01:02:44 -0700 (PDT) X-Google-Smtp-Source: ABdhPJz77yogcg/dMpcKEgspNK+9UQ4qsOD74bZgPHP4QITuofpQd1A6GTBqyJpvsgtoSnjBNp4q X-Received: by 2002:a17:906:6dc4:b0:6e8:465d:65c3 with SMTP id j4-20020a1709066dc400b006e8465d65c3mr14786007ejt.179.1650873763745; Mon, 25 Apr 2022 01:02:43 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1650873763; cv=none; d=google.com; s=arc-20160816; b=ZD/QeBD28cZ6koaZdsqXUYOpkzjfWmXzByYUnOkMAufFdH1qgOuOkQb0NHrYAEZe9K FpAQu3uuKD5wYSqEI24t+Yw7X/P1SzGTaY/gyF39XmjIX+YaZqS+OziPzln6z5GHnNQN d1d7SIvmxYbxF7AaOj1lLfii73wih+oXJbRQuwyhfetQ9V00F22V5286D710mHFeU3PM cAptO26E7L42OsbLmBB9fQ0Ma9cz4ZEJvix9TzbdHp78fxRlsFjThEteDynCVdxE74RI CC0E53paE9XNhhTq66ApEbzPUmF4vjlkG5KbtSucf4M9uqosxHenOgCa1F+HZuGwuk2l uWOg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:user-agent:references:message-id :in-reply-to:subject:cc:to:from:date; bh=RFU+3Qrdr1uedDY2UBrXnsyWYcoUoNZ5bCkbCDXcLjM=; b=DjbQBVHXPSZ00bj3IqLrJnViqTgaKgPtqvuPnzxn4Q+F3LoNxJawRYtXJ2JLavyVB0 vEk3mhQBhbq+l9RsCpy8PBbkbTZd7q4D+pItkk7WVX+a7TpVrJvO8b06FXH7TjXX3YgB 6An/0N0KQm9VvaON3BK5j21G8boj68jyeMMhOjQcuYdxx2PfGAvvsF7HuDeLPadMkua6 TCz27OuZXLvuw0SOwj0speitxHBA7wFy7eP7hY1qZrORjQf+gnI0RlMXdeY4/WMa/QXm kLpNJo0XXRLFgoCo7AVLhpzOtvj85Z+WueH1Jaq7GvpmIpoJT/ja7JzS2rPTp9Tf+JyX NzDQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id wi7-20020a170906fd4700b006f3a30194c5si249578ejb.901.2022.04.25.01.02.18; Mon, 25 Apr 2022 01:02:43 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S239375AbiDXLuf (ORCPT + 99 others); Sun, 24 Apr 2022 07:50:35 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56356 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S239343AbiDXLuW (ORCPT ); Sun, 24 Apr 2022 07:50:22 -0400 Received: from angie.orcam.me.uk (angie.orcam.me.uk [78.133.224.34]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 87CDD1344F6 for ; Sun, 24 Apr 2022 04:47:21 -0700 (PDT) Received: by angie.orcam.me.uk (Postfix, from userid 500) id BF91792009D; Sun, 24 Apr 2022 13:47:20 +0200 (CEST) Received: from localhost (localhost [127.0.0.1]) by angie.orcam.me.uk (Postfix) with ESMTP id B7C5792009B; Sun, 24 Apr 2022 12:47:20 +0100 (BST) Date: Sun, 24 Apr 2022 12:47:20 +0100 (BST) From: "Maciej W. Rozycki" To: John Stultz , Thomas Gleixner , Stephen Boyd , Russell King , Ingo Molnar cc: linux-kernel@vger.kernel.org Subject: [PATCH 1/3] sched_clock: Round the frequency reported to nearest rather than down In-Reply-To: Message-ID: References: User-Agent: Alpine 2.21 (DEB 202 2017-01-01) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,SPF_HELO_NONE, SPF_NONE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org We currently round the frequency reported for clock sources down, which gives misleading figures, e.g.: I/O ASIC clock frequency 24999480Hz clocksource: dec-ioasic: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 76452008078 ns sched_clock: 32 bits at 24MHz, resolution 40ns, wraps every 85901132779ns MIPS counter frequency 59998512Hz clocksource: MIPS: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 31855130776 ns sched_clock: 32 bits at 59MHz, resolution 16ns, wraps every 35792281591ns Rounding to nearest seems more adequate: I/O ASIC clock frequency 24999664Hz clocksource: dec-ioasic: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 76451445358 ns sched_clock: 32 bits at 25MHz, resolution 40ns, wraps every 85900499947ns MIPS counter frequency 59999728Hz clocksource: MIPS: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 31854485176 ns sched_clock: 32 bits at 60MHz, resolution 16ns, wraps every 35791556599ns Signed-off-by: Maciej W. Rozycki Fixes: 112f38a4a316 ("ARM: sched_clock: provide common infrastructure for sched_clock()") --- kernel/time/sched_clock.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) linux-sched-clock-rate-round.diff Index: linux-macro/kernel/time/sched_clock.c =================================================================== --- linux-macro.orig/kernel/time/sched_clock.c +++ linux-macro/kernel/time/sched_clock.c @@ -8,6 +8,7 @@ #include #include #include +#include #include #include #include @@ -199,11 +200,11 @@ sched_clock_register(u64 (*read)(void), r = rate; if (r >= 4000000) { - r /= 1000000; + r = DIV_ROUND_CLOSEST(r, 1000000); r_unit = 'M'; } else { if (r >= 1000) { - r /= 1000; + r = DIV_ROUND_CLOSEST(r, 1000); r_unit = 'k'; } else { r_unit = ' ';