Received: by 2002:a05:6a10:d5a5:0:0:0:0 with SMTP id gn37csp4926818pxb; Tue, 5 Oct 2021 13:29:32 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzoaVg/45Rt+w13Bs/2/tIomBr2z/3E/MCfCPcmI37Or5WZi3G7Dtt/SZCCTWRYqHRtM5CV X-Received: by 2002:a17:906:39d8:: with SMTP id i24mr26845966eje.49.1633465772266; Tue, 05 Oct 2021 13:29:32 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1633465772; cv=none; d=google.com; s=arc-20160816; b=MAFElv72jeRzDYB3l8NZP385tFaIStwkn5Eme0Exud8FIhiagp7l8JLXkdnHSDxiSY AUGLVSYpNNOwF+5mLsVAtzQwvpyXZl3+hAzJVokrfhVw6DTBzMFoAckRfl83tiCIpXnz 51+yjSRnKsfg3mpBqAk1VAv9LGyHuDr/pnrpZxlnnJHQW1MUQEQ9lHr+2K5kpUVVb9DL XNX6GWk7DXvF0wxYGwT7OObv/WY1G+NOfSQceBve3uEO3BIiqa8hE9KVv9QWL6z3Ncvt U/uWuGLk4sW2jLEQ0G7HB+S8PCdrr0DHja6/0dIbkA+LkDgsHPvG5J7aP7m4wEJUbXsw fa2w== 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:dkim-signature; bh=GrxAr1DMFcUoXrP9dumzBLC/Lw/hT6O755uVEMlFswE=; b=s7N1YnFH8WS+XZFKkldKSW7Lft0Pv3oARLKHaLmaiskhCHm8nwVWGHfo1VxImsF4Jk d21cgUT6egaHuFserlGyE95AYBChTbg3tQVMrv8hVMpYm3uzTmMSVHSjVtqIkdTni0Zn Gt3fqVFHn3iorTe2eZSJ9M/cCLBmF7X+QYMBVzdE2epyICjXc/ipvrkZoYZ9TjLcsb2K 1qTnvCY4oIhVG+wkuaQnXKzGgn0Ri2zjHjeUSUqsp5nKO2xkS4RTn7Ft1LYAYU8vrrm6 tMCP2ny9FoXt6tcr/eLCaQLNIwEElf6Zs0rIM+D7d30p2gE6U1WEUlyzPujq0pgmgiBs 5y/g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@telus.net header.s=google header.b="HsmKf/Wl"; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=telus.net Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id i22si28249404ejw.286.2021.10.05.13.29.07; Tue, 05 Oct 2021 13:29:32 -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=@telus.net header.s=google header.b="HsmKf/Wl"; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=telus.net Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230019AbhJEU3c (ORCPT + 99 others); Tue, 5 Oct 2021 16:29:32 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45024 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229805AbhJEU3b (ORCPT ); Tue, 5 Oct 2021 16:29:31 -0400 Received: from mail-lf1-x12c.google.com (mail-lf1-x12c.google.com [IPv6:2a00:1450:4864:20::12c]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id AB621C061749 for ; Tue, 5 Oct 2021 13:27:40 -0700 (PDT) Received: by mail-lf1-x12c.google.com with SMTP id x27so1024952lfu.5 for ; Tue, 05 Oct 2021 13:27:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telus.net; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=GrxAr1DMFcUoXrP9dumzBLC/Lw/hT6O755uVEMlFswE=; b=HsmKf/WlvT1iuWP5p7cQG5PLruNmSr+8jig8nlHWYbCoy/MiQdGQsQQ1v6ewUtLFws 2B2nEU9cSKXNuhlaIelqIoTMqmnidx7P72VTXtZYPA00JtAtgVIEfnz3RtOP3Vw6eYHD xr1Vf4mTexXdG+nblxYlt6w61qPxG9cd+ZXGAHUL+8ct0j+36KhcLBnk5mR83JSvDxCk qEOLsZnuOWj3Hgj4VyoYvWGJnsuhKsrpENG4cQK5xKHg0a2M2ueS8+/SKTqqd5E6GINr cYxzdmZIVudSLsBmV1b1vIeHuR/6JiYnJbBbeIapJ6HRGgCxNrDTqApDwRWXasWwko6U wHNw== 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=GrxAr1DMFcUoXrP9dumzBLC/Lw/hT6O755uVEMlFswE=; b=e7ggg2LWmjY4eac5CqXONdZJk3WRwp0zCbb8KOIQm0MW3xinsi2ludCflYiUC2/L9C 13bUI+30UMCpDjQAHQB3ypHd1A1TUp1YXqie2oaE1s2OuW2cO/Lf96IuA/ECTOTZNzcU COYAvlmgZ4B21+4kOTZiEFruBUBC1MI7pwNucav1aJebkXsiJ2THzLQt/S7R9K5k5dze Mv0CftQgtBMChRdwXiFZy7JYZjtQF6hY8L4aLSZhaig12eUPWWFHpLSIfdsieQ2AaHav ByBZBEgo0AthJScMWc/m84tPQDYmFYI8SK+/Fzt0+w13GAcc3CkiGi7SCI0KY9swk7q7 14mw== X-Gm-Message-State: AOAM533djlebx/JKRqlwHUVGGnQLMS/9EC2BuT5MXf6tTE86MuwI9Rm8 IRKcfurxIKsDepFsu+XqEnZ/bINZlukaxVf2hCCjlw== X-Received: by 2002:a05:651c:2115:: with SMTP id a21mr25453839ljq.34.1633465659035; Tue, 05 Oct 2021 13:27:39 -0700 (PDT) MIME-Version: 1.0 References: <20211005045439.1430114-1-zephaniah@gmail.com> In-Reply-To: <20211005045439.1430114-1-zephaniah@gmail.com> From: Doug Smythies Date: Tue, 5 Oct 2021 13:27:29 -0700 Message-ID: Subject: Re: [PATCH 1/2] tools/power turbostat: Allow -e for all names. To: "Zephaniah E. Loss-Cutler-Hull" Cc: Linux PM list , Linux Kernel Mailing List , dsmythies Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, Oct 4, 2021 at 9:54 PM Zephaniah E. Loss-Cutler-Hull wrote: > > Currently, there are a number of variables which are displayed by > default, enabled with -e all, and listed by --list, but which you can > not give to --enable/-e. > > So you can enable CPU0c1 (in the bic array), but you can't enable C1 or > C1% (not in the bic array, but exists in sysfs). > > This runs counter to both the documentation and user expectations, and > it's just not very user friendly. > > As such, the mechanism used by --hide has been duplicated, and is now > also used by --enable, so we can handle unknown names gracefully. > > Note: One impact of this is that truly unknown fields given to --enable > will no longer generate errors, they will be silently ignored, as --hide > does. > > Signed-off-by: Zephaniah E. Loss-Cutler-Hull This is an incredibly useful patch. Thank you. Tested-by and Reviewed-by: Doug Smythies > --- > tools/power/x86/turbostat/turbostat.c | 49 +++++++++++++++++++-------- > 1 file changed, 35 insertions(+), 14 deletions(-) > > diff --git a/tools/power/x86/turbostat/turbostat.c b/tools/power/x86/turbostat/turbostat.c > index 47d3ba895d6d..f5d634ee5fee 100644 > --- a/tools/power/x86/turbostat/turbostat.c > +++ b/tools/power/x86/turbostat/turbostat.c > @@ -686,7 +686,9 @@ unsigned long long bic_present = BIC_USEC | BIC_TOD | BIC_sysfs | BIC_APIC | BIC > #define BIC_IS_ENABLED(COUNTER_BIT) (bic_enabled & COUNTER_BIT) > > #define MAX_DEFERRED 16 > +char *deferred_add_names[MAX_DEFERRED]; > char *deferred_skip_names[MAX_DEFERRED]; > +int deferred_add_index; > int deferred_skip_index; > > /* > @@ -775,17 +777,23 @@ unsigned long long bic_lookup(char *name_list, enum show_hide_mode mode) > } > if (i == MAX_BIC) { > if (mode == SHOW_LIST) { > - fprintf(stderr, "Invalid counter name: %s\n", name_list); > - exit(-1); > - } > - deferred_skip_names[deferred_skip_index++] = name_list; > - if (debug) > - fprintf(stderr, "deferred \"%s\"\n", name_list); > - if (deferred_skip_index >= MAX_DEFERRED) { > - fprintf(stderr, "More than max %d un-recognized --skip options '%s'\n", > - MAX_DEFERRED, name_list); > - help(); > - exit(1); > + deferred_add_names[deferred_add_index++] = name_list; > + if (deferred_add_index >= MAX_DEFERRED) { > + fprintf(stderr, "More than max %d un-recognized --add options '%s'\n", > + MAX_DEFERRED, name_list); > + help(); > + exit(1); > + } > + } else { > + deferred_skip_names[deferred_skip_index++] = name_list; > + if (debug) > + fprintf(stderr, "deferred \"%s\"\n", name_list); > + if (deferred_skip_index >= MAX_DEFERRED) { > + fprintf(stderr, "More than max %d un-recognized --skip options '%s'\n", > + MAX_DEFERRED, name_list); > + help(); > + exit(1); > + } > } > } > > @@ -6138,6 +6146,16 @@ void parse_add_command(char *add_command) > } > } > > +int is_deferred_add(char *name) > +{ > + int i; > + > + for (i = 0; i < deferred_add_index; ++i) > + if (!strcmp(name, deferred_add_names[i])) > + return 1; > + return 0; > +} > + > int is_deferred_skip(char *name) > { > int i; > @@ -6156,9 +6174,6 @@ void probe_sysfs(void) > int state; > char *sp; > > - if (!DO_BIC(BIC_sysfs)) > - return; > - > for (state = 10; state >= 0; --state) { > > sprintf(path, "/sys/devices/system/cpu/cpu%d/cpuidle/state%d/name", base_cpu, state); > @@ -6181,6 +6196,9 @@ void probe_sysfs(void) > > sprintf(path, "cpuidle/state%d/time", state); > > + if (!DO_BIC(BIC_sysfs) && !is_deferred_add(name_buf)) > + continue; > + > if (is_deferred_skip(name_buf)) > continue; > > @@ -6206,6 +6224,9 @@ void probe_sysfs(void) > > sprintf(path, "cpuidle/state%d/usage", state); > > + if (!DO_BIC(BIC_sysfs) && !is_deferred_add(name_buf)) > + continue; > + > if (is_deferred_skip(name_buf)) > continue; > > -- > 2.33.0 >