Received: by 2002:a05:6a10:6d10:0:0:0:0 with SMTP id gq16csp2283756pxb; Sun, 24 Apr 2022 09:52:41 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzZt+E7bkfCQ1+tGCAZdDiUuXeorcJ5VscdHU5D+sJFl3aDzto/9zu186xiw7rx8IOxVunj X-Received: by 2002:a05:6402:268c:b0:423:ec54:6fec with SMTP id w12-20020a056402268c00b00423ec546fecmr15206428edd.151.1650819160829; Sun, 24 Apr 2022 09:52:40 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1650819160; cv=none; d=google.com; s=arc-20160816; b=EQxN11FlwPwNpbeOqlypsYl9+GH8r+onolw8tmm2Y/FN7rsgGvgR6pXzAQGJsb8zl2 fDBbVCqPXdQxftXPYeNoUjcx3vW9aLxihUoI1KrvqOKqNNFzCI2+4A2au2q66axR50E+ VEZ095i8srHzUtDafheVI2P8zohkLvwUQEx8UO3EhXCGpDxJ8r3oJDfsHsCT3H0M8KVP 9//j6sgJBnVLkIc1VTIz28Ks0CHYQDkq6zOGc7EuQO6goFD/5gd2CeXgAdTeddmgNkXZ vgW58Z/8kAsa4DqMZ53eU4XZthSIh7vkCaXkBqAUGoMUdXXG1kHGD/EHjo0EkBuPfSAH RDvw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-disposition:mime-version :references:message-id:subject:cc:to:from:date:dkim-signature; bh=xiS7jXTGQnjBRoWj5ugUGTqfRqlbiuFUwXWLNi1EeJU=; b=A8oBnEoa4fRkLMq6OrxgPYx4Dtiz24AJpiAT0QBXn0ogtysJ5rAYgdJGbGPoFGOCNY wZy9px+CO3940S/9P6sjax4SpPtVEwrWA2b9EN5ojFWuACOGAE3Zm5onh1iYQJQUMMC9 o3Qk/rKxUkj4hpmzP1fv7uEQIT2U1DjoULp6xYqXJB4AYnIPSJzgX6BS0F5BCjvdlHxe FdsXQnxRQmEwwVifh/WKEKT4pnlSs9GGcQYn49SkULcnHb8c/ucAugcK4MzgXCq6uSuo Iv/FasIR+GEtbn1LRk7yQZCfMcaXrf+8wGNI2NgASkNzX+IuzDdes0YGZTiSiHZP3U1t y/gA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b="SoA9P8/6"; 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=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id e22-20020a170906c01600b006e0660cefcbsi11805797ejz.356.2022.04.24.09.52.17; Sun, 24 Apr 2022 09:52:40 -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=@linaro.org header.s=google header.b="SoA9P8/6"; 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=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231205AbiDXNDE (ORCPT + 99 others); Sun, 24 Apr 2022 09:03:04 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36368 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230198AbiDXNDC (ORCPT ); Sun, 24 Apr 2022 09:03:02 -0400 Received: from mail-ed1-x52f.google.com (mail-ed1-x52f.google.com [IPv6:2a00:1450:4864:20::52f]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6EEFA15A09 for ; Sun, 24 Apr 2022 06:00:00 -0700 (PDT) Received: by mail-ed1-x52f.google.com with SMTP id k27so352265edk.4 for ; Sun, 24 Apr 2022 06:00:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to; bh=xiS7jXTGQnjBRoWj5ugUGTqfRqlbiuFUwXWLNi1EeJU=; b=SoA9P8/6lxB7hLukKtbzsp9CZjR0hxa/1dGYCHYuHry7e1fzAxQ6TYBM8js3bDZUdT iOm61Ysfp+VWCcf+9mqf0kUzLrJUYw7YuJ15uXa1Qg/j5yGudMfYL9/jYojurUwjC/PT EF4eq9ZGJxtYkojhD+sVMg2nwuFOqrgxJSR6D5TaQWwjSD288Y4Ge6oKuMs4n8E7w6aM xlBuR90SsvtbwqDUVbaqEvYNuhXy9uc6zPZnL2UfwXO7tlG42uwMzk9iwiMgihzm2CQo Q3x7R66oab/+2CtRiaVN33ycNZmpYEmz8Y7GZZ01aEkb9YareOofyAESNR8hK7Nytuwx horA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to; bh=xiS7jXTGQnjBRoWj5ugUGTqfRqlbiuFUwXWLNi1EeJU=; b=o8Mi9jhJnln2d20TTieAViwRLDSNqiqqI4ViWbCZbY8OcfNmH55kD8aPgNv+VmSK42 NyznSEtpKMOIEIRZhHQ0xvf2q4gYn0l1pfckucPZ6VrOh6/K7xd+oZAg+m37NjDZFXrY KlT8HBSETdAkslYOWdbUl2bkgsaEvXcIXkZFXgaynH6mOEvpETk9rlpGN1VCJ/l22kk0 kz2HmeaijvY19MRtaZv56snNxKTujLEbW4x2bt1639otGHA6wNxIVDVhmIvQK7G8BTjZ 4p3rO4uFF+r4wYE8B9YWCSZyqNoUTetUacwKpU8AZ/vMEX/OldQ3RKTMGY6xv3yWsRFW yaNw== X-Gm-Message-State: AOAM533HaMzmYTeXf6wrZbCTsg0wMMoUs4sALwFB8pDpJKhzh53p3Fdl 2YoFlHIUOPoogn1BGm4hruo3+g== X-Received: by 2002:a05:6402:2985:b0:425:d51f:ae4 with SMTP id eq5-20020a056402298500b00425d51f0ae4mr6102711edb.379.1650805198838; Sun, 24 Apr 2022 05:59:58 -0700 (PDT) Received: from leoy-ThinkPad-X240s ([104.245.96.34]) by smtp.gmail.com with ESMTPSA id y14-20020a056402440e00b00416046b623csm3408984eda.2.2022.04.24.05.59.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 24 Apr 2022 05:59:58 -0700 (PDT) Date: Sun, 24 Apr 2022 20:59:51 +0800 From: Leo Yan To: Timothy Hayes Cc: linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, acme@kernel.org, John Garry , Will Deacon , Mathieu Poirier , Mark Rutland , Alexander Shishkin , Jiri Olsa , Namhyung Kim , Martin KaFai Lau , Song Liu , Yonghong Song , John Fastabend , KP Singh , linux-arm-kernel@lists.infradead.org, netdev@vger.kernel.org, bpf@vger.kernel.org Subject: Re: [PATCH 2/3] perf: arm-spe: Fix SPE events with phys addresses Message-ID: <20220424125951.GD978927@leoy-ThinkPad-X240s> References: <20220421165205.117662-1-timothy.hayes@arm.com> <20220421165205.117662-3-timothy.hayes@arm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20220421165205.117662-3-timothy.hayes@arm.com> X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=unavailable 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 Hi Timothy, On Thu, Apr 21, 2022 at 05:52:04PM +0100, Timothy Hayes wrote: > This patch corrects a bug whereby SPE collection is invoked with > pa_enable=1 but synthesized events fail to show physical addresses. > > Signed-off-by: Timothy Hayes > --- > tools/perf/arch/arm64/util/arm-spe.c | 10 ++++++++++ > tools/perf/util/arm-spe.c | 3 ++- > 2 files changed, 12 insertions(+), 1 deletion(-) > > diff --git a/tools/perf/arch/arm64/util/arm-spe.c b/tools/perf/arch/arm64/util/arm-spe.c > index af4d63af8072..e8b577d33e53 100644 > --- a/tools/perf/arch/arm64/util/arm-spe.c > +++ b/tools/perf/arch/arm64/util/arm-spe.c > @@ -148,6 +148,7 @@ static int arm_spe_recording_options(struct auxtrace_record *itr, > bool privileged = perf_event_paranoid_check(-1); > struct evsel *tracking_evsel; > int err; > + u64 bit; > > sper->evlist = evlist; > > @@ -245,6 +246,15 @@ static int arm_spe_recording_options(struct auxtrace_record *itr, > */ > evsel__set_sample_bit(arm_spe_evsel, DATA_SRC); > > + /* > + * The PHYS_ADDR flag does not affect the driver behaviour, it is used to > + * inform that the resulting output's SPE samples contain physical addresses > + * where applicable. > + */ > + bit = perf_pmu__format_bits(&arm_spe_pmu->format, "pa_enable"); > + if (arm_spe_evsel->core.attr.config & bit) > + evsel__set_sample_bit(arm_spe_evsel, PHYS_ADDR); > + > /* Add dummy event to keep tracking */ > err = parse_events(evlist, "dummy:u", NULL); > if (err) > diff --git a/tools/perf/util/arm-spe.c b/tools/perf/util/arm-spe.c > index 151cc38a171c..1a80151baed9 100644 > --- a/tools/perf/util/arm-spe.c > +++ b/tools/perf/util/arm-spe.c > @@ -1033,7 +1033,8 @@ arm_spe_synth_events(struct arm_spe *spe, struct perf_session *session) > memset(&attr, 0, sizeof(struct perf_event_attr)); > attr.size = sizeof(struct perf_event_attr); > attr.type = PERF_TYPE_HARDWARE; > - attr.sample_type = evsel->core.attr.sample_type & PERF_SAMPLE_MASK; > + attr.sample_type = evsel->core.attr.sample_type & > + (PERF_SAMPLE_MASK | PERF_SAMPLE_PHYS_ADDR); I verified this patch and I can confirm the physical address can be dumped successfully. I have a more general question, seems to me, we need to change the macro PERF_SAMPLE_MASK in the file util/event.h as below, so here doesn't need to 'or' the flag PERF_SAMPLE_PHYS_ADDR anymore. @Arnaldo, @Jiri, could you confirm if this is the right way to move forward? I am not sure why PERF_SAMPLE_MASK doesn't contain the bit PERF_SAMPLE_PHYS_ADDR in current code. diff --git a/tools/perf/util/event.h b/tools/perf/util/event.h index cdd72e05fd28..c905ac32ebad 100644 --- a/tools/perf/util/event.h +++ b/tools/perf/util/event.h @@ -39,7 +39,7 @@ struct perf_event_attr; PERF_SAMPLE_TIME | PERF_SAMPLE_ADDR | \ PERF_SAMPLE_ID | PERF_SAMPLE_STREAM_ID | \ PERF_SAMPLE_CPU | PERF_SAMPLE_PERIOD | \ - PERF_SAMPLE_IDENTIFIER) + PERF_SAMPLE_IDENTIFIER | PERF_SAMPLE_PHYS_ADDR) Thanks, Leo > attr.sample_type |= PERF_SAMPLE_IP | PERF_SAMPLE_TID | > PERF_SAMPLE_PERIOD | PERF_SAMPLE_DATA_SRC | > PERF_SAMPLE_WEIGHT | PERF_SAMPLE_ADDR; > -- > 2.25.1 >