Received: by 2002:a05:6a11:4021:0:0:0:0 with SMTP id ky33csp258228pxb; Wed, 22 Sep 2021 01:14:00 -0700 (PDT) X-Google-Smtp-Source: ABdhPJylg4NT9vALXYxHBoCw4J+Bx/umyCzV58n5s6OqDjyzmj1nCYTIUsM8tM3YnrLGK5tk1kZ0 X-Received: by 2002:a17:906:2a0a:: with SMTP id j10mr38911796eje.103.1632298440046; Wed, 22 Sep 2021 01:14:00 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1632298440; cv=none; d=google.com; s=arc-20160816; b=l1PDGrKMnRINHmWiM6nx/lqR0a25IbT6K4FKst20G2vCKCn69rAcVtshje2tmM3Vlj coH8YwJH3jK8ODqho8H0amtwfWaH3H/WJl+v4z9HYB13H/KLv+xjcBkt/kUafWHxXk7Y zYUu8OscwP9s08lCiRJn9zRFwxn44MVaR34UTUm26E3swa+sIALxank46cjcdfRR0PI9 oi8ROvnTF0RgBmAyUtGPB17hC0g6x2MQrlM3Ll7UfPYzjSpEeSM9tNiiuc3ebMSjMbsJ xGqUhWQH0vH2D2L5JVc6xmygFT6OUcfBqqzVDTx1EmfxF0dyjFlzt1F1aLVREi8b/CIh gn3A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:content-language :in-reply-to:mime-version:user-agent:date:message-id:from:references :cc:to:subject; bh=jGBgdEWNQ4XH58xdUZYEp2HyKrSrISvOEQUT9JU1Cmc=; b=tL4Y84V9vXhdzz6952TfEB6aoqCtv6gToEdE6aYONvc4wRb7F/iSqVuZKycYr45+0d 8Wet/efSMlZEPojqk7T8VkAQGMTkQRPzDIbujTzAy52jq6P0Kl4aHtEdGBUuBW/F/5H9 /osBSbI48EjKcfOWchO2H19PjKGDjCM1NZWumMHeklYzl2mAHVqPc2cks5d6FTq0q0y4 pjzh1REaZbyvu8xvzOy2gdU/bYWx6vVgHMVku0IEsVoKiqVDa6rTSHPRX/5aIF/B8DxC hBX9GrfuqB/wOjoldxlSJsiONQV1BdBWRFGqiTOrAm8G4dNhHW1EUH2gwRV0FmpHbKm/ 1tBQ== ARC-Authentication-Results: i=1; mx.google.com; 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=fail (p=NONE sp=NONE dis=NONE) header.from=arm.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id e26si1679087ejm.104.2021.09.22.01.13.36; Wed, 22 Sep 2021 01:14:00 -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; 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=fail (p=NONE sp=NONE dis=NONE) header.from=arm.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233532AbhIVINK (ORCPT + 99 others); Wed, 22 Sep 2021 04:13:10 -0400 Received: from foss.arm.com ([217.140.110.172]:44702 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233699AbhIVINJ (ORCPT ); Wed, 22 Sep 2021 04:13:09 -0400 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id CB52011B3; Wed, 22 Sep 2021 01:11:39 -0700 (PDT) Received: from [10.57.95.67] (unknown [10.57.95.67]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id CB4F93F719; Wed, 22 Sep 2021 01:11:37 -0700 (PDT) Subject: Re: [PATCH v2 10/17] arm64: Enable workaround for TRBE overwrite in FILL mode To: Anshuman Khandual , linux-arm-kernel@lists.infradead.org Cc: linux-kernel@vger.kernel.org, maz@kernel.org, catalin.marinas@arm.com, mark.rutland@arm.com, james.morse@arm.com, leo.yan@linaro.org, mike.leach@linaro.org, mathieu.poirier@linaro.org, will@kernel.org, lcherian@marvell.com, coresight@lists.linaro.org References: <20210921134121.2423546-1-suzuki.poulose@arm.com> <20210921134121.2423546-11-suzuki.poulose@arm.com> <8b23470b-da5c-c624-dc98-d30ab7c1be5d@arm.com> From: Suzuki K Poulose Message-ID: <4bc00aff-0562-bafd-b31a-d7f9af6651fa@arm.com> Date: Wed, 22 Sep 2021 09:11:36 +0100 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:78.0) Gecko/20100101 Thunderbird/78.14.0 MIME-Version: 1.0 In-Reply-To: <8b23470b-da5c-c624-dc98-d30ab7c1be5d@arm.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-GB Content-Transfer-Encoding: 7bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 22/09/2021 08:23, Anshuman Khandual wrote: > > > On 9/21/21 7:11 PM, Suzuki K Poulose wrote: >> Now that we have the work around implmented in the TRBE >> driver, add the Kconfig entries and document the errata. >> >> Cc: Mark Rutland >> Cc: Will Deacon >> Cc: Catalin Marinas >> Cc: Anshuman Khandual >> Cc: Mathieu Poirier >> Cc: Mike Leach >> Cc: Leo Yan >> Signed-off-by: Suzuki K Poulose >> --- >> Documentation/arm64/silicon-errata.rst | 4 +++ >> arch/arm64/Kconfig | 39 ++++++++++++++++++++++++++ >> 2 files changed, 43 insertions(+) >> >> diff --git a/Documentation/arm64/silicon-errata.rst b/Documentation/arm64/silicon-errata.rst >> index d410a47ffa57..2f99229d993c 100644 >> --- a/Documentation/arm64/silicon-errata.rst >> +++ b/Documentation/arm64/silicon-errata.rst >> @@ -92,12 +92,16 @@ stable kernels. >> +----------------+-----------------+-----------------+-----------------------------+ >> | ARM | Cortex-A77 | #1508412 | ARM64_ERRATUM_1508412 | >> +----------------+-----------------+-----------------+-----------------------------+ >> +| ARM | Cortex-A710 | #2119858 | ARM64_ERRATUM_2119858 | >> ++----------------+-----------------+-----------------+-----------------------------+ >> | ARM | Neoverse-N1 | #1188873,1418040| ARM64_ERRATUM_1418040 | >> +----------------+-----------------+-----------------+-----------------------------+ >> | ARM | Neoverse-N1 | #1349291 | N/A | >> +----------------+-----------------+-----------------+-----------------------------+ >> | ARM | Neoverse-N1 | #1542419 | ARM64_ERRATUM_1542419 | >> +----------------+-----------------+-----------------+-----------------------------+ >> +| ARM | Neoverse-N2 | #2139208 | ARM64_ERRATUM_2139208 | >> ++----------------+-----------------+-----------------+-----------------------------+ >> | ARM | MMU-500 | #841119,826419 | N/A | >> +----------------+-----------------+-----------------+-----------------------------+ >> +----------------+-----------------+-----------------+-----------------------------+ >> diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig >> index 077f2ec4eeb2..eac4030322df 100644 >> --- a/arch/arm64/Kconfig >> +++ b/arch/arm64/Kconfig >> @@ -666,6 +666,45 @@ config ARM64_ERRATUM_1508412 >> >> If unsure, say Y. >> >> +config ARM64_WORKAROUND_TRBE_OVERWRITE_FILL_MODE >> + bool >> + >> +config ARM64_ERRATUM_2119858 >> + bool "Cortex-A710: 2119858: workaround TRBE overwriting trace data in FILL mode" >> + default y >> + depends on CORESIGHT_TRBE >> + select ARM64_WORKAROUND_TRBE_OVERWRITE_FILL_MODE >> + help >> + This option adds the workaround for ARM Cortex-A710 erratum 2119858. >> + >> + Affected Cortex-A710 cores could overwrite upto 3 cache lines of trace >> + data at the base of the buffer (ponited by TRBASER_EL1) in FILL mode in >> + the event of a WRAP event. >> + >> + Work around the issue by always making sure we move the TRBPTR_EL1 by >> + 256bytes before enabling the buffer and filling the first 256bytes of >> + the buffer with ETM ignore packets upon disabling. >> + >> + If unsure, say Y. >> + >> +config ARM64_ERRATUM_2139208 >> + bool "Neoverse-N2: 2139208: workaround TRBE overwriting trace data in FILL mode" >> + default y >> + depends on CORESIGHT_TRBE >> + select ARM64_WORKAROUND_TRBE_OVERWRITE_FILL_MODE >> + help >> + This option adds the workaround for ARM Neoverse-N2 erratum 2139208. >> + >> + Affected Neoverse-N2 cores could overwrite upto 3 cache lines of trace >> + data at the base of the buffer (ponited by TRBASER_EL1) in FILL mode in > > s/ponited/pointed > >> + the event of a WRAP event. >> + >> + Work around the issue by always making sure we move the TRBPTR_EL1 by >> + 256bytes before enabling the buffer and filling the first 256bytes of >> + the buffer with ETM ignore packets upon disabling. >> + >> + If unsure, say Y. >> + >> config CAVIUM_ERRATUM_22375 >> bool "Cavium erratum 22375, 24313" >> default y >> > > The real errata problem description for both these erratums are exactly > the same. Rather a more generalized description should be included for > the ARM64_WORKAROUND_TRBE_OVERWRITE_FILL_MODE, which abstracts out the > problem and a corresponding solution that is implemented in the driver. > This should also help us reduce current redundancy. > The issue is what a user wants to see. A user who wants to configure the kernel specifically for a given CPU (think embedded systems), they would want to hand pick the errata for the particular CPU. So, moving the help text to an implicitly selected Kconfig symbol. I would rather keep this as it is to keep it user friendly. This doesn't affect the code size anyways. The other option is to remove all the CPU specific Kconfig symbols and update the "title" to reflect both the CPU/erratum numbers. Kind regards Suzuki