Received: by 2002:a05:6a10:6d10:0:0:0:0 with SMTP id gq16csp142099pxb; Thu, 21 Apr 2022 19:31:43 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzr5O0uygehv0u/KA0pYw7Luk3+HzEo9agbi/MJ4x9yt76n7L1oSZz4wf8UIzPUtWLiD+TL X-Received: by 2002:a05:6402:1c1e:b0:416:5b93:eacf with SMTP id ck30-20020a0564021c1e00b004165b93eacfmr2587895edb.302.1650594703217; Thu, 21 Apr 2022 19:31:43 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1650594703; cv=none; d=google.com; s=arc-20160816; b=eFxa9vqwQV/b1r965DPd7Ogz0dlLcq2Dqnc1C5PK27bafS0lhmLMW1jM9Kdz9D1Vne fYLiRSidG/fq6RvaTrKs62TyTYflTr9PTprSH17Pe+a05MEid2XN81GHM5YIJeM/3vcy 3fTU+7LnqzTXMlSQlEPt0ffxZ0xU2W9KgrJA4GszPvq0WHcIaNVdYm6Rc5jve8SOF/Xn E+M9BNPzGAwInDWBhByZIGZhG6w8KiLJJhdTApMwiLt+FcfZ/u4qmPsFkycpVfIGfKQ5 N0VZZ5PhW9tuusy6S3cpu87dYa2ZYQtSFWqt76m5gR73lpuD9tWKeZGU6N+hCjHqen8B 9+gA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version; bh=lPxp0QI2/nvg9xCByE9gIxfF0d3G+NntnF3jQ+l2Pfc=; b=zo06kAq5OqmLv4WlDMvB830XJ+vxzhI+SIbuLY/mdbKleatptnY4UsBEoc7dzymEJN lOfwDv3RSWPjwUa2iUmgfwlOnjfFMB4gExWrXsYccH87OZafZMWBJ13wCYYQAwZXmnMS xaMFADMEkn9vCCeD5VEimjzZ8HyM6yb8RYwiGnF6DUdYd+b3Ry0s6J8XSOawgaB4JgpH fmpnYkJaB6c0v8+msmKcE5olGwaWgr72wxvPfkEt7Smrab6lTr5gbikGxq2NxlIYJU0C FKVR0l/1fuw7PLJhTbDf+eTfjqhEOU7AV0N61DhTFPK/ezTAxE1PwgeR89bGMXaSqTMF pZJw== 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id cq4-20020a056402220400b0041cc2ef4536si4151660edb.554.2022.04.21.19.30.30; Thu, 21 Apr 2022 19:31: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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1348985AbiDSQXM (ORCPT + 99 others); Tue, 19 Apr 2022 12:23:12 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33566 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S239383AbiDSQXI (ORCPT ); Tue, 19 Apr 2022 12:23:08 -0400 Received: from mail-yb1-f179.google.com (mail-yb1-f179.google.com [209.85.219.179]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1B4A019C35; Tue, 19 Apr 2022 09:20:26 -0700 (PDT) Received: by mail-yb1-f179.google.com with SMTP id f17so31915900ybj.10; Tue, 19 Apr 2022 09:20:26 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=lPxp0QI2/nvg9xCByE9gIxfF0d3G+NntnF3jQ+l2Pfc=; b=GbEhwVpPvWTuopsxPqXQfMBHuZt06KYgHCRUpVLjX2F5iJWihxTqWWPrdWsyMdEXtE l107kp3dHG/C8nFEZcpsUnbdsdLv08mul/5Y5TV5FMhOAmfGBsjhqzSY2P4xFU93MVPM S2F7blK8jG0guE/UJtjoMKVC6VNTTfKLg+vEqn3RLAr+UA9G2F64Hdl6Vlwu7qMFdeq5 pCdpEXOFrpEAw55ID7O68SfO3Su7WS07lUi0ywNUk2txhVpVLMVShN+0OOf0zf97dyYN FpL8q9kAARfvRS6NjFcWguaV9iBfgX3PZFph0xrhwgpaVB7j0wDT51PFQ/mV1hBF6ehV p5jQ== X-Gm-Message-State: AOAM5333SbKTlUG7b+J5ahl/BajvpSc+IkY1UobDkQa5eZBCadqLrK8E btGOUKUN6sj9wZL2riWUT4KynOF4+Gf4TaqF51tfX+6s X-Received: by 2002:a25:ac9b:0:b0:641:3c32:bee7 with SMTP id x27-20020a25ac9b000000b006413c32bee7mr14618920ybi.633.1650385225389; Tue, 19 Apr 2022 09:20:25 -0700 (PDT) MIME-Version: 1.0 References: <20220415133356.179706384@linutronix.de> <20220415161206.706185092@linutronix.de> In-Reply-To: <20220415161206.706185092@linutronix.de> From: "Rafael J. Wysocki" Date: Tue, 19 Apr 2022 18:20:14 +0200 Message-ID: Subject: Re: [patch 06/10] x86/aperfmperf: Restructure arch_scale_freq_tick() To: Thomas Gleixner Cc: LKML , "the arch/x86 maintainers" , "Rafael J. Wysocki" , Linux PM , Eric Dumazet , "Paul E. McKenney" Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-1.4 required=5.0 tests=BAYES_00, FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM,HEADER_FROM_DIFFERENT_DOMAINS, RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=no 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 On Fri, Apr 15, 2022 at 9:20 PM Thomas Gleixner wrote: > > Preparation for sharing code with the CPU frequency portion of the > aperf/mperf code. > > No functional change. > > Signed-off-by: Thomas Gleixner All good AFAICS: Reviewed-by: Rafael J. Wysocki > --- > arch/x86/kernel/cpu/aperfmperf.c | 36 +++++++++++++++++++++--------------- > 1 file changed, 21 insertions(+), 15 deletions(-) > > --- a/arch/x86/kernel/cpu/aperfmperf.c > +++ b/arch/x86/kernel/cpu/aperfmperf.c > @@ -477,22 +477,9 @@ static DECLARE_WORK(disable_freq_invaria > > DEFINE_PER_CPU(unsigned long, arch_freq_scale) = SCHED_CAPACITY_SCALE; > > -void arch_scale_freq_tick(void) > +static void scale_freq_tick(u64 acnt, u64 mcnt) > { > - struct aperfmperf *s = this_cpu_ptr(&cpu_samples); > - u64 aperf, mperf, acnt, mcnt, freq_scale; > - > - if (!arch_scale_freq_invariant()) > - return; > - > - rdmsrl(MSR_IA32_APERF, aperf); > - rdmsrl(MSR_IA32_MPERF, mperf); > - > - acnt = aperf - s->aperf; > - mcnt = mperf - s->mperf; > - > - s->aperf = aperf; > - s->mperf = mperf; > + u64 freq_scale; > > if (check_shl_overflow(acnt, 2*SCHED_CAPACITY_SHIFT, &acnt)) > goto error; > @@ -514,4 +501,23 @@ void arch_scale_freq_tick(void) > pr_warn("Scheduler frequency invariance went wobbly, disabling!\n"); > schedule_work(&disable_freq_invariance_work); > } > + > +void arch_scale_freq_tick(void) > +{ > + struct aperfmperf *s = this_cpu_ptr(&cpu_samples); > + u64 acnt, mcnt, aperf, mperf; > + > + if (!arch_scale_freq_invariant()) > + return; > + > + rdmsrl(MSR_IA32_APERF, aperf); > + rdmsrl(MSR_IA32_MPERF, mperf); > + acnt = aperf - s->aperf; > + mcnt = mperf - s->mperf; > + > + s->aperf = aperf; > + s->mperf = mperf; > + > + scale_freq_tick(acnt, mcnt); > +} > #endif /* CONFIG_X86_64 && CONFIG_SMP */ >