Received: by 2002:a05:6a10:eb17:0:0:0:0 with SMTP id hx23csp3066341pxb; Mon, 6 Sep 2021 11:26:09 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzv07JIZ1ETOmPnGTyhjiE0JZ7LoVanHTmdQF7Vf8rbzDIvdckthH5nt3OI59OrKi/7eCSD X-Received: by 2002:a02:b183:: with SMTP id t3mr11923906jah.93.1630952769435; Mon, 06 Sep 2021 11:26:09 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1630952769; cv=none; d=google.com; s=arc-20160816; b=XhFbtEHT2OECpmZldLxosIxRIwx5ZgwLsfaU523Gb3mABOZLIZfo7IX0SyYnbd26Uh bT0r/TxmbyYUpcguC3Oj38+6Y5qngBUyVc0LHHadSifEG8X2qGgF3+CBB8Ie0UZpYztn NnIKai2QBMwoX1Lw9idG0EIfI5gl8VuqCvsukcNSKn3DD3px83lHkwschKxuZZuUQ53v Mmb4kOgaEiwFEZRzbcqwrbDcXCtYdB7Jtrlv2L2wEUF4FregeHnzd4woyHC2umQpV47p f7de5gYK/IqmJEUazLGirgf2BrGcwj0FYmnSXsfXLomaFCo7XdcUM5h9bV4ddzLSiXXD rHlQ== 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=RuRsrItRCGT33aYjZwAQREkMqMsFsdvg/GueZb9ps7I=; b=Borm5EE45xtZbZDVfsQwVXVQdkxCMBZE0pfg6KTfMTpaA1M34g3NdqpG8YHcb4szsx YgAWwqdHtnnoqDVQYz9z4uQN0iEMiiWO8xd0bkKwN72icK/JquqliCjmgTfR/9amb4bP /0BbkAm19a0FA6cp6XlCiLnU+5UKwttznsj1ijfGagW73WYRn5z6PzS0ocj0OpEZZPaW t1w6C6gcHg2SKdHjB8IIB1kBJo8cveXEykASIeh9XWGDiuZo+SCXClTNzPWajwxOl+et W5H6Z2JgjH7sli2leme49rattc29xWnuRF3bm2ktHWjrlfLfaO9JeGR0IqaZkUT8yZr6 TVvw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=vcFjoHW6; 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 y4si10745795jas.59.2021.09.06.11.25.58; Mon, 06 Sep 2021 11:26:09 -0700 (PDT) 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=vcFjoHW6; 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 S244074AbhIFRf4 (ORCPT + 99 others); Mon, 6 Sep 2021 13:35:56 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46734 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S243961AbhIFRfy (ORCPT ); Mon, 6 Sep 2021 13:35:54 -0400 Received: from mail-pg1-x52f.google.com (mail-pg1-x52f.google.com [IPv6:2607:f8b0:4864:20::52f]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id CEAEDC061575 for ; Mon, 6 Sep 2021 10:34:49 -0700 (PDT) Received: by mail-pg1-x52f.google.com with SMTP id q68so7409502pga.9 for ; Mon, 06 Sep 2021 10:34:49 -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=RuRsrItRCGT33aYjZwAQREkMqMsFsdvg/GueZb9ps7I=; b=vcFjoHW65IWgE3KC0gEzK22XqS4AxNg6lQi0ysKg1IajszNCwpKV5jRUgP+K5p2/lF yIjG/v1CjRg03rP4bga02idTRx9kxUfNMn0GEdH8RejhqF8m9khWA+hA9Nok/1SFAtmF fAjzB0zG0ie6C3QKig354VkTP3VB91zrZJ7Q6tDEWh04emMTjbp9vqtxHKMXal1tex40 2waOPSvq9Bf57uhjooWymtOn+txRPFXfpodn+5f4xIjIJLO1qfzY1HGRSG+pdgteE8PJ voCeWpWeK95rjJsEFQuPd6cX3GDY+S05HXfmUPZ0lv7uhhSbBrFHRHcNKss+1vchYACX IUFQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to; bh=RuRsrItRCGT33aYjZwAQREkMqMsFsdvg/GueZb9ps7I=; b=r8PkBU99Lq2onnjzhVgDbGGKHHXlWD1o6x0BMQZt0UJHnAXSqElY/Vvf7NP/swMnOG XpESNkiRO+t/lPwFpyPXTcx66G6AsazxfegskJJAoetYyqcVY/x2m4A4L7lNws7ryznE mIb1nXoN0RLtlMDax8PGSLoZXnixE8NcheeI8Ds7p/SGYredrL9Y/TAxCUS4VevigqW2 44QiNxI+BkoilQm9iZiNexmSciEVUjEK3DlW0V9X1r8m/1xXgUYMrkaofUdtyifhnP/Q L8/bbji3XmjcwIZidZis1+JVvcBcVoH4xpKpjdIaljEcUbUYcvP1sP+ahXSZfQPpiwsG 6MEA== X-Gm-Message-State: AOAM531DPFHs87A9BNihGuIyv0/ZowwV1lImEnX/btkRX5wMIVl96tHL FsqAMAo6YURCeGOohnF/UXbCCg== X-Received: by 2002:a63:9752:: with SMTP id d18mr13089145pgo.320.1630949689266; Mon, 06 Sep 2021 10:34:49 -0700 (PDT) Received: from p14s (S0106889e681aac74.cg.shawcable.net. [68.147.0.187]) by smtp.gmail.com with ESMTPSA id v23sm8017125pff.155.2021.09.06.10.34.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Sep 2021 10:34:48 -0700 (PDT) Date: Mon, 6 Sep 2021 11:34:46 -0600 From: Mathieu Poirier To: Qi Liu Cc: suzuki.poulose@arm.com, mike.leach@linaro.org, coresight@lists.linaro.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linuxarm@huawei.com Subject: Re: [PATCH 1/2] Documentation: tracing: Documentation for ultrasoc SMB drivers Message-ID: <20210906173446.GD1228692@p14s> References: <20210719111737.47891-1-liuqi115@huawei.com> <20210719111737.47891-2-liuqi115@huawei.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20210719111737.47891-2-liuqi115@huawei.com> Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, Jul 19, 2021 at 07:17:36PM +0800, Qi Liu wrote: > Ultrasoc trace module is a system level solution for tracing, and SMB > is the component in trace module to store trace message. This patch > brings in a documentation for ultrasoc SMB driver and simple introduces > how to use ultrasoc SMB by sysfs interface and perf interface. > > Signed-off-by: Qi Liu > --- > .../trace/coresight/ultrasoc-trace.rst | 193 ++++++++++++++++++ > 1 file changed, 193 insertions(+) > create mode 100644 Documentation/trace/coresight/ultrasoc-trace.rst > > diff --git a/Documentation/trace/coresight/ultrasoc-trace.rst b/Documentation/trace/coresight/ultrasoc-trace.rst > new file mode 100644 > index 000000000000..dee133e27bf3 > --- /dev/null > +++ b/Documentation/trace/coresight/ultrasoc-trace.rst > @@ -0,0 +1,193 @@ > +======================================================= > +Siemens Embedded Analytics - HW Assisted Tracing on SoC > +======================================================= > + :Author: Jonathan Zhou > + Qi Liu > + :Date: July 8th, 2021 > + > +Introduction > +------------ > + > +This document is concerned with the Siemens Embedded Analytics Framework, > +using for tracing of multiple type SoC. As this module is developed by > +Ultrasoc technology, which is acquired by Siemens, we still use "Ultrasoc" > +to name document and structures. > + > +System Memory Buffer is an important component in this Analytics Framework, > +it provides a way to buffer and store messages in system memory. It provides > +a capability to store messages received on its input message interface to an > +area of system memory. > + > +A typical Siemens trace system would look like the following diagram: > + @@@@@@@@@@@@@ > + @ CPU @ > + @@@@@@@@@@@@@ > + ############# > + # Coresight # > + # ETM # > + ####### > + ### > + # > + | > + * > + ******************************* > + *** AMBA Advanced Trace Bus (ATB) *** > + ***************^*************** > + =============== | > + === FUNNEL ==<--- | > + ======= > + | > + * > + @@@@@@@ > + @ TRC @ > + @@@@@ > + @@@ > + @ > + | > + * > + ************************************** ******************* > + ************************ Message BUS *************************** > + ******************^************************^**************** > + | | > + @@@@@@@@@@@@@@@@@@ | @@@@@@@@@@@@ > + @ Message Engine @ | @ JTAG COM @ > + @@@@@@@@@@@@@@@@@@ | @@@@@@@@@@ > + | |---> @@@@@@@@ > + | @@@@@@ > + @@@@@@@ | > + @ SMB @ JTAG > + @@@@@ > + @@@ > + @ > + | > + | > + * > + *************************************************************** > + **************************** AMBA AXI **************************** > + ***************************************************************** > + > +Acronyms > +--------------------------- > + > +Acronyms: > + > +SMB: System Memory Buffer > +TRC: Trace receiver > + > +Framework and implementation > +------------------------------ > + > +SMB is implemented as platform device, each SCCL has one SMB device. > + > +As TRC receives data from coresight ETM device, SMB can use the following API > +to register into coresight framework as a sink device: > +.. c:function:: struct coresight_device *coresight_register(struct coresight_desc *desc); > +.. c:function:: void coresight_unregister(struct coresight_device *csdev); > + > +Then users can get trace data by this path: ETM->funnel->SMB. > +More information about coresight framework can be found in > +Documention/trace/coresight/coresight.rst. > + > +If everything goes well, the relationship of Embedded Analytics devices will be > +described under the sysfs:: > + > + $# ls /sys/bus/platform/devices/ > + :00 > + $# ls /sys/bus/coresight/devices/ > + etm0 etm14 etm2 etm25 etm30 etm8 funnel4 > + etm1 etm15 etm20 etm26 etm31 etm9 funnel5 > + etm10 etm16 etm21 etm27 etm4 funnel0 funnel6 > + etm11 etm17 etm22 etm28 etm5 funnel1 funnel7 > + etm12 etm18 etm23 etm29 etm6 funnel2 sink_smb0 > + etm13 etm19 etm24 etm3 etm7 funnel3 > + $# ls -l /sys/bus/coresight/devices/funnel0/connections/ > + in:0 -> ../../../../system/cpu/cpu0/ARMHC500:00/etm0 > + in:1 -> ../../../../system/cpu/cpu1/ARMHC500:01/etm1 > + in:2 -> ../../../../system/cpu/cpu2/ARMHC500:02/etm2 > + in:3 -> ../../../../system/cpu/cpu3/ARMHC500:03/etm3 > + nr_links > + out:0 -> ../../../HISI0391:00/HISI03A1:00/sink_smb0 > + $# ls -l /sys/bus/coresight/devices/sink_smb0/connections/ > + in:101 -> ../../../../ARMHC9FE:05/funnel5 > + in:114 -> ../../../../ARMHC9FE:07/funnel7 > + in:121 -> ../../../../ARMHC9FE:03/funnel3 > + in:39 -> ../../../../ARMHC9FE:00/funnel0 > + in:51 -> ../../../../ARMHC9FE:04/funnel4 > + in:61 -> ../../../../ARMHC9FE:06/funnel6 > + in:68 -> ../../../../ARMHC9FE:02/funnel2 > + in:89 -> ../../../../ARMHC9FE:01/funnel1 > + nr_links > + > +How to use the Embedded Analytics trace module > +----------------------------------------------- > + > +There are two ways to use the Embedded Analytics trace module: > + > +1. interacting directly with the devices using the sysFS interface. > +2. using the perf cmd line tools. > + > +1) Using the sysFS interface: > + > +Before trace collection can start, a coresight sink needs to be identified. > +There is no limit on the amount of sinks (nor sources) that can be enabled at > +any given moment. As a generic operation, all device pertaining to the sink > +class will have an "active" entry in sysfs:: > + > + $# ls /sys/bus/coresight/devices/ > + etm0 etm14 etm2 etm25 etm30 etm8 funnel4 > + etm1 etm15 etm20 etm26 etm31 etm9 funnel5 > + etm10 etm16 etm21 etm27 etm4 funnel0 funnel6 > + etm11 etm17 etm22 etm28 etm5 funnel1 funnel7 > + etm12 etm18 etm23 etm29 etm6 funnel2 sink_smb0 > + etm13 etm19 etm24 etm3 etm7 funnel3 > + $# ls /sys/bus/coresight/devices/sink_smb0 > + connections enable_sink firmware_node power subsystem uevent > + $# echo 1 > /sys/bus/coresight/devices/sink_smb0/enable_sink > + $# cat /sys/bus/coresight/devices/sink_smb0/enable_sink > + 1 > + > +When start trace collection, etm devices corresponding to the enabled sink > +should be selected:: > + > + $# echo 1 > /sys/bus/coresight/devices/etm0/enable_source > + $# cat /sys/bus/coresight/devices/etm0/enable_source > + 1 > + $# cat /sys/bus/platform/devices/:00/com_status > + com-type : DOWN-ONLY > + service status : stopped > + interrupt status : 0x00000003 > + write point : 0x5437f400 <----- The write pointer is moving > + > +Trace collection is stopped the same way:: > + > + $# echo 0 > /sys/bus/coresight/devices/etm0/enable_source > + $# echo 0 > /sys/bus/coresight/devices/sink_smb0/enable_sink > + > +The content of the SMB buffer can be harvested directly from /dev:: > + > + $# dd if=/dev/sink_smb0 of=~/cstrace.bin > + 5233+0 records in > + 5233+0 records out > + 2679296 bytes (2.7 MB) copied, 0.0131708 s, 203 MB/s > + > + root:/sys/bus/coresight/devices# > + > +The file cstrace.bin can be decompressed using "ptm2human". > + > +2) Using perf framework: > + > +As SMB device has been registered with coresight framework, perf tool can be > +used to control Embedded Analytics trace collection, and the method is similar > +to using perf to do coresight trace collection. > + > +The only thing to note is, list of cpus should be correspond to the specified > +sink device. > + > +Example usage of perf:: > + > + $# ./perf list pmu > + cs_etm// [Kernel PMU event] > + $# ./perf record -e cs_etm/@sink_smb0/ -C 0 --per-thread sleep 2s > + [ perf record: Woken up 2 times to write data ] > + [ perf record: Captured and wrote 0.288 MB perf.data ] > + $# ./perf report This IP block works like any other sink device and as such I don't really see a need for this documentation - especially since it is mostly conveying the same information already present in coresight.rst. Thanks, Mathieu > -- > 2.17.1 >