Received: by 2002:a05:6500:2018:b0:1fb:9675:f89d with SMTP id t24csp243351lqh; Thu, 30 May 2024 23:00:46 -0700 (PDT) X-Forwarded-Encrypted: i=3; AJvYcCXbyCkCoXkR2dYRGcQEAZIUdBpwrD4QS7SvYZD84qYEO4MqhY3LrY/6n+R4AwKJR6juko1VN0sQ0NiNRDpcly9Jgi/PMxvHX6oZXbA8aA== X-Google-Smtp-Source: AGHT+IH6C7ZwlnaHu7ZzupkB/vVjCLPFnAWe8Jrqn4n+2BO20iW8eXu3ABhQ9q0ZvSK2HWbNH5/E X-Received: by 2002:a05:6870:f712:b0:22d:fa53:5695 with SMTP id 586e51a60fabf-2508bf10106mr1084944fac.25.1717135245629; Thu, 30 May 2024 23:00:45 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1717135245; cv=pass; d=google.com; s=arc-20160816; b=jlTArfyJKPCefGHsSihNcDZeONydZmSKRR4h+f9Mbsmhpn2w0HiUaSfAfJ+55diZPG 1a0FeOZ5uzE3gxcoL9wBnTaJjbCL2HlCxKcLWbnWBEHeGR6IjPSmgIfAXyketwSEwfkW pvxh5BMU9ova6iGPxdoQkf40/nc/yq4Kg3mBGcAHTGSDu+ZywOL467qR1C9WKK5gMvaT x8rvu7ApDekG8i14nLX2fRCjR+5T707HIxGrnDcxPR8g0QHdouORb1sUtw1YXNS6Mnht JYRBElvN7p0cohOa24bsM9a7wB83I0OKQaZPqgAB3CRYT7Qus8b+8jwmM88PM6MKVUgn a+Jw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:organization:mime-version :list-unsubscribe:list-subscribe:list-id:precedence:references :in-reply-to:message-id:date:subject:cc:to:from:dkim-signature; bh=AEH452ARZ8yWLY9+Ol/365SQ30Ehy6u5AZBbdFPjSZY=; fh=U6go9TgVfhaVn8TnsTwh7UQoqP4RUXu7+mrCNIc4gvk=; b=VfG/74KC5wzCGlrLPu6I8W/BvfGgYhSLKe8lKAWY2XgEJu+VLAu/zdXp1RffQBqxbf BlImVRol+XeLIG+LlzQVDfUjRvhz05J5siumzoFygJHJg2iaSLEUDfHgiq447K7k1D5o k865Uor1B/bNEQ0On2F9wYB04SsU5dy92pioCpgyrUaHxNpEcL5GkyfUsoBaXqmkOmdG g8TeWZRujU6Tf3B7ufKzrDceMOr2ojU1IuVAEvrJD7Q9SeThJ3AM1xXglqDTnJkuRBtY 3gnPrxVdF5WMGlPRuBM3QOOIFf02GEVCDRSFHLLLFiXE4KICnRTjfZbLQKMBCLYLDgzc IONg==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=XXfH+QC5; arc=pass (i=1 spf=pass spfdomain=intel.com dkim=pass dkdomain=intel.com dmarc=pass fromdomain=intel.com); spf=pass (google.com: domain of linux-kernel+bounces-196313-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:40f1:3f00::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-196313-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from sy.mirrors.kernel.org (sy.mirrors.kernel.org. [2604:1380:40f1:3f00::1]) by mx.google.com with ESMTPS id 41be03b00d2f7-6c35b40be05si923681a12.481.2024.05.30.23.00.45 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 30 May 2024 23:00:45 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel+bounces-196313-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:40f1:3f00::1 as permitted sender) client-ip=2604:1380:40f1:3f00::1; Authentication-Results: mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=XXfH+QC5; arc=pass (i=1 spf=pass spfdomain=intel.com dkim=pass dkdomain=intel.com dmarc=pass fromdomain=intel.com); spf=pass (google.com: domain of linux-kernel+bounces-196313-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:40f1:3f00::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-196313-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sy.mirrors.kernel.org (Postfix) with ESMTPS id 5E57EB24B84 for ; Fri, 31 May 2024 05:59:49 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 51DBC80BFE; Fri, 31 May 2024 05:58:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="XXfH+QC5" Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.10]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B98548005B; Fri, 31 May 2024 05:58:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=192.198.163.10 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717135110; cv=none; b=P/RLb0J6JYDnLloGx5irKdw8YAjCXWX2E0esSfUDXsneTh63kiyvjJ0sxCqE01v/uWijfEOKQ71nuPNkqTBPeArUKxMoj7n+34TyVn3zR3Q643/zaKArrACNTmNfusuv5o7zv0jILRFvWBNw/LnUVfq3QkmdQsd29JBXabMabYQ= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717135110; c=relaxed/simple; bh=yLo7e2jnNTwC3rGA545pSc7ksuRY6PkkDMMupSdl2pI=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=h8mEZyZZRXhNQH6iEf7tGaqO0JyCMyppoMTHf8lu9ht2ogRZmH8VMYf3viky+UJqyV0CydkF6OcIypgOGsCnpknSQRxuyrepaCfzjNvDoKIjn7NyyKJS83vFoKtmvei4Rxl5aa0zljhgJ3y2FhsGNV/rjVzEJe+NSukHr0mvGUQ= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=XXfH+QC5; arc=none smtp.client-ip=192.198.163.10 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1717135108; x=1748671108; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=yLo7e2jnNTwC3rGA545pSc7ksuRY6PkkDMMupSdl2pI=; b=XXfH+QC5XcBRx7Chv3KB+bSZYSoxmYwzCexIBFL4A4C8FbOLqYe/TgCt DD/zLwh1YREWR9ea01jTpny/nzFGi6UGNfLjbaQ8xXcFbnjXpeeoWrGOI gtjKhnqPiuZ53bytZePX1QWFz6sTO1MnOnWoDxb5ECWreMgUfrj+1NlBF QfD2NSnJe9h1NyM9zrdZ0mmp/TkerH3LIo93A8IQsnC6klVwEA4lImAra qxwUfX48pPFTHxe7yUCo7CipGO0JN7xTUhBe2RYPIRXAJ601k2XHsrUn8 KtaRWxmsuOrxI34gm10hNRo3s52oEVpJ9FdgRYHXfhHJU0WrbyrAqnqUZ g==; X-CSE-ConnectionGUID: dr7Ab4d7TfucRJkpohYoMA== X-CSE-MsgGUID: I1bq2196T5yJdMHVBmJrCA== X-IronPort-AV: E=McAfee;i="6600,9927,11088"; a="25068244" X-IronPort-AV: E=Sophos;i="6.08,203,1712646000"; d="scan'208";a="25068244" Received: from fmviesa005.fm.intel.com ([10.60.135.145]) by fmvoesa104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 30 May 2024 22:58:28 -0700 X-CSE-ConnectionGUID: BR2BNV5ZSdmiesDRKnKNTw== X-CSE-MsgGUID: MITOrr3UQ6S8wD8p/hPdqQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.08,203,1712646000"; d="scan'208";a="40510939" Received: from ahunter6-mobl1.ger.corp.intel.com (HELO localhost.localdomain) ([10.246.41.28]) by fmviesa005-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 30 May 2024 22:58:24 -0700 From: Adrian Hunter To: Peter Zijlstra Cc: Ingo Molnar , Mark Rutland , Alexander Shishkin , Heiko Carstens , Thomas Richter , Hendrik Brueckner , Suzuki K Poulose , Mike Leach , James Clark , coresight@lists.linaro.org, linux-arm-kernel@lists.infradead.org, Yicong Yang , Jonathan Cameron , Will Deacon , Arnaldo Carvalho de Melo , Jiri Olsa , Namhyung Kim , Ian Rogers , Andi Kleen , linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org Subject: [PATCH V7 07/12] perf tools: Add aux-action config term Date: Fri, 31 May 2024 08:57:26 +0300 Message-Id: <20240531055731.12541-8-adrian.hunter@intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240531055731.12541-1-adrian.hunter@intel.com> References: <20240531055731.12541-1-adrian.hunter@intel.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Organization: Intel Finland Oy, Registered Address: PL 281, 00181 Helsinki, Business Identity Code: 0357606 - 4, Domiciled in Helsinki Content-Transfer-Encoding: 8bit Add a new common config term "aux-action" to use for configuring AUX area trace pause / resume. The value is a string that will be parsed in a subsequent patch. Signed-off-by: Adrian Hunter Acked-by: Ian Rogers Reviewed-by: Andi Kleen --- Changes in V7: Add aux-action to perf_pmu__for_each_format tools/perf/util/evsel.c | 2 ++ tools/perf/util/evsel_config.h | 1 + tools/perf/util/parse-events.c | 10 ++++++++++ tools/perf/util/parse-events.h | 1 + tools/perf/util/parse-events.l | 1 + tools/perf/util/pmu.c | 1 + 6 files changed, 16 insertions(+) diff --git a/tools/perf/util/evsel.c b/tools/perf/util/evsel.c index 4f818ab6b662..434fbc331cd0 100644 --- a/tools/perf/util/evsel.c +++ b/tools/perf/util/evsel.c @@ -1007,6 +1007,8 @@ static void evsel__apply_config_terms(struct evsel *evsel, case EVSEL__CONFIG_TERM_AUX_OUTPUT: attr->aux_output = term->val.aux_output ? 1 : 0; break; + case EVSEL__CONFIG_TERM_AUX_ACTION: + break; case EVSEL__CONFIG_TERM_AUX_SAMPLE_SIZE: /* Already applied by auxtrace */ break; diff --git a/tools/perf/util/evsel_config.h b/tools/perf/util/evsel_config.h index aee6f808b512..af52a1516d0b 100644 --- a/tools/perf/util/evsel_config.h +++ b/tools/perf/util/evsel_config.h @@ -25,6 +25,7 @@ enum evsel_term_type { EVSEL__CONFIG_TERM_BRANCH, EVSEL__CONFIG_TERM_PERCORE, EVSEL__CONFIG_TERM_AUX_OUTPUT, + EVSEL__CONFIG_TERM_AUX_ACTION, EVSEL__CONFIG_TERM_AUX_SAMPLE_SIZE, EVSEL__CONFIG_TERM_CFG_CHG, }; diff --git a/tools/perf/util/parse-events.c b/tools/perf/util/parse-events.c index 6ed0f9c5581d..b8c97a0e7432 100644 --- a/tools/perf/util/parse-events.c +++ b/tools/perf/util/parse-events.c @@ -797,6 +797,7 @@ static const char *config_term_name(enum parse_events__term_type term_type) [PARSE_EVENTS__TERM_TYPE_DRV_CFG] = "driver-config", [PARSE_EVENTS__TERM_TYPE_PERCORE] = "percore", [PARSE_EVENTS__TERM_TYPE_AUX_OUTPUT] = "aux-output", + [PARSE_EVENTS__TERM_TYPE_AUX_ACTION] = "aux-action", [PARSE_EVENTS__TERM_TYPE_AUX_SAMPLE_SIZE] = "aux-sample-size", [PARSE_EVENTS__TERM_TYPE_METRIC_ID] = "metric-id", [PARSE_EVENTS__TERM_TYPE_RAW] = "raw", @@ -846,6 +847,7 @@ config_term_avail(enum parse_events__term_type term_type, struct parse_events_er case PARSE_EVENTS__TERM_TYPE_OVERWRITE: case PARSE_EVENTS__TERM_TYPE_DRV_CFG: case PARSE_EVENTS__TERM_TYPE_AUX_OUTPUT: + case PARSE_EVENTS__TERM_TYPE_AUX_ACTION: case PARSE_EVENTS__TERM_TYPE_AUX_SAMPLE_SIZE: case PARSE_EVENTS__TERM_TYPE_RAW: case PARSE_EVENTS__TERM_TYPE_LEGACY_CACHE: @@ -965,6 +967,9 @@ do { \ case PARSE_EVENTS__TERM_TYPE_AUX_OUTPUT: CHECK_TYPE_VAL(NUM); break; + case PARSE_EVENTS__TERM_TYPE_AUX_ACTION: + CHECK_TYPE_VAL(STR); + break; case PARSE_EVENTS__TERM_TYPE_AUX_SAMPLE_SIZE: CHECK_TYPE_VAL(NUM); if (term->val.num > UINT_MAX) { @@ -1082,6 +1087,7 @@ static int config_term_tracepoint(struct perf_event_attr *attr, case PARSE_EVENTS__TERM_TYPE_OVERWRITE: case PARSE_EVENTS__TERM_TYPE_NOOVERWRITE: case PARSE_EVENTS__TERM_TYPE_AUX_OUTPUT: + case PARSE_EVENTS__TERM_TYPE_AUX_ACTION: case PARSE_EVENTS__TERM_TYPE_AUX_SAMPLE_SIZE: return config_term_common(attr, term, err); case PARSE_EVENTS__TERM_TYPE_USER: @@ -1217,6 +1223,9 @@ do { \ ADD_CONFIG_TERM_VAL(AUX_OUTPUT, aux_output, term->val.num ? 1 : 0, term->weak); break; + case PARSE_EVENTS__TERM_TYPE_AUX_ACTION: + ADD_CONFIG_TERM_STR(AUX_ACTION, term->val.str, term->weak); + break; case PARSE_EVENTS__TERM_TYPE_AUX_SAMPLE_SIZE: ADD_CONFIG_TERM_VAL(AUX_SAMPLE_SIZE, aux_sample_size, term->val.num, term->weak); @@ -1279,6 +1288,7 @@ static int get_config_chgs(struct perf_pmu *pmu, struct parse_events_terms *head case PARSE_EVENTS__TERM_TYPE_DRV_CFG: case PARSE_EVENTS__TERM_TYPE_PERCORE: case PARSE_EVENTS__TERM_TYPE_AUX_OUTPUT: + case PARSE_EVENTS__TERM_TYPE_AUX_ACTION: case PARSE_EVENTS__TERM_TYPE_AUX_SAMPLE_SIZE: case PARSE_EVENTS__TERM_TYPE_METRIC_ID: case PARSE_EVENTS__TERM_TYPE_RAW: diff --git a/tools/perf/util/parse-events.h b/tools/perf/util/parse-events.h index e13de2c8b706..d0e253f127a8 100644 --- a/tools/perf/util/parse-events.h +++ b/tools/perf/util/parse-events.h @@ -74,6 +74,7 @@ enum parse_events__term_type { PARSE_EVENTS__TERM_TYPE_DRV_CFG, PARSE_EVENTS__TERM_TYPE_PERCORE, PARSE_EVENTS__TERM_TYPE_AUX_OUTPUT, + PARSE_EVENTS__TERM_TYPE_AUX_ACTION, PARSE_EVENTS__TERM_TYPE_AUX_SAMPLE_SIZE, PARSE_EVENTS__TERM_TYPE_METRIC_ID, PARSE_EVENTS__TERM_TYPE_RAW, diff --git a/tools/perf/util/parse-events.l b/tools/perf/util/parse-events.l index 16045c383ada..31b6e028fee3 100644 --- a/tools/perf/util/parse-events.l +++ b/tools/perf/util/parse-events.l @@ -328,6 +328,7 @@ overwrite { return term(yyscanner, PARSE_EVENTS__TERM_TYPE_OVERWRITE); } no-overwrite { return term(yyscanner, PARSE_EVENTS__TERM_TYPE_NOOVERWRITE); } percore { return term(yyscanner, PARSE_EVENTS__TERM_TYPE_PERCORE); } aux-output { return term(yyscanner, PARSE_EVENTS__TERM_TYPE_AUX_OUTPUT); } +aux-action { return term(yyscanner, PARSE_EVENTS__TERM_TYPE_AUX_ACTION); } aux-sample-size { return term(yyscanner, PARSE_EVENTS__TERM_TYPE_AUX_SAMPLE_SIZE); } metric-id { return term(yyscanner, PARSE_EVENTS__TERM_TYPE_METRIC_ID); } cpu-cycles|cycles { return hw_term(yyscanner, PERF_COUNT_HW_CPU_CYCLES); } diff --git a/tools/perf/util/pmu.c b/tools/perf/util/pmu.c index 6599599db2b1..ff8043449166 100644 --- a/tools/perf/util/pmu.c +++ b/tools/perf/util/pmu.c @@ -1704,6 +1704,7 @@ int perf_pmu__for_each_format(struct perf_pmu *pmu, void *state, pmu_format_call "no-overwrite", "percore", "aux-output", + "aux-action=(pause|resume|start-paused)", "aux-sample-size=number", }; struct perf_pmu_format *format; -- 2.34.1