Received: by 2002:a05:6a10:d5a5:0:0:0:0 with SMTP id gn37csp4253500pxb; Mon, 4 Oct 2021 21:56:01 -0700 (PDT) X-Google-Smtp-Source: ABdhPJydCpwma1OUj7p1h0XTBihq9qqnUZpdvDK75JZigzLKCwaMGbA9Mbl2PYtnwI7CH1iv2jpi X-Received: by 2002:aa7:9f46:0:b0:44c:7912:9b2e with SMTP id h6-20020aa79f46000000b0044c79129b2emr2585079pfr.11.1633409761469; Mon, 04 Oct 2021 21:56:01 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1633409761; cv=none; d=google.com; s=arc-20160816; b=xKTAYFZydihwiz8w4MKVN7e7B0HuGafT3gPkYe373xtIysklDY8lIMqwKMXUpKTnpK umhjwM+3S9qHCC1vLJvg1PrAqUYLUbE3ViD6yKsIbtH8ZCFpfHDGT23IPCOzo7tUEjWx A3wF0TA2pE57mbr0Q3TyLdysjB4tHQPIVWQEJ3l+PwyCmP7XgEOT7YWRtOz/rTcCyykw MjTRHoKYS5FLFDKplLMKdNaHdmI1E3RG0bNHXtFWf4zbz4XqjQLa7xVEcZ1mKLHZO23W 6RAk+cMBuvXWZbu/ZMUswbLBynbBzQp0pQxCW844q9Gj+fKwzWUgmU4HKQyTzTMbk3Je qBaw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=/9KVS503ubd0o0fKwUpqCErKIOfbGbeMs1zB/nt5caU=; b=NxrEsu48Lw6zlGxLptwFJfu9eR/ot1EtA/QphJXsE0dFOZ6+n7VVB/UiuFm0x/Z0yT qvKVIQYgFjW1tsfOn+FcnDjOlohIG4Y3lAYJ2tHEC6JGGBL+Oexl82TsRZo49R9+6LIX 2Cxy143nuMmAhEWxkPTBNQRQQ8EvNcmptXNR3UIqCtgOMXEzAdeFaTRHWnSG+1VJehLX RBl3VxHFTPa5PI04A4JavgfO8j0qUXLfu2so/zmTzc+C3gQfNX8I1g7Yv5NuCOolBh5y TCLRdejWma1na0SVR6Mf4jODI26D3xFOLmQ9Xtyt8OGEWpolAtXsuq3EGl/AqhA4N7Fn I+qw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=A5krXoDt; 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=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id e4si21346383pgm.562.2021.10.04.21.55.47; Mon, 04 Oct 2021 21:56:01 -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=@gmail.com header.s=20210112 header.b=A5krXoDt; 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=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231559AbhJEE4q (ORCPT + 99 others); Tue, 5 Oct 2021 00:56:46 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51974 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229812AbhJEE4p (ORCPT ); Tue, 5 Oct 2021 00:56:45 -0400 Received: from mail-pg1-x533.google.com (mail-pg1-x533.google.com [IPv6:2607:f8b0:4864:20::533]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1973FC061745; Mon, 4 Oct 2021 21:54:56 -0700 (PDT) Received: by mail-pg1-x533.google.com with SMTP id v11so6057195pgb.8; Mon, 04 Oct 2021 21:54:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=/9KVS503ubd0o0fKwUpqCErKIOfbGbeMs1zB/nt5caU=; b=A5krXoDt/X5DXz9f45jF//bjWC5nPtk+g0xzZ3sYmElgKnFoGdqNV7rX3ctIXQR6fg IfIUAsVHf1lrsy7jFAcJ4LHR2W4ImUREn94vpfN2ZpFf/xB0TNQhUHoDQitdalAgGf3u JM/rd5XvASAdminE7aZl2Unpi5n2L76OzmCGgc19JJ3+YsBbd0KTxXJUWtTYzU6d0soP 6uVwiad8569ATbK0YIw4IQd8BSZWFE1ni34adZvklvSnjajmbyTFjq3ZsTulhZDGEmLE Dg1yEs9VkDY2M+mfbO2y2L8pkdeL7ZFEI0SNbmjZttOykXlZ83ugLTnaRy/LDmrcaSpf 5qSw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=/9KVS503ubd0o0fKwUpqCErKIOfbGbeMs1zB/nt5caU=; b=3ihdmF3BtskNVOqlGAwDhcHruagQimtOE5ES4x1n6za+a6PyyEOWqt/toZMjz85rf2 x1TIYTwNO0b8dcGnt5tuJAlwdgBIbctvQJzNFtwtTHhALy4hplLBHfet0TqazhcrZ3l0 sdfUv2LDjv0c3PbWeBXjLg8zZL2GsjFc4jnoENcN/CxmIdFZliryuHoOFh8oAdhSB24o dBHIjW71NAcWc9TSUlDUURRH7c94gq1t++trdelBIxsT+YzlEYN6WHjtHa16HUupXl0+ Krfe9Dkpfs5OMZUjpJsGJ26mPMSl07bBxZP6xkEdQ6l36fyvXVwU9OZdLHTARQhVDx9V 7Slg== X-Gm-Message-State: AOAM530xCC+Lcy29r/MU8PCd1IuuTDtw+/0kBQFaPVe1lhPk878i5y/h 6zflW1it9MERF18kWYRxIt8g7XeSv7DdZQ== X-Received: by 2002:a63:205:: with SMTP id 5mr14249449pgc.433.1633409695309; Mon, 04 Oct 2021 21:54:55 -0700 (PDT) Received: from unconquered.home.aehallh.com (24-113-252-168.wavecable.com. [24.113.252.168]) by smtp.gmail.com with ESMTPSA id q18sm19554786pfj.46.2021.10.04.21.54.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 04 Oct 2021 21:54:54 -0700 (PDT) From: "Zephaniah E. Loss-Cutler-Hull" To: linux-pm@vger.kernel.org Cc: linux-kernel@vger.kernel.org, "Zephaniah E. Loss-Cutler-Hull" Subject: [PATCH 1/2] tools/power turbostat: Allow -e for all names. Date: Mon, 4 Oct 2021 21:54:38 -0700 Message-Id: <20211005045439.1430114-1-zephaniah@gmail.com> X-Mailer: git-send-email 2.33.0 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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 --- 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