From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.0 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id D3946C433E0 for ; Wed, 6 Jan 2021 21:18:02 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 8298E206FA for ; Wed, 6 Jan 2021 21:18:02 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 8298E206FA Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linaro.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References:Message-ID: Subject:To:From:Date:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=Bk6bKejXKWKc4Kk0UXIqGZEmo+F7hwnB9MUz8QX+bD0=; b=jWP7FLa9ciN5TqKhb0eoW/dOC oN0354YIELW6EYQW9/lo6WngT7NjP9gG4FTPGls/uShxhT/GRnO+1LKkAdZPIk+5NLGUsskEB5Zco 9pXGX4wgXqGuVqIVqQl4HH55SAHfB+d9D0MMUt6OA7xuIszd/jws2DADnT2Rfd/VVXidMlFgcR+8W SuHJYQaXiWiUzyV1oOooQDw7i14oLDDltKohYzfZTwAtmr0T/+bpWQvVXkUwV/yFmJ0DTqXpA+RQe o9AyppS6MNiKandCeHqjSNIaTsJUBM23SABmx8482+/OyuCPUpLRMvFzL0B5mYJbb60YBU0zKTYSF qLAZCJ3Zg==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kxG9g-0002td-23; Wed, 06 Jan 2021 21:15:44 +0000 Received: from mail-pg1-x52e.google.com ([2607:f8b0:4864:20::52e]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1kxG9c-0002tH-Na for linux-arm-kernel@lists.infradead.org; Wed, 06 Jan 2021 21:15:41 +0000 Received: by mail-pg1-x52e.google.com with SMTP id z21so3115779pgj.4 for ; Wed, 06 Jan 2021 13:15:39 -0800 (PST) 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=KY4FEcGxQ/UeKgoGDUKEAo3RLCNFG+G3dJuqt5gZHNQ=; b=HRk7m/jF1d9WOHDA4RCvQTHngRaIJGV07heFQ5Z9vNlwZP5W8pr9uT92LsHbVoQ50t zwf9beH4xk+TA33BDPt1IL7XGZonzm0fSE9qyAw0+qxWTz1mmTdGGHdR1O6QR+DS2jxC IAMuGqT1eQKB00u3u34hteD87vJGeR5Deg6stTLgK0qBUKcAXGpnkvqu+5lScenW7C32 bKoUR50348EFJ9qnZXXzBh2f0kQE6dFWbS9r21h4tfRJcfbWL67EG9GTVGg+LG30+lXv 2O0dnEW6C3yq64TgXcBO/wr6Wvr2EQ1dIGnmDp8q6CVDxNHzDL0DI7PQti9UcmhXOZFN ZIFg== 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=KY4FEcGxQ/UeKgoGDUKEAo3RLCNFG+G3dJuqt5gZHNQ=; b=sDx8aii0bcHoQIfwqIPRCILpnFot4WH4t1x8v+KFydVKKekYpYq1OVsqQ4sYmSAh29 RivcOBzMB/o2E316mz4zMXm2T9M7cJhvw0sjX2CDadK8p4Sd3Fz+CUofYs9WcEjzIdha 41KbVbnAu/NR7AOfJyqdX2EdsAgkN3iw7Ct1EDBRcHrhRqsfDZtEPs5Yya3m5zxJg1tx rHkX4bz0KwTPixAtr7LI46XI34OaiHHiFdy+vbhTvDHPZa0bdBI3JdeTjrYsXfSJSt5u 3wrcI0QF091wWrNIwjMUMAd8RhZplC7FYbf0fInj8VCoD+tdRf4NthE9TwYFoX9qAhYq NyVw== X-Gm-Message-State: AOAM530mRUhNdjmjwiKaqyzdOI1vHLcSGsynWB8vicR4hkcQVLVrX4Jz MvMYku0mEU2EdkqMRcsRJf47v4SSf5AEqw== X-Google-Smtp-Source: ABdhPJz7/R27TVvApJvkYb54nDbJXPn9oI4KzbuBY2fJEF9Yrl7JlZpmcJmhcnItdeinIZsn7Coz7g== X-Received: by 2002:a63:5304:: with SMTP id h4mr6401943pgb.199.1609967737981; Wed, 06 Jan 2021 13:15:37 -0800 (PST) Received: from xps15 (S0106889e681aac74.cg.shawcable.net. [68.147.0.187]) by smtp.gmail.com with ESMTPSA id v6sm3385625pfi.31.2021.01.06.13.15.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 06 Jan 2021 13:15:37 -0800 (PST) Date: Wed, 6 Jan 2021 14:15:35 -0700 From: Mathieu Poirier To: Mike Leach Subject: Re: [RFC PATCH v3 0/9] CoreSight complex config support; ETM strobing Message-ID: <20210106211535.GA9149@xps15> References: <20201030175655.30126-1-mike.leach@linaro.org> <20201126185223.GE757228@xps15> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210106_161540_912328_922A1F11 X-CRM114-Status: GOOD ( 49.82 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Yabin Cui , Coresight ML , linux-arm-kernel , "Suzuki K. Poulose" Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Good day Mike, On Thu, Dec 24, 2020 at 07:20:57PM +0000, Mike Leach wrote: > Hi MAthieu, > > Thanks for the review as ever. Sorry its taken me a bit of time to > respond, but there has been a bit of reworking to do. > Ok > I certainly agree with the _desc / _csdev convention, and the follow > up set should address that. Ok > The locking is also reconfigured as mentioned - so that it is simpler. > Ok > The general rules have been tightened. I was trying to allow features > to be enabled independently of configurations when driving the system > from configfs / sysfs rather than perf. But in the end there is little > value in that approach. > Ok > As mentioned I have been working on follow up patches - which should > be able to be split into smaller changesets. One is the dynamic > loading of configurations, which will be either by loadable module, or > configfs. The latter will allow the user to mkdir in the configs > directory, and then load a binary blob via a "load" file. I do not > believe that it is practicable to define an entire set of features > with registers and configs via configfs - given that it is relatively > inflexible in terms of adding files dynamically from a kernel > perspective. My view of the changes you are making is likely incomplete and as such it is probably a good idea to wait for another revision before providing further comments. Let me know if there are things you need clarifications on that I have missed in your replies. Thanks, Mathieu > > That said, it may be possible later to add in a way to defne a > configuration via configfs using previously defined named features > only. > > Regards > > Mike > > > > On Thu, 26 Nov 2020 at 18:52, Mathieu Poirier > wrote: > > > > Hi Mike, > > > > On Fri, Oct 30, 2020 at 05:56:46PM +0000, Mike Leach wrote: > > > This patchset introduces initial concepts in CoreSight complex system > > > configuration support. > > > > > > Configurations consist of 2 elements:- > > > 1) Features - programming combinations for devices, applied to a class of > > > device on the system (all ETMv4), or individual devices. > > > 2) Configurations - a set of programmed features used when the named > > > configuration is selected. > > > > > > Features and configurations are declared as a data table, a set of register, > > > resource and parameter requirements. Features and configurations are loaded > > > into the system by the virtual cs_syscfg device. This then matches features > > > to any registered devices and loads the feature into them. > > > > > > Individual device classes that support feature and configuration register > > > with cs_syscfg. > > > > > > Once loaded a configuration can be enabled for a specific trace run. > > > Configurations are registered with the perf cs_etm event as entries in > > > cs_etm/cs_config. These can be selected on the perf command line as follows:- > > > > > > perf record -e cs_etm// ... > > > > > > This patch set has one pre-loaded configuration and feature. > > > A named "strobing" feature is provided for ETMv4. > > > A named "autofdo" configuration is provided. This configuration enables > > > strobing on any ETM in used. > > > > > > Thus the command: > > > perf record -e cs_etm/autofdo/ ... > > > > > > will trace the supplied application while enabling the "autofdo" configuation > > > on each ETM as it is enabled by perf. This in turn will enable strobing for > > > the ETM - with default parameters. Parameters can be adjusted using configfs. > > > > > > The sink used in the trace run will be automatically selected. > > > > > > A configuation can supply up to 15 of preset parameter values, which will > > > subsitute in parameter values for any feature used in the configuration. > > > > > > Selection of preset values as follows > > > perf record -e cs_etm/autofdo,preset=1/ ... > > > > > > (valid presets 1-N, where N is the number supplied in the configuration, not > > > exceeding 15. preset=0 is the same as not selecting a preset.) > > > > > > Applies to coresight/next (5.10-rc1 base) > > > > I am done reviewing this third revision. I commented on a fair amount of things > > but that isn't unusual with this much code, especially when it is new code that > > doesn't have a precedent. > > > > As I stated before I think the general architecture of the feature is sound. The > > concepts of XYZ_desc and XYZ_csdev have now sunk in and I quite like it. It > > will be really good when the naming convention is straighten out. > > > > I spent a long time thinking about creating configuration and features on the fly from > > configfs. It is definitely not something that needs to be part of this set, nor > > have to be implemented any time soon, but is this something that is on your > > radar? > > > > Lastly the "RFC" should be dropped for the fourth iteration, we are way passed > > that point now. > > > > Thanks, > > Mathieu > > > > > > > > Changes since v2: > > > 1) Added documentation file. > > > 2) Altered cs_syscfg driver to no longer be coresight_device based, and moved > > > to its own custom bus to remove it from the main coresight bus. (Mathieu) > > > 3) Added configfs support to inspect and control loaded configurations and > > > features. Allows listing of preset values (Yabin Cui) > > > 4) Dropped sysfs support for adjusting feature parameters on the per device basis, > > > in favour of a single point adjustment in configfs that is pushed to all device > > > instances. > > > 5) Altered how the config and preset command line options are handled in perf and > > > the drivers. (Mathieu and Suzuki). > > > 6) Fixes for various issues and technical points (Mathieu, Yabin) > > > > > > Changes since v1: > > > 1) Moved preloaded configurations and features out of individual drivers. > > > 2) Added cs_syscfg driver to manage configurations and features. Individual > > > drivers register with cs_syscfg indicating support for config, and provide > > > matching information that the system uses to load features into the drivers. > > > This allows individual drivers to be updated on an as needed basis - and > > > removes the need to consider devices that cannot benefit from configuration - > > > static replicators, funnels, tpiu. > > > 3) Added perf selection of configuarations. > > > 4) Rebased onto the coresight module loading set. > > > > > > > > > To follow in future revisions / sets:- > > > a) load of additional config and features by loadable module. > > > b) load of additional config and features by configfs > > > c) enhanced resource management for ETMv4 and checking features have sufficient > > > resources to be enabled. > > > d) ECT and CTI support for configuration and features. > > > > > > Mike Leach (9): > > > coresight: syscfg: Initial coresight system configuration > > > coresight: syscfg: Add registration and feature loading for cs devices > > > coresight: config: Add configuration and feature generic functions > > > coresight: etm-perf: update to handle configuration selection > > > coresight: etm4x: Add complex configuration handlers to etmv4 > > > coresight: config: Add preloaded configurations > > > coresight: syscfg: Add initial configfs support. > > > coresight: syscfg: Allow update of feature params from configfs > > > coresight: docs: Add documentation for CoreSight config. > > > > > > .../trace/coresight/coresight-config.rst | 230 ++++++ > > > Documentation/trace/coresight/coresight.rst | 16 + > > > drivers/hwtracing/coresight/Makefile | 6 +- > > > .../coresight/coresight-cfg-preload.c | 160 +++++ > > > .../hwtracing/coresight/coresight-config.c | 392 +++++++++++ > > > .../hwtracing/coresight/coresight-config.h | 311 +++++++++ > > > drivers/hwtracing/coresight/coresight-core.c | 18 +- > > > .../hwtracing/coresight/coresight-etm-perf.c | 166 ++++- > > > .../hwtracing/coresight/coresight-etm-perf.h | 10 +- > > > .../hwtracing/coresight/coresight-etm4x-cfg.c | 181 +++++ > > > .../hwtracing/coresight/coresight-etm4x-cfg.h | 29 + > > > .../coresight/coresight-etm4x-core.c | 36 +- > > > .../coresight/coresight-etm4x-sysfs.c | 3 + > > > .../coresight/coresight-syscfg-configfs.c | 421 +++++++++++ > > > .../coresight/coresight-syscfg-configfs.h | 47 ++ > > > .../hwtracing/coresight/coresight-syscfg.c | 656 ++++++++++++++++++ > > > .../hwtracing/coresight/coresight-syscfg.h | 83 +++ > > > include/linux/coresight.h | 7 + > > > 18 files changed, 2743 insertions(+), 29 deletions(-) > > > create mode 100644 Documentation/trace/coresight/coresight-config.rst > > > create mode 100644 drivers/hwtracing/coresight/coresight-cfg-preload.c > > > create mode 100644 drivers/hwtracing/coresight/coresight-config.c > > > create mode 100644 drivers/hwtracing/coresight/coresight-config.h > > > create mode 100644 drivers/hwtracing/coresight/coresight-etm4x-cfg.c > > > create mode 100644 drivers/hwtracing/coresight/coresight-etm4x-cfg.h > > > create mode 100644 drivers/hwtracing/coresight/coresight-syscfg-configfs.c > > > create mode 100644 drivers/hwtracing/coresight/coresight-syscfg-configfs.h > > > create mode 100644 drivers/hwtracing/coresight/coresight-syscfg.c > > > create mode 100644 drivers/hwtracing/coresight/coresight-syscfg.h > > > > > > -- > > > 2.17.1 > > > > > > > -- > Mike Leach > Principal Engineer, ARM Ltd. > Manchester Design Centre. UK _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel