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=-14.0 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=unavailable 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 6B714C433E0 for ; Tue, 16 Mar 2021 19:31:46 +0000 (UTC) Received: from desiato.infradead.org (desiato.infradead.org [90.155.92.199]) (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 EE41064E07 for ; Tue, 16 Mar 2021 19:31:45 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org EE41064E07 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=desiato.20200630; h=Sender:Content-Transfer-Encoding :Content-Type:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References:Message-ID: Subject:Cc: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=XAzqECi5seuoAIleP9RujKvDtMIwW5peEAH9xJk3Gb0=; b=dax830kFisUi3EBuhrFSbulT1 306Hg8SxfJzGyDM0aJhL3mkMXMTJOOee9arcZLabf70jb0f4ptmHFEHKihTC8F4MOK0DzlCq7DHZg 897h058zprEMk8BewHLg/Q75qDyrRMDfs7X59V1QrYvKiWveFyiWKzLDUs5OU0uU+j84nR/Xj/Dv1 WX+t3KuZfDzy2oVcAF15PcatP6/sSuM2zBjlGzBhZsVgQZ23qug6D7hYqCViyBubSssgyxtS79xnM HVIn1Hn4Wr9XNyi4Mu9Jzc4auJceTRM2kEdmGPLV32O4TwUbPcgc2csVsNP1gUxDUspQS/16kDtms adJfmxv/w==; Received: from localhost ([::1] helo=desiato.infradead.org) by desiato.infradead.org with esmtp (Exim 4.94 #2 (Red Hat Linux)) id 1lMFOU-001irB-PI; Tue, 16 Mar 2021 19:30:19 +0000 Received: from mail-pl1-x631.google.com ([2607:f8b0:4864:20::631]) by desiato.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lMFON-001iqY-Nr for linux-arm-kernel@lists.infradead.org; Tue, 16 Mar 2021 19:30:13 +0000 Received: by mail-pl1-x631.google.com with SMTP id c16so17457502ply.0 for ; Tue, 16 Mar 2021 12:30:11 -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=26VQ5R8D+Nv978Dw29EblfP/eaxOCXCI2bftOH+FKyc=; b=NLKraj5c80Rza2FJddI2o/SKfGY2EtcGyQHj6Du1+xGxcRK+i0MfKI/wvMUraDTlFI TqWDnY0q1+LSop30sJJZLaZzMHMttEcuuAdtaKWwDaoiRkIF63qG1AtWQWUtLESlAhT1 8fFJI8P4EOlrSXWw8e6zTCmhyJxGTdo3exVLGRJbUDbKkHpEfpqCchyM0H/b4fAy/PMl Hva+JH1j6Q7OtSA5A/WJPqvisXeRqVCa9AJwY/D7tIANeWc+iyLv/jrbBYwqkOpzsQRc ZXqAs3hm8vgFtCNKWgrz93+TX8pO52SJ3HhvNDDiwrCW5iPRvJG8wHyuCUaRP5vfEgIp pkuw== 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=26VQ5R8D+Nv978Dw29EblfP/eaxOCXCI2bftOH+FKyc=; b=fHpmjwsC7Mm4Lw6WWup13z+1aApg00oVz+7KforVaaZucd2Z+tKRZQ2Ak9m8bjSs6H mMk33eMmyUnEDWFjTPYpF5pvRu3i4wIV8pGkUs9EwQLOwUxrrAU/prKPmNosQ0QqieiY oS5LwWoEKCUCvv3LZ8J4wmLqx3MG5z9SH0bIz0Of4PYOPUi6Oa0Y10DDxOFi3i/nvxSv RCfFJVQ18ve2rSc2TzFmkqfMyyxiRpj35RH7pnu4YK+m8qL7+9EdHZxE+KBjSwRbgx/B OKQq/t8pew7xi2bD5V8e++qoh4zFKQbxztEV3ssQm+6dYgJpFTsgFi2IcnSEpH3wYrRN eFQA== X-Gm-Message-State: AOAM530VwhTTnmUx/rZCQQECvEEwpu3/VW17hpp/XpyaDQKuDsr/dg1y Hv7t+wJlWuOEN6AIeYi/3SXWBw== X-Google-Smtp-Source: ABdhPJwBf3I6ij+ULq029hUbUuZmOD7tr52WJf7LJCXxnaMIoXWPHUkHc2sjiXQ8vxKTH7wBmuZuMw== X-Received: by 2002:a17:90a:d903:: with SMTP id c3mr590566pjv.27.1615923010233; Tue, 16 Mar 2021 12:30:10 -0700 (PDT) Received: from xps15 (S0106889e681aac74.cg.shawcable.net. [68.147.0.187]) by smtp.gmail.com with ESMTPSA id i10sm19581504pgo.75.2021.03.16.12.30.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 16 Mar 2021 12:30:09 -0700 (PDT) Date: Tue, 16 Mar 2021 13:30:08 -0600 From: Mathieu Poirier To: Suzuki K Poulose Cc: linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, mike.leach@linaro.org, anshuman.khandual@arm.com, leo.yan@linaro.org Subject: Re: [PATCH v4 09/19] coresight: etm4x: Move ETM to prohibited region for disable Message-ID: <20210316193008.GD1387186@xps15> References: <20210225193543.2920532-1-suzuki.poulose@arm.com> <20210225193543.2920532-10-suzuki.poulose@arm.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20210225193543.2920532-10-suzuki.poulose@arm.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210316_193012_008713_C92E111A X-CRM114-Status: GOOD ( 30.71 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , 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 On Thu, Feb 25, 2021 at 07:35:33PM +0000, Suzuki K Poulose wrote: > If the CPU implements Arm v8.4 Trace filter controls (FEAT_TRF), > move the ETM to trace prohibited region using TRFCR, while disabling. > > Cc: Mathieu Poirier > Cc: Mike Leach > Cc: Anshuman Khandual > Signed-off-by: Suzuki K Poulose > --- > New patch I would ask you to refrain from introducing new patches. Otherwise the goal posts keep on moving with every revision and we'll never get through. Fixes and enhancement can come in later patchsets. > --- > .../coresight/coresight-etm4x-core.c | 21 +++++++++++++++++-- > drivers/hwtracing/coresight/coresight-etm4x.h | 2 ++ > 2 files changed, 21 insertions(+), 2 deletions(-) > > diff --git a/drivers/hwtracing/coresight/coresight-etm4x-core.c b/drivers/hwtracing/coresight/coresight-etm4x-core.c > index 15016f757828..00297906669c 100644 > --- a/drivers/hwtracing/coresight/coresight-etm4x-core.c > +++ b/drivers/hwtracing/coresight/coresight-etm4x-core.c > @@ -31,6 +31,7 @@ > #include > #include > > +#include > #include > #include > #include > @@ -654,6 +655,7 @@ static int etm4_enable(struct coresight_device *csdev, > static void etm4_disable_hw(void *info) > { > u32 control; > + u64 trfcr; > struct etmv4_drvdata *drvdata = info; > struct etmv4_config *config = &drvdata->config; > struct coresight_device *csdev = drvdata->csdev; > @@ -676,6 +678,16 @@ static void etm4_disable_hw(void *info) > /* EN, bit[0] Trace unit enable bit */ > control &= ~0x1; > > + /* > + * If the CPU supports v8.4 Trace filter Control, > + * set the ETM to trace prohibited region. > + */ > + if (drvdata->trfc) { > + trfcr = read_sysreg_s(SYS_TRFCR_EL1); > + write_sysreg_s(trfcr & ~(TRFCR_ELx_ExTRE | TRFCR_ELx_E0TRE), > + SYS_TRFCR_EL1); > + isb(); > + } > /* > * Make sure everything completes before disabling, as recommended > * by section 7.3.77 ("TRCVICTLR, ViewInst Main Control Register, > @@ -683,12 +695,16 @@ static void etm4_disable_hw(void *info) > */ > dsb(sy); > isb(); > + /* Trace synchronization barrier, is a nop if not supported */ > + tsb_csync(); > etm4x_relaxed_write32(csa, control, TRCPRGCTLR); > > /* wait for TRCSTATR.PMSTABLE to go to '1' */ > if (coresight_timeout(csa, TRCSTATR, TRCSTATR_PMSTABLE_BIT, 1)) > dev_err(etm_dev, > "timeout while waiting for PM stable Trace Status\n"); > + if (drvdata->trfc) > + write_sysreg_s(trfcr, SYS_TRFCR_EL1); drvdata->trfc is invariably set to true in cpu_enable_tracing() and as such testing for it is not required. > > /* read the status of the single shot comparators */ > for (i = 0; i < drvdata->nr_ss_cmp; i++) { > @@ -873,7 +889,7 @@ static bool etm4_init_csdev_access(struct etmv4_drvdata *drvdata, > return false; > } > > -static void cpu_enable_tracing(void) > +static void cpu_enable_tracing(struct etmv4_drvdata *drvdata) > { > u64 dfr0 = read_sysreg(id_aa64dfr0_el1); > u64 trfcr; > @@ -881,6 +897,7 @@ static void cpu_enable_tracing(void) > if (!cpuid_feature_extract_unsigned_field(dfr0, ID_AA64DFR0_TRACE_FILT_SHIFT)) > return; > > + drvdata->trfc = true; > /* > * If the CPU supports v8.4 SelfHosted Tracing, enable > * tracing at the kernel EL and EL0, forcing to use the > @@ -1082,7 +1099,7 @@ static void etm4_init_arch_data(void *info) > /* NUMCNTR, bits[30:28] number of counters available for tracing */ > drvdata->nr_cntr = BMVAL(etmidr5, 28, 30); > etm4_cs_lock(drvdata, csa); > - cpu_enable_tracing(); > + cpu_enable_tracing(drvdata); At least for this patch, the above three hunks aren't needed. > } > > static inline u32 etm4_get_victlr_access_type(struct etmv4_config *config) > diff --git a/drivers/hwtracing/coresight/coresight-etm4x.h b/drivers/hwtracing/coresight/coresight-etm4x.h > index 0af60571aa23..f6478ef642bf 100644 > --- a/drivers/hwtracing/coresight/coresight-etm4x.h > +++ b/drivers/hwtracing/coresight/coresight-etm4x.h > @@ -862,6 +862,7 @@ struct etmv4_save_state { > * @nooverflow: Indicate if overflow prevention is supported. > * @atbtrig: If the implementation can support ATB triggers > * @lpoverride: If the implementation can support low-power state over. > + * @trfc: If the implementation supports Arm v8.4 trace filter controls. > * @config: structure holding configuration parameters. > * @save_state: State to be preserved across power loss > * @state_needs_restore: True when there is context to restore after PM exit > @@ -912,6 +913,7 @@ struct etmv4_drvdata { > bool nooverflow; > bool atbtrig; > bool lpoverride; > + bool trfc; Nor is this one. > struct etmv4_config config; > struct etmv4_save_state *save_state; > bool state_needs_restore; > -- > 2.24.1 > _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel