From nobody Fri Dec 19 11:00:25 2025 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 3526823ED70; Mon, 17 Feb 2025 19:59:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=217.140.110.172 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739822386; cv=none; b=h8NoKzh51bCGKBAhWh0JthlVUB3EOzUCPZQxKBv88OAEt/Ho4yJzMo6ROQrVJaI8wMnLbeUBT8YbQkdjyykegYYiUUaoqKfpWM2+0rcmhwg5mVykemuolGhTlNkvwEhYFAEcaDD6Qf/CnE5xheGVWTWoS1+NK7uvelalvK2XnRs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739822386; c=relaxed/simple; bh=JmX+pNnBd5ujLMKBhz0/lK6qpXQCaVTMEgH07jU7nww=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=OBFeGsFFiOqoPrr4LTdFQTEsW848SvcNiY7UurvZUpTLIhNiTn7AQke5mjqVZwXqPS78xe+fvvuAbAAvUphYuD7tTkTaWy5QK5yhTySzsE5GJkeF2NGQA9dSFR0iEE0fF5NLh+UURMmgMscKSXISxTaYNIReoQG7TQdfZKu3BDA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=arm.com; spf=pass smtp.mailfrom=arm.com; arc=none smtp.client-ip=217.140.110.172 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=arm.com Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id F371A152B; Mon, 17 Feb 2025 12:00:03 -0800 (PST) Received: from e132581.cambridge.arm.com (e132581.arm.com [10.2.76.71]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 7B0A63F6A8; Mon, 17 Feb 2025 11:59:42 -0800 (PST) From: Leo Yan To: Arnaldo Carvalho de Melo , Namhyung Kim , Ian Rogers , James Clark , Mike Leach , Mark Rutland , Alexander Shishkin , Jiri Olsa , Adrian Hunter , "Liang, Kan" , Will Deacon , Graham Woodward , Paschalis.Mpeis@arm.com, linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org Cc: Leo Yan Subject: [PATCH v3 10/12] perf arm-spe: Set sample flags with supplement info Date: Mon, 17 Feb 2025 19:59:06 +0000 Message-Id: <20250217195908.176207-11-leo.yan@arm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250217195908.176207-1-leo.yan@arm.com> References: <20250217195908.176207-1-leo.yan@arm.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Based on the supplement information in the record, this commit sets the sample flags for conditional branch, function call, return. It also sets events in flags, such as mispredict, not taken, and in transaction. Reviewed-by: Ian Rogers Reviewed-by: James Clark Signed-off-by: Leo Yan --- tools/perf/util/arm-spe.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/tools/perf/util/arm-spe.c b/tools/perf/util/arm-spe.c index 0e8e05c87fd7..daecf9e1017a 100644 --- a/tools/perf/util/arm-spe.c +++ b/tools/perf/util/arm-spe.c @@ -484,6 +484,26 @@ static void arm_spe__sample_flags(struct arm_spe_queue= *speq) =20 if (record->type & ARM_SPE_BRANCH_MISS) speq->flags |=3D PERF_IP_FLAG_BRANCH_MISS; + + if (record->type & ARM_SPE_BRANCH_NOT_TAKEN) + speq->flags |=3D PERF_IP_FLAG_NOT_TAKEN; + + if (record->type & ARM_SPE_IN_TXN) + speq->flags |=3D PERF_IP_FLAG_IN_TX; + + if (record->op & ARM_SPE_OP_BR_COND) + speq->flags |=3D PERF_IP_FLAG_CONDITIONAL; + + if (record->op & ARM_SPE_OP_BR_CR_BL) + speq->flags |=3D PERF_IP_FLAG_CALL; + else if (record->op & ARM_SPE_OP_BR_CR_RET) + speq->flags |=3D PERF_IP_FLAG_RETURN; + /* + * Indirect branch instruction without link (e.g. BR), + * take it as a function return. + */ + else if (record->op & ARM_SPE_OP_BR_INDIRECT) + speq->flags |=3D PERF_IP_FLAG_RETURN; } } =20 --=20 2.34.1