Received: by 2002:a05:6a10:8c0a:0:0:0:0 with SMTP id go10csp5610102pxb; Tue, 16 Feb 2021 03:05:46 -0800 (PST) X-Google-Smtp-Source: ABdhPJyVaLrbRcR3Jc7H67eZ7jp+OEs7VC5d9k4mnoeldo5vq/P8+liTynzZkpw6Jmd2OdjP6mvX X-Received: by 2002:a50:e183:: with SMTP id k3mr10428269edl.45.1613473546208; Tue, 16 Feb 2021 03:05:46 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1613473546; cv=none; d=google.com; s=arc-20160816; b=toXIoBg68mMiQDFe2UJvsSdzYS0CWunkfyPl+MfDq18Z9o3C3BOIopr/lkBXo9ImYt +h6KpOsHWx3bkrVJ8ItJCemwgp5AGupYl6Ts9HtD57cGl1Ght+6DQylYGnSP8eYx/AVB 6kFbF4xeQBiZMEFw/7PLdhdcYk2yPAplLz5HGL5qKaEETdKhOXWuhFjgtHRLxHCQYoQ6 UgEQGJmLCIZbUbzrYT3tdAsE4/EL6+lAsve47LojVJa8QwEbr1OH7WmF535X8MfDKezG yA0eHFWDmu06Zw7J23BXsTS9/D0pXEWte/PHaGPha7iHbScJF4a1OpTnpLzuqX7t8POs 1reQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=sjN8h0Lq9pxA6RJZZiyWtoX7vFzVnZh+87crvRiJkT8=; b=URiuVcmm4i8qjXK4wiD9NDGFq0Fofuu+fZfdvafnL6pbjEJZ+e54Bzbff/15qYHGBk n/f6x/wdCb12hfzu3GR3VjM2QlGWCFUvp93PxiEAFnGSgT3jkinp4Pak0/P65ZlQgYiO aPxj+8+Gg40zdcy/bLn9rbJ6X03ZOT4U0FuVtH0K0mVFJp5znuJibMZIc/J5n9pPmxXS Ju5U2XC8gPfIHiEHogfA+8XR6Bh5qx0ac3cudMLtWrwMgjt7cfjcLaot8Cj7FVUhfIQh um6x+H33fGjf4t+h7PDsaOzvyzwe9K7BkOHzj7Jae0MDhNo6b+CClc/JFMIflDAbzC7G co1A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=YoNysm9i; 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=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id q6si6452537edw.272.2021.02.16.03.05.23; Tue, 16 Feb 2021 03:05:46 -0800 (PST) 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=@linaro.org header.s=google header.b=YoNysm9i; 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=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229830AbhBPLEm (ORCPT + 99 others); Tue, 16 Feb 2021 06:04:42 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:35594 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229889AbhBPLCe (ORCPT ); Tue, 16 Feb 2021 06:02:34 -0500 Received: from mail-wm1-x32e.google.com (mail-wm1-x32e.google.com [IPv6:2a00:1450:4864:20::32e]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id EB097C0613D6 for ; Tue, 16 Feb 2021 03:01:53 -0800 (PST) Received: by mail-wm1-x32e.google.com with SMTP id l17so8783918wmq.2 for ; Tue, 16 Feb 2021 03:01:53 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=sjN8h0Lq9pxA6RJZZiyWtoX7vFzVnZh+87crvRiJkT8=; b=YoNysm9iOjRmdiiS0WnN2CMZZmueOAasEOrrwh6PGwLba76jz/Dk9HaZimomKWck4a qP4QhyKhDIOZBUqC104tO/r8ZtuPUG/9hyRQDZ9/QUz2OiRLkMT8PXmvwEfgLX7agXck urN0Pm08ELmLmlvc/hI7gKe3y490jNMOCJk8b41SPaCHyoE74Pi3DUQmq/hmtapXOjjs vqwpd3ABa8eCLCP1A6hTs/OXdzh99HSLnP5pIgsGXd1XHm/DXH1t3dTnXk55txIqxOb1 8tQ/B7PyIcBIJkujwIKZV0+lU/Kr+XQijqHm3LIGr0kxb6jhR5WFvPaB83oJNOkkwv7n PukA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=sjN8h0Lq9pxA6RJZZiyWtoX7vFzVnZh+87crvRiJkT8=; b=pvCY/j4A75O3dfNT/iPnY+YT6C1hO2V+pAxmdQAd04fIU8p8HJjGtqXwLFIGrugXs2 eBNIFgt3KtjD9lDHRhw2S7yGbP6Z29O18tzrogIAXfPHMS06L5FbtWnMIc53bgz4xRc5 C54LfxNGet9y8EyIeiG2A0LrojbiE77H4N1V1T6oDxAuuXgZE6ZwAfc9M04c8qbDje/2 PmDNGW4OT5FUhRuUXfVzsynA9t4VLmEjhafED6m52P82BOtUEPHbPZ/SQb8vXQi1y297 qJ/1Q81Wc44vkUWZ0R0lWHFiiOPOw3XjnSeKJyHlzpgvUik8MJoKSacisorm26X0TXRu izag== X-Gm-Message-State: AOAM531Vz+7DDGj1JuQx4dIjLMt8a2YstaDQHGrCaFW6LSHgxRIUQyeC GyZGwtSXE7VUjDRWBGKtHHLR+manzIBBUYUx1WSc7w== X-Received: by 2002:a1c:9d51:: with SMTP id g78mr2745742wme.5.1613473312619; Tue, 16 Feb 2021 03:01:52 -0800 (PST) MIME-Version: 1.0 References: <1611737738-1493-1-git-send-email-anshuman.khandual@arm.com> <1611737738-1493-15-git-send-email-anshuman.khandual@arm.com> In-Reply-To: <1611737738-1493-15-git-send-email-anshuman.khandual@arm.com> From: Mike Leach Date: Tue, 16 Feb 2021 11:01:42 +0000 Message-ID: Subject: Re: [PATCH V3 14/14] coresight: etm-perf: Add support for trace buffer format To: Anshuman Khandual Cc: linux-arm-kernel , Coresight ML , Mathieu Poirier , "Suzuki K. Poulose" , Linu Cherian , Linux Kernel Mailing List , Peter Zijlstra , Leo Yan Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, 27 Jan 2021 at 08:56, Anshuman Khandual wrote: > > From: Suzuki K Poulose > > CoreSight PMU supports aux-buffer for the ETM tracing. The trace > generated by the ETM (associated with individual CPUs, like Intel PT) > is captured by a separate IP (CoreSight TMC-ETR/ETF until now). > > The TMC-ETR applies formatting of the raw ETM trace data, as it > can collect traces from multiple ETMs, with the TraceID to indicate > the source of a given trace packet. > > Arm Trace Buffer Extension is new "sink" IP, attached to individual > CPUs and thus do not provide additional formatting, like TMC-ETR. > > Additionally, a system could have both TRBE *and* TMC-ETR for > the trace collection. e.g, TMC-ETR could be used as a single > trace buffer to collect data from multiple ETMs to correlate > the traces from different CPUs. It is possible to have a > perf session where some events end up collecting the trace > in TMC-ETR while the others in TRBE. Thus we need a way > to identify the type of the trace for each AUX record. > > Define the trace formats exported by the CoreSight PMU. > We don't define the flags following the "ETM" as this > information is available to the user when issuing > the session. What is missing is the additional > formatting applied by the "sink" which is decided > at the runtime and the user may not have a control on. > > So we define : > - CORESIGHT format (indicates the Frame format) > - RAW format (indicates the format of the source) > > The default value is CORESIGHT format for all the records > (i,e == 0). Add the RAW format for the TRBE sink driver. > > Cc: Peter Zijlstra > Cc: Mike Leach > Cc: Mathieu Poirier > Cc: Leo Yan > Cc: Anshuman Khandual > Signed-off-by: Suzuki K Poulose > Signed-off-by: Anshuman Khandual > --- > drivers/hwtracing/coresight/coresight-trbe.c | 2 ++ > include/uapi/linux/perf_event.h | 4 ++++ > 2 files changed, 6 insertions(+) > > diff --git a/drivers/hwtracing/coresight/coresight-trbe.c b/drivers/hwtracing/coresight/coresight-trbe.c > index 1464d8b..7c0e691 100644 > --- a/drivers/hwtracing/coresight/coresight-trbe.c > +++ b/drivers/hwtracing/coresight/coresight-trbe.c > @@ -511,6 +511,7 @@ static unsigned long arm_trbe_update_buffer(struct coresight_device *csdev, > if (cpudata->mode != CS_MODE_PERF) > return -EINVAL; > > + perf_aux_output_flag(handle, PERF_AUX_FLAG_CORESIGHT_FORMAT_RAW); > /* > * If the TRBE was disabled due to lack of space in the AUX buffer or a > * spurious fault, the driver leaves it disabled, truncating the buffer. > @@ -606,6 +607,7 @@ static void trbe_handle_overflow(struct perf_output_handle *handle) > size = offset - PERF_IDX2OFF(handle->head, buf); > if (buf->snapshot) > handle->head = offset; > + perf_aux_output_flag(handle, PERF_AUX_FLAG_CORESIGHT_FORMAT_RAW); > perf_aux_output_end(handle, size); > > event_data = perf_aux_output_begin(handle, event); > diff --git a/include/uapi/linux/perf_event.h b/include/uapi/linux/perf_event.h > index 9a5ca45..169e6b3 100644 > --- a/include/uapi/linux/perf_event.h > +++ b/include/uapi/linux/perf_event.h > @@ -1111,6 +1111,10 @@ enum perf_callchain_context { > #define PERF_AUX_FLAG_COLLISION 0x08 /* sample collided with another */ > #define PERF_AUX_FLAG_PMU_FORMAT_TYPE_MASK 0xff00 /* PMU specific trace format type */ > > +/* CoreSight PMU AUX buffer formats */ > +#define PERF_AUX_FLAG_CORESIGHT_FORMAT_CORESIGHT 0x0000 /* Default for backward compatibility */ > +#define PERF_AUX_FLAG_CORESIGHT_FORMAT_RAW 0x0100 /* Raw format of the source */ > + > #define PERF_FLAG_FD_NO_GROUP (1UL << 0) > #define PERF_FLAG_FD_OUTPUT (1UL << 1) > #define PERF_FLAG_PID_CGROUP (1UL << 2) /* pid=cgroup id, per-cpu mode only */ > -- > 2.7.4 > Reviewed-by: Mike Leach -- Mike Leach Principal Engineer, ARM Ltd. Manchester Design Centre. UK