Received: by 2002:a05:6602:2086:0:0:0:0 with SMTP id a6csp3357367ioa; Tue, 26 Apr 2022 01:52:42 -0700 (PDT) X-Google-Smtp-Source: ABdhPJynYGxQoEHzjHakqXOEgbGssBTV7Z/A9OB1Bz2oJOJY1weVEQ35BLCc7EBE8JRjN9J+eKox X-Received: by 2002:a17:902:f2ca:b0:15d:180d:704 with SMTP id h10-20020a170902f2ca00b0015d180d0704mr8682764plc.102.1650963162210; Tue, 26 Apr 2022 01:52:42 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1650963162; cv=none; d=google.com; s=arc-20160816; b=fYVvpEhBPO5HvYNpYwafn7PeBpAEkOU/NeyUm1b8pjmFrG1TVk6adDHxpNe2Er2az8 i6vy3xGEn/ooQkrdm+GoHry+ppByZBNHys8dwYENi/hBZe+S7ZdJrLxEY/Fk4zSN5ziC hp+mUhih+mcwLO3AZvanYU4at2l9iRSu9agMp6IV9Kzq4D/4S3q87hhaXpn1dmi/MH/F LfBEnWEjwHjwcfG0a9cgiZqQLZQ/p3NGioicQ+e8jgyPYK9eqC32wg7uIxXvHyfkvaxs xZEp5oa7esSKioHxY+VZ/DWRf2nYVMps3vCt8Oc+pCTwKhK84UkkijTvCbr6p12t23vm DTqQ== 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 :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=IkXE3XzeLNs8Xejw5dNihFYE8cF1SYN/jYLaBFVN9IQ=; b=Q26+fPzXXW8r6YnSeVZKJc36fwvSqvE4+U59oZ1VoJ9bHKrABvoZSOvE6qPGqdPSpf azQPtS4qYsEkMCRnMMMelZZVKy530MUF5hb2AY0tpFlwDG9v24bRBRvlb1aadyxC2e+e ipay1ZwhB4UwWZeNysWJ8n3FC61PDgtwsn+YjFWfcU/fWFNlYxAWUa1SNBwAKWHRph9x EGDIxkTOU16LU1LEEya2OEDlzu1iC4qsAvp94UXtoq2/irEbspg2PfYIqXS9tCGOGj98 YfuNpNAXQSeAw6ToZtJa4l92YsGrEHEFSkg6fYtHp2EDEheyWopxOTW1hBKHy3dizILl rvxA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@amazon.com header.s=amazon201209 header.b=rVJ77i4d; 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=QUARANTINE sp=QUARANTINE dis=NONE) header.from=amazon.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id z6-20020a056a00240600b00505974f8b58si20415957pfh.307.2022.04.26.01.52.28; Tue, 26 Apr 2022 01:52:42 -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; dkim=pass header.i=@amazon.com header.s=amazon201209 header.b=rVJ77i4d; 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=QUARANTINE sp=QUARANTINE dis=NONE) header.from=amazon.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S241963AbiDZCCz (ORCPT + 99 others); Mon, 25 Apr 2022 22:02:55 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50388 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S241208AbiDZCCs (ORCPT ); Mon, 25 Apr 2022 22:02:48 -0400 Received: from smtp-fw-33001.amazon.com (smtp-fw-33001.amazon.com [207.171.190.10]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E241A120D3A; Mon, 25 Apr 2022 18:59:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amazon.com; i=@amazon.com; q=dns/txt; s=amazon201209; t=1650938383; x=1682474383; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=IkXE3XzeLNs8Xejw5dNihFYE8cF1SYN/jYLaBFVN9IQ=; b=rVJ77i4dv1jPXqS8/gP5XA8+7lrARqKjWC0om2hFPM7tgIt3UVBow7kR oZfJhJhHgX2fReRtof+ZQLZVg4QxAr35izi0C/uDzTQeUKfzdyQAXx59I dg3AxlQTkBoFUdGbpW8uLdUFO3CVa0a9X/Hp6qrYUtpdtzoWrIbDOZtKE 8=; X-IronPort-AV: E=Sophos;i="5.90,289,1643673600"; d="scan'208";a="190903486" Received: from iad12-co-svc-p1-lb1-vlan2.amazon.com (HELO email-inbound-relay-iad-1e-54c9d11f.us-east-1.amazon.com) ([10.43.8.2]) by smtp-border-fw-33001.sea14.amazon.com with ESMTP; 26 Apr 2022 01:59:40 +0000 Received: from EX13MTAUWB001.ant.amazon.com (iad12-ws-svc-p26-lb9-vlan2.iad.amazon.com [10.40.163.34]) by email-inbound-relay-iad-1e-54c9d11f.us-east-1.amazon.com (Postfix) with ESMTPS id F0849C0430; Tue, 26 Apr 2022 01:59:34 +0000 (UTC) Received: from EX13D02UWB002.ant.amazon.com (10.43.161.160) by EX13MTAUWB001.ant.amazon.com (10.43.161.249) with Microsoft SMTP Server (TLS) id 15.0.1497.32; Tue, 26 Apr 2022 01:59:34 +0000 Received: from EX13MTAUWB001.ant.amazon.com (10.43.161.207) by EX13D02UWB002.ant.amazon.com (10.43.161.160) with Microsoft SMTP Server (TLS) id 15.0.1497.32; Tue, 26 Apr 2022 01:59:34 +0000 Received: from dev-dsk-alisaidi-1d-b9a0e636.us-east-1.amazon.com (172.19.181.128) by mail-relay.amazon.com (10.43.161.249) with Microsoft SMTP Server id 15.0.1497.32 via Frontend Transport; Tue, 26 Apr 2022 01:59:33 +0000 Received: by dev-dsk-alisaidi-1d-b9a0e636.us-east-1.amazon.com (Postfix, from userid 5131138) id C362820D6; Tue, 26 Apr 2022 01:59:33 +0000 (UTC) From: Ali Saidi To: , , , , , CC: , , , , , , , , , , , , , , , Subject: [PATCH v6 4/5] perf arm-spe: Don't set data source if it's not a memory operation Date: Tue, 26 Apr 2022 01:59:25 +0000 Message-ID: <20220426015926.22011-5-alisaidi@amazon.com> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20220426015926.22011-1-alisaidi@amazon.com> References: <20220426015926.22011-1-alisaidi@amazon.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-Spam-Status: No, score=-12.5 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS,USER_IN_DEF_SPF_WL autolearn=ham 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 From: Leo Yan Except memory load and store operations, Arm SPE records also can support other operation types, bug when set the data source field the current code assumes a record is a either load operation or store operation, this leads to wrongly synthesize memory samples. This patch strictly checks the record operation type, it only sets data source only for the operation types ARM_SPE_LD and ARM_SPE_ST, otherwise, returns zero for data source. Therefore, we can synthesize memory samples only when data source is a non-zero value, the function arm_spe__is_memory_event() is useless and removed. Signed-off-by: Leo Yan Reviewed-by: Ali Saidi Tested-by: Ali Saidi --- tools/perf/util/arm-spe.c | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-) diff --git a/tools/perf/util/arm-spe.c b/tools/perf/util/arm-spe.c index d2b64e3f588b..76251825c01d 100644 --- a/tools/perf/util/arm-spe.c +++ b/tools/perf/util/arm-spe.c @@ -387,26 +387,16 @@ static int arm_spe__synth_instruction_sample(struct arm_spe_queue *speq, return arm_spe_deliver_synth_event(spe, speq, event, &sample); } -#define SPE_MEM_TYPE (ARM_SPE_L1D_ACCESS | ARM_SPE_L1D_MISS | \ - ARM_SPE_LLC_ACCESS | ARM_SPE_LLC_MISS | \ - ARM_SPE_REMOTE_ACCESS) - -static bool arm_spe__is_memory_event(enum arm_spe_sample_type type) -{ - if (type & SPE_MEM_TYPE) - return true; - - return false; -} - static u64 arm_spe__synth_data_source(const struct arm_spe_record *record) { union perf_mem_data_src data_src = { 0 }; if (record->op == ARM_SPE_LD) data_src.mem_op = PERF_MEM_OP_LOAD; - else + else if (record->op & ARM_SPE_ST) data_src.mem_op = PERF_MEM_OP_STORE; + else + return 0; if (record->type & (ARM_SPE_LLC_ACCESS | ARM_SPE_LLC_MISS)) { data_src.mem_lvl = PERF_MEM_LVL_L3; @@ -510,7 +500,11 @@ static int arm_spe_sample(struct arm_spe_queue *speq) return err; } - if (spe->sample_memory && arm_spe__is_memory_event(record->type)) { + /* + * When data_src is zero it means the record is not a memory operation, + * skip to synthesize memory sample for this case. + */ + if (spe->sample_memory && data_src) { err = arm_spe__synth_mem_sample(speq, spe->memory_id, data_src); if (err) return err; -- 2.32.0