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 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 4B39FCA0FE4 for ; Fri, 30 Aug 2024 12:13:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Content-Transfer-Encoding: Content-Type:In-Reply-To:From:References:Cc:To:Subject:MIME-Version:Date: Message-ID:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=r5Izcj3dpfwqMHl/5hYk2KvAZ8VYEMlwct/tOLJM6ho=; b=MmWu2yb/2oSDE1iWn3hfSJjZkr 1EcBrvMGah9HQ6PxD7gtAyuF8DEQeNx88Si2X8uaNAxAJIi8Q+w+J1UKCKVBmERmcCC+t6g4araGZ DwKO/fdBPOgMyIKmTI84ChzwBC6qVjrjdM398vLSzGlLCI10gQMFDqcIEYPBmpewOsJ2QHawYjRVZ 4KoNc44xATGercVf1U2CyCRytmFY/4pn1VQ/LsfsXF08k9s30G1Y/+8UG1Pk2QC0yfMXuLCtaYcBb QKZKAmo70pR+yrx8XGqLeIyRVrBM2xayBeVVvJ49W3Vhxzaq7ujNF/g4FEBWVXs1hAb+ql3yL/yYP R7c+cRzw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1sk0Vb-00000006Am0-421I; Fri, 30 Aug 2024 12:13:43 +0000 Received: from foss.arm.com ([217.140.110.172]) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1sk0UZ-00000006Ag5-3cEp for linux-arm-kernel@lists.infradead.org; Fri, 30 Aug 2024 12:12:51 +0000 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 7829F339; Fri, 30 Aug 2024 05:13:03 -0700 (PDT) Received: from [10.2.76.71] (e132581.arm.com [10.2.76.71]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id E88EF3F762; Fri, 30 Aug 2024 05:12:34 -0700 (PDT) Message-ID: <655edf2e-8e0d-4c00-91a1-1af58593f597@arm.com> Date: Fri, 30 Aug 2024 13:12:33 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v1 1/9] perf: arm_spe: Introduce 'lds' capacity To: Will Deacon Cc: Arnaldo Carvalho de Melo , Mark Rutland , Suzuki K Poulose , Mike Leach , James Clark , John Garry , Namhyung Kim , Ian Rogers , Adrian Hunter , "Liang, Kan" , Jonathan Cameron , Yicong Yang , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, coresight@lists.linaro.org, linux-perf-users@vger.kernel.org References: <20240827164417.3309560-1-leo.yan@arm.com> <20240827164417.3309560-2-leo.yan@arm.com> <20240830103834.GA8000@willie-the-truck> Content-Language: en-US From: Leo Yan In-Reply-To: <20240830103834.GA8000@willie-the-truck> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240830_051240_030158_047E5D92 X-CRM114-Status: GOOD ( 19.64 ) 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: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org On 8/30/24 11:38, Will Deacon wrote: > On Tue, Aug 27, 2024 at 05:44:09PM +0100, Leo Yan wrote: >> This commit adds a new entry 'lds' in the capacity folder. 'lds' stands >> for "loaded data source". When its value is 1, it indicates the data >> source implemented, and data source packets will be recorded in the >> trace data. >> >> Signed-off-by: Leo Yan >> --- >> drivers/perf/arm_spe_pmu.c | 3 +++ >> 1 file changed, 3 insertions(+) >> >> diff --git a/drivers/perf/arm_spe_pmu.c b/drivers/perf/arm_spe_pmu.c >> index 9100d82bfabc..81c1e7627721 100644 >> --- a/drivers/perf/arm_spe_pmu.c >> +++ b/drivers/perf/arm_spe_pmu.c >> @@ -110,6 +110,7 @@ enum arm_spe_pmu_buf_fault_action { >> /* This sysfs gunk was really good fun to write. */ >> enum arm_spe_pmu_capabilities { >> SPE_PMU_CAP_ARCH_INST = 0, >> + SPE_PMU_CAP_LDS, >> SPE_PMU_CAP_ERND, >> SPE_PMU_CAP_FEAT_MAX, >> SPE_PMU_CAP_CNT_SZ = SPE_PMU_CAP_FEAT_MAX, >> @@ -118,6 +119,7 @@ enum arm_spe_pmu_capabilities { >> >> static int arm_spe_pmu_feat_caps[SPE_PMU_CAP_FEAT_MAX] = { >> [SPE_PMU_CAP_ARCH_INST] = SPE_PMU_FEAT_ARCH_INST, >> + [SPE_PMU_CAP_LDS] = SPE_PMU_FEAT_LDS, >> [SPE_PMU_CAP_ERND] = SPE_PMU_FEAT_ERND, >> }; >> >> @@ -160,6 +162,7 @@ static ssize_t arm_spe_pmu_cap_show(struct device *dev, >> >> static struct attribute *arm_spe_pmu_cap_attr[] = { >> SPE_CAP_EXT_ATTR_ENTRY(arch_inst, SPE_PMU_CAP_ARCH_INST), >> + SPE_CAP_EXT_ATTR_ENTRY(lds, SPE_PMU_CAP_LDS), >> SPE_CAP_EXT_ATTR_ENTRY(ernd, SPE_PMU_CAP_ERND), >> SPE_CAP_EXT_ATTR_ENTRY(count_size, SPE_PMU_CAP_CNT_SZ), >> SPE_CAP_EXT_ATTR_ENTRY(min_interval, SPE_PMU_CAP_MIN_IVAL), > > What will userspace do with this? I don't think you can turn LDS on/off, > so either you'll get the data source packet or you won't. Yes, LDS bit does not work as a switch. The tool in the userspace will record the LDS bit into the metadata. During decoding phase, it reads out the LDS from metadata. Based on it, the perf tool can know if the data source is supported or not, if yes then decode the data source packet. Another point is how to decide the data source packet format. Now we maintain a CPU list for tracking CPU variants which support data source trace. For long term, I would like the tool can based on hardware feature (e.g. a ID register in Arm SPE) to decide the data source format, so far it is absent. This is why LDS bit + CPU list is a more reliable way. See some discussion [1]. Thanks, Leo [1] https://lore.kernel.org/linux-perf-users/Zl9jLtiFagBcH7oH@J2N7QTR9R3/