From nobody Mon Dec 1 22:03:59 2025 Received: from mail-wm1-f48.google.com (mail-wm1-f48.google.com [209.85.128.48]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C8D64316180 for ; Fri, 28 Nov 2025 11:55:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.48 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764330954; cv=none; b=h7zauciLPuDTL46yaoapp5FXtFsRgax3U0efb7l8nvBOf7SpIW4kz64bCt1sKo83RcBFX+4l7sM7Zpn9S+Vvu8VlbXFCBUKPPfUA57KhZuJ+Pws2KYKmEd8zbBmk4pemAxuRSFy8k9/CD1fWZE21DjX3fPsyZcZSkPClx/BUsI4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764330954; c=relaxed/simple; bh=8MjwGwyZJG/4xrBU+/i8v8phFqw+MhC9anj3o1bEvtY=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=lKnzHmArEvqtzbm/MOa1d4NMJZr0AgtjEBmY5foDqy3bt6i7KUthlwyVSfou7CrzPjgGwP6ZamX0DLdt2vHBMblivsXFagYa3OmViLKu40kDVr4AYl+wzTyZNqwxwMN6wzS404juHFB+0oTxLjoMjGrTYIWacTl46j3FGY8NSpA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=cnlwitqi; arc=none smtp.client-ip=209.85.128.48 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="cnlwitqi" Received: by mail-wm1-f48.google.com with SMTP id 5b1f17b1804b1-477b198f4bcso11871475e9.3 for ; Fri, 28 Nov 2025 03:55:51 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1764330950; x=1764935750; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=YvA8MNYHofPp6XXLABhPzCmRj6ePdkRSGVrEa8M8M3Q=; b=cnlwitqijWpdHLpkTSGPl00hGUlJpoe0Fh5leEai9uKMtml0a4d/Loz9IjQtjjNgjq /QX1OTdE10Ib2Dtxel63+ltDgBX8ZYCwQQS8R242CNSJ1r5VcLRolzNrjgAQ9b94gHk+ avk3IRTthYy0wP/w1jLCgn1Up+OXuJCRySrVVPLOi92UFXiDsteRegJDJ7LSgPDrZ88y FEEP+2z/hk2XNuYTpkanJUQ+5VaF6b6RDrvfekmR1ZLQSm5/M0G0sbRWao9YqdHlvkwu 7NikdPfslxO27XunG8dmB7ilJjjCdqjFWFabgb9b5ZExR5s+ZPWMHyZ4TlwRDRcEteAW i1/Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1764330950; x=1764935750; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=YvA8MNYHofPp6XXLABhPzCmRj6ePdkRSGVrEa8M8M3Q=; b=r+G9zUdmDGcKicYYW+rAN5Rl4vQmgyWUyviU+lLVriXpnr+naAIjVM43i94eufN+VM K6vk8wbSWJ7z9fboHifqIHZqynVpXdVrc2a6eTRmEXG2Rt9GiMQborzDKLtlyaaaR0Vo QzHD8l7QfjLE5X2e5VGH8vKarYTWssQQH9S4tIlcFtTw/XPxg7yuoLNazCYKFXYygsO2 vpq93mDl/qpdTUsx8eRD4OOL4EAbaSLd0tZMOiLgc6U8vwNy8LhebDLDaGNYJ9dopcZz ZIIvR88SsfWDtlvBxLddRsZpMf6ir1BgkVAbT1EQd9H69dQ5s8I7JyyP0FBE1RVsP1wq ipgg== X-Forwarded-Encrypted: i=1; AJvYcCVb9x3mWTTT+ip/nC7cAUaYuASAHGFTnk5A1P/1roE3GdTuSzR/wBzCo74jmrZe6XRoXq359sGgbKdpNNE=@vger.kernel.org X-Gm-Message-State: AOJu0Yxjk61YHxdWUkpAjWfGbdtnjxO3QM840z+QtB7yuXd7MQA7tiSn /7Q+bT3RKmWYE79t8TfPErYVn9V4beMHoEf1spi62YQCVvs2ehSP3u1CHS8DdSITGHCSmCJhJw5 7NF8M X-Gm-Gg: ASbGncs4+NhEgAmZcQsC84rfJitFldPMpQlredVSAHjcsOFgSbHdlsx5Jou9kXsCKUg JLGu7IKzFCOGOvQt+fUBwY511Ur7Q8UnQkphSQ/hyWMkmXe3GQwqpbJxDYgbcwQEJaaJM+HyTdF mNVhCGvN/cB43cjpjlaMjzwTkqJJPF+SWkIMFDUc2+nLtaBBSVnBO8sq4i4S4oYPeDR4wmNefYJ Pl9osCf7Fx4vuV+Gj7pTegz02y3bcF6oQZRO1EY6AkkJ3ISSG7WH5MIKLoj7RDhGeqfWNZcjXQr Nup4EZB/w2F2+HHn7mvRLgEjlubyMbXnrcmH3A6IujaD4bEmqRS2aSmmTxxCpSuHotbIT4b7XF2 OIdyRLNTB3CI8DvXSCJ0X2CLZkZP+CSTyg9wwMTLqCtKa6H6zJXxrWHXfXD5JJWlC/8eWb/64pv L08ORw/U4eSmaA72BrZa6+ X-Google-Smtp-Source: AGHT+IFHgNVxLUdCo2Jshe+DO7UYaUlnjeJ0Jmjfa9pCBwvoVJUKxBfVYSLZoxpQ0dDb0+0JspQmMw== X-Received: by 2002:a05:600c:450b:b0:477:b642:9dc9 with SMTP id 5b1f17b1804b1-477c01d736dmr243431065e9.28.1764330950053; Fri, 28 Nov 2025 03:55:50 -0800 (PST) Received: from ho-tower-lan.lan ([185.48.77.170]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4790adc8bc7sm158974465e9.1.2025.11.28.03.55.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 28 Nov 2025 03:55:49 -0800 (PST) From: James Clark Date: Fri, 28 Nov 2025 11:55:13 +0000 Subject: [PATCH v8 01/13] coresight: Change syncfreq to be a u8 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251128-james-cs-syncfreq-v8-1-4d319764cc58@linaro.org> References: <20251128-james-cs-syncfreq-v8-0-4d319764cc58@linaro.org> In-Reply-To: <20251128-james-cs-syncfreq-v8-0-4d319764cc58@linaro.org> To: Suzuki K Poulose , Mike Leach , Alexander Shishkin , Jonathan Corbet , Leo Yan , Randy Dunlap Cc: coresight@lists.linaro.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org, James Clark X-Mailer: b4 0.14.0 TRCSYNCPR.PERIOD is the only functional part of TRCSYNCPR and it only has 5 valid bits so it can be stored in a u8. Reviewed-by: Mike Leach Reviewed-by: Leo Yan Tested-by: Leo Yan Signed-off-by: James Clark --- drivers/hwtracing/coresight/coresight-etm4x.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/hwtracing/coresight/coresight-etm4x.h b/drivers/hwtrac= ing/coresight/coresight-etm4x.h index 012c52fd1933..0287d19ce12e 100644 --- a/drivers/hwtracing/coresight/coresight-etm4x.h +++ b/drivers/hwtracing/coresight/coresight-etm4x.h @@ -825,7 +825,6 @@ struct etmv4_config { u32 eventctrl1; u32 stall_ctrl; u32 ts_ctrl; - u32 syncfreq; u32 ccctlr; u32 bb_ctrl; u32 vinst_ctrl; @@ -833,6 +832,7 @@ struct etmv4_config { u32 vissctlr; u32 vipcssctlr; u8 seq_idx; + u8 syncfreq; u32 seq_ctrl[ETM_MAX_SEQ_STATES]; u32 seq_rst; u32 seq_state; --=20 2.34.1 From nobody Mon Dec 1 22:04:00 2025 Received: from mail-wm1-f51.google.com (mail-wm1-f51.google.com [209.85.128.51]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B1738325700 for ; Fri, 28 Nov 2025 11:55:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.51 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764330954; cv=none; b=Udo1vlbxl/98uDSDakjvP6i6yjnspMSwqTZQ/IFG7y16kaRtMt9+ZN3IQwlNPYbzm5VOb06QMmw1kVB230iXI3ZVvURjyu/s+C5MNxf+UUZor9U2vsd+6UXmRyYgvmfk6BeZLzPs5OWCQuv45v278EUlt8ddm6CqSDVW91Dm9Qg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764330954; c=relaxed/simple; bh=VQKQPg2TEn2SsraZDnH+S4hBkvo3tilehtr7fRWsa8s=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=f0JEYJWG3a66bs33EJiE40Q8i8xID9anSsXf9EcO4B7XzsCv8FtOiG9021O4/XG5PFws4jnwqEMhaBdR1wMraeL5pzU4jqZJNXobTM4JFc10dHDixF+RImiUXpGpr6X0uyZZ4ak+ShNFMMEX7pEfnpfcQqjQFM8BRazdEyStsA8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=S+6RpSuA; arc=none smtp.client-ip=209.85.128.51 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="S+6RpSuA" Received: by mail-wm1-f51.google.com with SMTP id 5b1f17b1804b1-47790b080e4so8224305e9.3 for ; Fri, 28 Nov 2025 03:55:52 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1764330951; x=1764935751; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=9wCJgo3IXF+czdlE1yAyP50F+5uZ4Il24rpMbUbAKIo=; b=S+6RpSuAChzoNd1GwwRhsjTPBaZ/7DbRp6VkvzqjGjgbLRl+j0NTQzjQi3TFNU1Bsb F3AECjuj+JTV+Fbz0GP7sqESDsPSpzGRQzKPtBhnJJ+GhDjJxQWD2mh5xeEAHzNT12tR tZUbielOqinlLqmaENqD87YwlnI/gZZYMkV95Ma/XdSVJHZt/rdGwqp9GwfXRsI5cYAd 2kE7ntbnyszMAZ13SjXtxRSV830RUt4p9gKU3tZxRddSuQvEmgriFrSvSZ5ibdXWBmZi Kugbk2+bdz3XVESKSdQq1LH2bTD7s4zJ/GXTDtTMjmGVnbdruM+HNf6Edi+3PztAzNeN Lh/A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1764330951; x=1764935751; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=9wCJgo3IXF+czdlE1yAyP50F+5uZ4Il24rpMbUbAKIo=; b=Stl/hPSWddwu/ml0n0fAk81+R5qc0xj21yNzzYdOmEPob+ZQT908maB0QQHd758abA mriB5v5MAHtSjIg1+c7ROPyn6hlx6zxS3ApnpX8520RA0R94ykBDdCzPOSwTMuk4iH/C UAAbpNMxCXIZzMQO0bgqjrOo9uJSF91O7y6rl1f10AkVAXh4KGz9U8Djet7eI2o0JPi2 P0k8jWXjBQORXl8pIXYPfur04fafONSw54o9fVV7UEruiSP6zWaum692kf1zIybzRbyl x6i8Vdbtj3yGJNdi8Wd6o4WKFeUnO/bym2kb/QZUU6/jbU3rl6YVMIYcSgdCfq3uquXH WcXQ== X-Forwarded-Encrypted: i=1; AJvYcCVcoskq+p3hwV+HXb3wMOcHNh3w29rtP+9MAPWxlxjg8wU3aWZjKs2bVXgNAWbjTv3b9hpVWcmGLOlohAM=@vger.kernel.org X-Gm-Message-State: AOJu0YycgU2nbESG6vylLCufBUtBETguV/5w7Xroi3slwci7Ahc+N8Jh hAI3QLPOG/SwaE52siUTQzAPAP3a3hFVDmTzZJtZGQ2uE0zkrPAXLfaH8mB3l+7NJvs= X-Gm-Gg: ASbGncslR6mnkSqWaYx1/F3PkBGWxqnZryWFyduwyMpNQT4fsexYa65HYnidf6UJpPp UefepUly1vc2QCgphB7f6YMwJ/lt0WNqbRkat9dZJlq98Wdol3QFqGhqZUu9GNouvILx874ZqIE RERrD0xmYkqLBIWtGXCaeyx2UQp3pXC8LBYtcEPioOEHEwObMh+Urn/4xlu8wENc5Q+IVcU8mCR jtUVpxHwU1LJoKhNsQxQsp5d+SSDzIgVzkf+BijUPTScw0GZpDhSPDvn30nHfKooHPG5nC05X6D UpbdS3HtUGN9WmC2eaCGcpE9nFMqona8LIXoNcr8pm6UZzvV/LNaR54IYIHng2l8FC2InKDwpB/ rETQ3bys+py5rj+HY4e4A1UXVSTlQON3RC3NxIy8ba7yY8XYhw9vxe7WDohBtPhuuTBGgjjtaRC JWfNP7jLl9VlpJQxo5da6P X-Google-Smtp-Source: AGHT+IEH8XnMSqyzoApKmDX6AhUNUWYgJvQSSyuWnCcuBiDNsTGdng3bIhKQ/1hTLmU66JQfBqnS7g== X-Received: by 2002:a05:600c:3588:b0:477:bcb:24cd with SMTP id 5b1f17b1804b1-477c11179ffmr299285985e9.22.1764330951004; Fri, 28 Nov 2025 03:55:51 -0800 (PST) Received: from ho-tower-lan.lan ([185.48.77.170]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4790adc8bc7sm158974465e9.1.2025.11.28.03.55.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 28 Nov 2025 03:55:50 -0800 (PST) From: James Clark Date: Fri, 28 Nov 2025 11:55:14 +0000 Subject: [PATCH v8 02/13] coresight: Repack struct etmv4_drvdata Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251128-james-cs-syncfreq-v8-2-4d319764cc58@linaro.org> References: <20251128-james-cs-syncfreq-v8-0-4d319764cc58@linaro.org> In-Reply-To: <20251128-james-cs-syncfreq-v8-0-4d319764cc58@linaro.org> To: Suzuki K Poulose , Mike Leach , Alexander Shishkin , Jonathan Corbet , Leo Yan , Randy Dunlap Cc: coresight@lists.linaro.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org, James Clark X-Mailer: b4 0.14.0 Fix holes and convert the long list of bools to single bits to save some space because there's one of these for each ETM. Reviewed-by: Leo Yan Reviewed-by: Mike Leach Tested-by: Leo Yan Signed-off-by: James Clark --- drivers/hwtracing/coresight/coresight-etm4x.h | 36 +++++++++++++----------= ---- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/drivers/hwtracing/coresight/coresight-etm4x.h b/drivers/hwtrac= ing/coresight/coresight-etm4x.h index 0287d19ce12e..d178d79d9827 100644 --- a/drivers/hwtracing/coresight/coresight-etm4x.h +++ b/drivers/hwtracing/coresight/coresight-etm4x.h @@ -1016,27 +1016,27 @@ struct etmv4_drvdata { u8 ns_ex_level; u8 q_support; u8 os_lock_model; - bool sticky_enable; - bool boot_enable; - bool os_unlock; - bool instrp0; - bool q_filt; - bool trcbb; - bool trccond; - bool retstack; - bool trccci; - bool trc_error; - bool syncpr; - bool stallctl; - bool sysstall; - bool nooverflow; - bool atbtrig; - bool lpoverride; + bool sticky_enable : 1; + bool boot_enable : 1; + bool os_unlock : 1; + bool instrp0 : 1; + bool q_filt : 1; + bool trcbb : 1; + bool trccond : 1; + bool retstack : 1; + bool trccci : 1; + bool trc_error : 1; + bool syncpr : 1; + bool stallctl : 1; + bool sysstall : 1; + bool nooverflow : 1; + bool atbtrig : 1; + bool lpoverride : 1; + bool skip_power_up : 1; + bool paused : 1; u64 trfcr; struct etmv4_config config; struct etmv4_save_state *save_state; - bool skip_power_up; - bool paused; DECLARE_BITMAP(arch_features, ETM4_IMPDEF_FEATURE_MAX); }; =20 --=20 2.34.1 From nobody Mon Dec 1 22:04:00 2025 Received: from mail-wm1-f54.google.com (mail-wm1-f54.google.com [209.85.128.54]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BA952326D4F for ; Fri, 28 Nov 2025 11:55:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.54 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764330955; cv=none; b=fRHIbOByG3OQfNt6iXWhrFNurxHIrrDuMsSiPXeEZOuGi+H8SIwIAJf3ab5sfTRJk7DfRJaBwWK+UEsVAVaC1if6/dba6JYWItehEaM8IbyleL3Nerrx8+jUYbxtO/VZ26aMteLsn5Q2Y3MWYebEZkkelVsRG0s61a7iIhS1czc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764330955; c=relaxed/simple; bh=rEPddThUEyYMY2Lr6kCxyqOEyTYHiXKRxMJQPhYufoM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=K+bXnOJ4pGVGq5lHS1LqRlH7DPj4qbDFC3MmFNsrVPLTtGHlQAXzE+Y0F5o4nRd1T8J8j4oTjWfDqtZt5N8JjNTA8tMG6WrtaSzgi7xsZ3cSmBcYBpnQtsQUNefp/EtsBTaB8xiK+4yu4c0eEbJ3MwB5Abr4q7ugdCFdgV2bWCc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=eKlFTLhl; arc=none smtp.client-ip=209.85.128.54 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="eKlFTLhl" Received: by mail-wm1-f54.google.com with SMTP id 5b1f17b1804b1-4779adb38d3so11975175e9.2 for ; Fri, 28 Nov 2025 03:55:53 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1764330952; x=1764935752; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=Cuw09+mpuhIYFNKi8DQQhaPDq5r/kQhVj2hTbI63flY=; b=eKlFTLhleNObS3+MosOrBYKanD8Bx0OTUjn2E81Jtq7P162WN3YG1jD6RaE07Oci2y OY4gH9oCxhy6lAWjGzjUqk+muRIhwDyVw/2OHImcrbL1tZOm4GA3QcZXvs2hKVPXwNCQ zam6S3IHKgSQzcXyQaj8fDt9yjk0/g0b78F3ofR90gn70gVlb3JPNl5QGmcwfq836DSH 9JQyqpribfTv4IjbWxYILe9rb4udNyLqjIynzTx8nBT+rAs9E/khT35DRjg6RDvfL0h9 CcTKmtEJjPGQbdwru5y+cquVAlGHYzSkR6bcK/hIJ8TSoaDT7b1KmMImwh2YslhS0YCV 6tPA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1764330952; x=1764935752; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=Cuw09+mpuhIYFNKi8DQQhaPDq5r/kQhVj2hTbI63flY=; b=H3C9bp66zJ0Nt5Dhddlj4NfgQZNhNnSlPVraq1mnflYGqVbzJSKIgKt9+aLmvh1CzP yorZKp6LWdjYirAp1Erh5ewx3QDMQZ2vT9Qjz3NVTHRNeK/i6ZHy7cUM9YyPOqUo9Ozq caDy+2CAmJeB16LB/zFAFylDEADQ3lOQB9teXSjq8k7pByf1ISwpOqXPLLCoomr15jZp ZGPNFEZPW2jDUSuucyIu3QhSM/hK0c16gzv3YnpKvl3w4vGlliZtZI5h2CSJqsVyjun1 CVCjTipsWVNikvD6b9nBvKX70hVGsbSJCuR3kNEdx3euFOMlaiguovENtyD6K0PlLHtt k6eQ== X-Forwarded-Encrypted: i=1; AJvYcCX0oZD50hw6mMLafzhYk5HOwQJYmGCN/zLOiwTWNpjqwazwY3hXU/kNvFv5MnCyyUdg8tN20TkJuCW79pQ=@vger.kernel.org X-Gm-Message-State: AOJu0YxElMK4nqREabSYzsQ5EDg/giBw5w8VfTBLvTOZguEVuaU/BqLh x78tPVAPFrq3g+q/WbtCP14k9h1Jw4FaWOkLSlraTLLv0DhgIlhh9Eybuy6iqECJTPU= X-Gm-Gg: ASbGncuGG3vqhA0lMgpETvaEQSJ+j5x/o8aOBLu56jjOlEnhcj2cF4afmCP5PBWDmEV UT0vBPUjiIiz36VGAZknmGEp2OwdOAGtQlsSBQcH4l6IctjRX1JVhjpoq+aFVmiSXl3aNu1GxES iFg2ws+GPg65HZcIL7OHFa6YoRxZOaD+OLMo4d22RXby/4NlqBrCNrHSGvAApCSz2B7/uZNs4uN Wz0zto2yswdEFBtTZx4lSiHBZVuaLvDFHOvrs6QOEMaoqG4+I1DCZqnhXw3jh4qVoS7n4jyy5Sj bCj7YYtzxOtVsFQxEl6TF5S4Gc7saF1MaLMGe3yiPR0PtT86PKLsS/JJ1cI34WazakJ9HI1U0/u QvbtUJ8zPTtNa/n1tQv3u8+/LK5UJ85rfZOVWhhFnyDCz9qqpye2xWXNN7JEcDb+mN4++fJgAko FwQ3CBtotDcKojmieungbsRh8Rc+bjDdk= X-Google-Smtp-Source: AGHT+IFgEnXjtO4cXfxAM6inpDQihSyQc7Tv9HUFntpcRVF6PXqQFRNyhWq6X1yHq6mFLoSoebTg0Q== X-Received: by 2002:a05:600c:4694:b0:46e:4246:c90d with SMTP id 5b1f17b1804b1-47904ad06f3mr141247395e9.11.1764330952004; Fri, 28 Nov 2025 03:55:52 -0800 (PST) Received: from ho-tower-lan.lan ([185.48.77.170]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4790adc8bc7sm158974465e9.1.2025.11.28.03.55.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 28 Nov 2025 03:55:51 -0800 (PST) From: James Clark Date: Fri, 28 Nov 2025 11:55:15 +0000 Subject: [PATCH v8 03/13] coresight: Refactor etm4_config_timestamp_event() Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251128-james-cs-syncfreq-v8-3-4d319764cc58@linaro.org> References: <20251128-james-cs-syncfreq-v8-0-4d319764cc58@linaro.org> In-Reply-To: <20251128-james-cs-syncfreq-v8-0-4d319764cc58@linaro.org> To: Suzuki K Poulose , Mike Leach , Alexander Shishkin , Jonathan Corbet , Leo Yan , Randy Dunlap Cc: coresight@lists.linaro.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org, James Clark X-Mailer: b4 0.14.0 Remove some of the magic numbers and try to clarify some of the documentation so it's clearer how this sets up the timestamp interval. Return errors directly instead of jumping to out and returning ret, nothing needs to be cleaned up at the end and it only obscures the flow and return value. Add utilities for programming resource selectors that do compile time checks for constants or WARN_ONs for non-constant values. FIELD_PREP includes compile time checks so we only need to add an additional BUILD_BUG_ON for resource =3D=3D 0 in pair mode. Tested-by: Leo Yan Signed-off-by: James Clark --- drivers/hwtracing/coresight/coresight-etm4x-core.c | 96 ++++++++++++++----= ---- drivers/hwtracing/coresight/coresight-etm4x.h | 54 ++++++++++-- 2 files changed, 112 insertions(+), 38 deletions(-) diff --git a/drivers/hwtracing/coresight/coresight-etm4x-core.c b/drivers/h= wtracing/coresight/coresight-etm4x-core.c index 560975b70474..2ec2ae1fef58 100644 --- a/drivers/hwtracing/coresight/coresight-etm4x-core.c +++ b/drivers/hwtracing/coresight/coresight-etm4x-core.c @@ -642,18 +642,33 @@ static void etm4_enable_sysfs_smp_call(void *info) * TRCRSCTLR1 (always true) used to get the counter to decrement. From * there a resource selector is configured with the counter and the * timestamp control register to use the resource selector to trigger the - * event that will insert a timestamp packet in the stream. + * event that will insert a timestamp packet in the stream: + * + * +--------------+ + * | Resource 1 | fixed "always-true" resource + * +--------------+ + * | + * +------v-------+ + * | Counter x | (reload to 1 on underflow) + * +--------------+ + * | + * +------v--------------+ + * | Resource Selector y | (trigger on counter x =3D=3D 0) + * +---------------------+ + * | + * +------v---------------+ + * | Timestamp Generator | (timestamp on resource y) + * +----------------------+ */ static int etm4_config_timestamp_event(struct etmv4_drvdata *drvdata) { - int ctridx, ret =3D -EINVAL; - int counter, rselector; - u32 val =3D 0; + int ctridx; + int rselector; struct etmv4_config *config =3D &drvdata->config; =20 /* No point in trying if we don't have at least one counter */ if (!drvdata->nr_cntr) - goto out; + return -EINVAL; =20 /* Find a counter that hasn't been initialised */ for (ctridx =3D 0; ctridx < drvdata->nr_cntr; ctridx++) @@ -663,15 +678,19 @@ static int etm4_config_timestamp_event(struct etmv4_d= rvdata *drvdata) /* All the counters have been configured already, bail out */ if (ctridx =3D=3D drvdata->nr_cntr) { pr_debug("%s: no available counter found\n", __func__); - ret =3D -ENOSPC; - goto out; + return -ENOSPC; } =20 /* - * Searching for an available resource selector to use, starting at - * '2' since every implementation has at least 2 resource selector. - * ETMIDR4 gives the number of resource selector _pairs_, - * hence multiply by 2. + * Searching for an available resource selector to use, starting at '2' + * since resource 0 is the fixed 'always returns false' resource and 1 + * is the fixed 'always returns true' resource. See IHI0064H_b '7.3.64 + * TRCRSCTLRn, Resource Selection Control Registers, n=3D2-31'. If there + * are no resources, there would also be no counters so wouldn't get + * here. + * + * ETMIDR4 gives the number of resource selector _pairs_, hence multiply + * by 2. */ for (rselector =3D 2; rselector < drvdata->nr_resource * 2; rselector++) if (!config->res_ctrl[rselector]) @@ -680,13 +699,9 @@ static int etm4_config_timestamp_event(struct etmv4_dr= vdata *drvdata) if (rselector =3D=3D drvdata->nr_resource * 2) { pr_debug("%s: no available resource selector found\n", __func__); - ret =3D -ENOSPC; - goto out; + return -ENOSPC; } =20 - /* Remember what counter we used */ - counter =3D 1 << ctridx; - /* * Initialise original and reload counter value to the smallest * possible value in order to get as much precision as we can. @@ -694,26 +709,41 @@ static int etm4_config_timestamp_event(struct etmv4_d= rvdata *drvdata) config->cntr_val[ctridx] =3D 1; config->cntrldvr[ctridx] =3D 1; =20 - /* Set the trace counter control register */ - val =3D 0x1 << 16 | /* Bit 16, reload counter automatically */ - 0x0 << 7 | /* Select single resource selector */ - 0x1; /* Resource selector 1, i.e always true */ - - config->cntr_ctrl[ctridx] =3D val; - - val =3D 0x2 << 16 | /* Group 0b0010 - Counter and sequencers */ - counter << 0; /* Counter to use */ - - config->res_ctrl[rselector] =3D val; + /* + * Trace Counter Control Register TRCCNTCTLRn + * + * CNTCHAIN =3D 0, don't reload on the previous counter + * RLDSELF =3D true, reload counter automatically on underflow + * RLDEVENT =3D RES_SEL_FALSE (0), reload on single false resource (never= reload) + * CNTEVENT =3D RES_SEL_TRUE (1), count single fixed 'always true' resour= ce (always decrement) + */ + config->cntr_ctrl[ctridx] =3D TRCCNTCTLRn_RLDSELF | + FIELD_PREP(TRCCNTCTLRn_RLDEVENT_MASK, + etm4_res_sel_single(ETM4_RES_SEL_FALSE)) | + FIELD_PREP(TRCCNTCTLRn_CNTEVENT_MASK, + etm4_res_sel_single(ETM4_RES_SEL_TRUE)); =20 - val =3D 0x0 << 7 | /* Select single resource selector */ - rselector; /* Resource selector */ + /* + * Resource Selection Control Register TRCRSCTLRn + * + * PAIRINV =3D 0, INV =3D 0, don't invert + * GROUP =3D 2, SELECT =3D ctridx, trigger when counter 'ctridx' reaches 0 + * + * Multiple counters can be selected, and each bit signifies a counter, + * so set bit 'ctridx' to select our counter. + */ + config->res_ctrl[rselector] =3D FIELD_PREP(TRCRSCTLRn_GROUP_MASK, 2) | + FIELD_PREP(TRCRSCTLRn_SELECT_MASK, 1 << ctridx); =20 - config->ts_ctrl =3D val; + /* + * Global Timestamp Control Register TRCTSCTLR + * + * EVENT =3D generate timestamp on single resource 'rselector' + */ + config->ts_ctrl =3D FIELD_PREP(TRCTSCTLR_EVENT_MASK, + etm4_res_sel_single(rselector)); =20 - ret =3D 0; -out: - return ret; + return 0; } =20 static int etm4_parse_event_config(struct coresight_device *csdev, diff --git a/drivers/hwtracing/coresight/coresight-etm4x.h b/drivers/hwtrac= ing/coresight/coresight-etm4x.h index d178d79d9827..89d81ce4e04e 100644 --- a/drivers/hwtracing/coresight/coresight-etm4x.h +++ b/drivers/hwtracing/coresight/coresight-etm4x.h @@ -225,6 +225,50 @@ #define TRCRSCTLRn_GROUP_MASK GENMASK(19, 16) #define TRCRSCTLRn_SELECT_MASK GENMASK(15, 0) =20 +#define TRCCNTCTLRn_CNTCHAIN BIT(17) +#define TRCCNTCTLRn_RLDSELF BIT(16) +#define TRCCNTCTLRn_RLDEVENT_MASK GENMASK(15, 8) +#define TRCCNTCTLRn_CNTEVENT_MASK GENMASK(7, 0) + +#define TRCTSCTLR_EVENT_MASK GENMASK(7, 0) + +#define ETM4_RES_SEL_FALSE 0 /* Fixed function 'always false' resource sel= ector */ +#define ETM4_RES_SEL_TRUE 1 /* Fixed function 'always true' resource sele= ctor */ + +#define ETM4_RES_SEL_SINGLE_MASK GENMASK(4, 0) +#define ETM4_RES_SEL_PAIR_MASK GENMASK(3, 0) +#define ETM4_RES_SEL_TYPE_PAIR BIT(7) + +/* + * Utilities for programming EVENT resource selectors, e.g. TRCCNTCTLRn_RL= DEVENT. + * + * Resource selectors have a common format across registers: + * + * 7 6 5 4 0 + * +------+------+-------+ + * | TYPE | RES0 | SEL | + * +------+------+-------+ + * + * Where TYPE indicates whether the selector is for a single event or a pa= ir. + * When TYPE is pair, SEL is 4 bits wide and using pair 0 is UNPREDICTABLE. + * Otherwise for single it's 5 bits wide. + */ +static inline u32 etm4_res_sel_single(u8 res_sel_idx) +{ + WARN_ON_ONCE(!FIELD_FIT(ETM4_RES_SEL_SINGLE_MASK, res_sel_idx)); + return FIELD_PREP(ETM4_RES_SEL_SINGLE_MASK, res_sel_idx); +} + +static inline u32 etm4_res_sel_pair(u8 res_sel_idx) +{ + if (__builtin_constant_p(res_sel_idx)) + BUILD_BUG_ON(res_sel_idx =3D=3D 0); + WARN_ON_ONCE(!FIELD_FIT(ETM4_RES_SEL_PAIR_MASK, res_sel_idx) || + (res_sel_idx =3D=3D 0)); + return FIELD_PREP(ETM4_RES_SEL_PAIR_MASK, res_sel_idx) | + ETM4_RES_SEL_TYPE_PAIR; +} + /* * System instructions to access ETM registers. * See ETMv4.4 spec ARM IHI0064F section 4.3.6 System instructions @@ -824,7 +868,7 @@ struct etmv4_config { u32 eventctrl0; u32 eventctrl1; u32 stall_ctrl; - u32 ts_ctrl; + u32 ts_ctrl; /* TRCTSCTLR */ u32 ccctlr; u32 bb_ctrl; u32 vinst_ctrl; @@ -837,11 +881,11 @@ struct etmv4_config { u32 seq_rst; u32 seq_state; u8 cntr_idx; - u32 cntrldvr[ETMv4_MAX_CNTR]; - u32 cntr_ctrl[ETMv4_MAX_CNTR]; - u32 cntr_val[ETMv4_MAX_CNTR]; + u32 cntrldvr[ETMv4_MAX_CNTR]; /* TRCCNTRLDVRn */ + u32 cntr_ctrl[ETMv4_MAX_CNTR]; /* TRCCNTCTLRn */ + u32 cntr_val[ETMv4_MAX_CNTR]; /* TRCCNTVRn */ u8 res_idx; - u32 res_ctrl[ETM_MAX_RES_SEL]; + u32 res_ctrl[ETM_MAX_RES_SEL]; /* TRCRSCTLRn */ u8 ss_idx; u32 ss_ctrl[ETM_MAX_SS_CMP]; u32 ss_status[ETM_MAX_SS_CMP]; --=20 2.34.1 From nobody Mon Dec 1 22:04:00 2025 Received: from mail-wm1-f54.google.com (mail-wm1-f54.google.com [209.85.128.54]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C0AAF32572C for ; Fri, 28 Nov 2025 11:55:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.54 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764330956; cv=none; b=lH24CIN3S+GhGCwWd5ztcP4EG4jx5YkvbOVb8jB8q1V5PIq55Wlno0w5FC0gRd3Yo8rrOsBcIXdTZc0HDgDJjMssfWK5e401CLHU489k7YjiYPbTct0j6DE7s6gCnNloP7YJ420+FbE3eDaO9FNFq8UN+80W+37G6dm7OHVHSMs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764330956; c=relaxed/simple; bh=my4t4Zpp3sJgeh5MjovHvwT3pYLLhzF0nierX1jtTJM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=fRkOA441gt74Wyfbz4EnvSCb6QIEfXTRyA6EDf9lI9SdqrCiSWl6m6Jyx21aB+kkBUNz7EP2unoOa2ndZLLI0HPFsoh1/t3uj9dkaGZSfmhVvH6CjPBHgQF2yyLMpIfe69apIVjyIMG1yqrSJyBMSaHj18Aa4/PXLSy3J42lThc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=XTMDHbPx; arc=none smtp.client-ip=209.85.128.54 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="XTMDHbPx" Received: by mail-wm1-f54.google.com with SMTP id 5b1f17b1804b1-47118259fd8so15247125e9.3 for ; Fri, 28 Nov 2025 03:55:54 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1764330953; x=1764935753; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=P6NKswHRt2B1T1Lth0kajA34+egQTqFsQQ3qShHJFKE=; b=XTMDHbPxS9snz/aIgff75/Qeo4eFx7pff1azBWSGZhYceSoA2oFnHf8601Qst/Ve80 jHwGDzBzboLyhJWbA13Z+twiWeYhbc6OJE7927kCEknFlEFucYs45Rc2fYudsQDGuTjn 10MFdWHrIe/XuclbfUenbSZkG6Spy6ki/wg1u1KZXJlCUiSto76X4odSjeASudf8SFY/ MYMELVYIyrqF+9rB3m1ps3q5JBClbim3wdAcWGkbBn3oJxYvRJQDqkTVEzSyNHTn0ZEt LhnwKfJ9dtqhB2nv5zYPCFwda1HbR+P3wFBo2UO0F50FiE9PJ85jJbM3LezlZagNbed+ 7VUg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1764330953; x=1764935753; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=P6NKswHRt2B1T1Lth0kajA34+egQTqFsQQ3qShHJFKE=; b=Z/v0xNKozEEToyr9gqxweZZnS68I+GFM4ud4VJpEtcamqHv7H6XYApnuuAbU7mpQPB 71feU5pmhBc2Duu20j24vpMvAUPDznHIzLGZQTlKfkP8G2i7lb8JOr/Nd9pGNz/tPvoQ XUtpSaMVrJIrv5hIBqKT6oyauTyJgb1DDIv+E94m5kA0xuN2kvaarpLRohZJEIQV38mI z3HMI0M19WGHfuuc8Gz4G2IQIeNgE3YoA3xttAl1W50ElSYNTGlaySeSiG0Z1jAeijZQ uvt0EfEnDhc/sASqWT+pHA7RpSUqnjDKrSuGplKJzCuLw3uexz5cbA9uZ4YXWuoG/WKN 2Yhw== X-Forwarded-Encrypted: i=1; AJvYcCXXB5DxFKSQuUv6Q6lFYaPzx1hrOma62JMKE/Oaaku3nmQds8skkiIaassaoz/NRrC5KoQ8yRnfwSj7l/c=@vger.kernel.org X-Gm-Message-State: AOJu0Yy7Mwz16eqf1Cg/6E7pbqlxj9YLK4Tzm7yUCtFShX4bjPz96mPt gMhFIJJoxkl0zmHq0oSo56uZlnJXLWKuNPFIAPsle3hjYbep7dyv/dMfJQt703kixyI= X-Gm-Gg: ASbGnct2UyyQMPNWyCYH7NRmPKpPvKuxcCQrtN7C1q3rVtweA2qjejNelIY7KDbg8LS eLy6+Q9x9dzd5xdtOnrnQyEcUmjwzdsu5ORrnvfg8b52TQcA8+hP0ekwl3jobF4CVmFJKl/DKFw I16J7NGZUUtzynKlRHwCFhcswT/Er3+tl4fKBMySPwodkHPuQopEjXHHVeIxiq/tg8bdavlGWOY Ohy7YQW8Tx/SIh7LiTS3/XarMeTk9DdTxYUmN0oiWWg7eBUDCwZUGA/u2aUe4WBTr76pJ0x5S7c htX0TZIRvmfpONTDEzC3ifVSXoOO7AbSh6gKKdrW+kmxWyTKvy5b7PUyfX/3CthXmGr8Pyjp3wi R5cYoeadcdbFffqF9Otq2536eP1aSkdoJHDv/h/V4OptxpQe6JeNpu9sf21h8l2/pgpO5vlqubU FY8tL2peMHQdDP8WcSLiTY X-Google-Smtp-Source: AGHT+IGG6SyR+Pc3XkdqQLhR9KbEorBs/XuSc16Qz/v7snsfS3YnRvRgeWVwY1cYlOPb/CmMrFBsjg== X-Received: by 2002:a05:600c:4f46:b0:477:fcb:226b with SMTP id 5b1f17b1804b1-47904ac44c0mr158757575e9.2.1764330953033; Fri, 28 Nov 2025 03:55:53 -0800 (PST) Received: from ho-tower-lan.lan ([185.48.77.170]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4790adc8bc7sm158974465e9.1.2025.11.28.03.55.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 28 Nov 2025 03:55:52 -0800 (PST) From: James Clark Date: Fri, 28 Nov 2025 11:55:16 +0000 Subject: [PATCH v8 04/13] coresight: Hide unused ETMv3 format attributes Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251128-james-cs-syncfreq-v8-4-4d319764cc58@linaro.org> References: <20251128-james-cs-syncfreq-v8-0-4d319764cc58@linaro.org> In-Reply-To: <20251128-james-cs-syncfreq-v8-0-4d319764cc58@linaro.org> To: Suzuki K Poulose , Mike Leach , Alexander Shishkin , Jonathan Corbet , Leo Yan , Randy Dunlap Cc: coresight@lists.linaro.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org, James Clark X-Mailer: b4 0.14.0 ETMv3 only has a few attributes, and setting unused ones results in an error, so hide them to begin with. Reviewed-by: Mike Leach Tested-by: Leo Yan Signed-off-by: James Clark --- drivers/hwtracing/coresight/coresight-etm-perf.c | 37 +++++++++++++-------= ---- 1 file changed, 20 insertions(+), 17 deletions(-) diff --git a/drivers/hwtracing/coresight/coresight-etm-perf.c b/drivers/hwt= racing/coresight/coresight-etm-perf.c index 17afa0f4cdee..3805282b97e8 100644 --- a/drivers/hwtracing/coresight/coresight-etm-perf.c +++ b/drivers/hwtracing/coresight/coresight-etm-perf.c @@ -50,27 +50,23 @@ struct etm_ctxt { static DEFINE_PER_CPU(struct etm_ctxt, etm_ctxt); static DEFINE_PER_CPU(struct coresight_device *, csdev_src); =20 -/* - * The PMU formats were orignally for ETMv3.5/PTM's ETMCR 'config'; - * now take them as general formats and apply on all ETMs. - */ -PMU_FORMAT_ATTR(branch_broadcast, "config:"__stringify(ETM_OPT_BRANCH_BROA= DCAST)); PMU_FORMAT_ATTR(cycacc, "config:" __stringify(ETM_OPT_CYCACC)); -/* contextid1 enables tracing CONTEXTIDR_EL1 for ETMv4 */ -PMU_FORMAT_ATTR(contextid1, "config:" __stringify(ETM_OPT_CTXTID)); -/* contextid2 enables tracing CONTEXTIDR_EL2 for ETMv4 */ -PMU_FORMAT_ATTR(contextid2, "config:" __stringify(ETM_OPT_CTXTID2)); PMU_FORMAT_ATTR(timestamp, "config:" __stringify(ETM_OPT_TS)); PMU_FORMAT_ATTR(retstack, "config:" __stringify(ETM_OPT_RETSTK)); +PMU_FORMAT_ATTR(sinkid, "config2:0-31"); + +#if IS_ENABLED(CONFIG_CORESIGHT_SOURCE_ETM4X) +PMU_FORMAT_ATTR(branch_broadcast, "config:"__stringify(ETM_OPT_BRANCH_BROA= DCAST)); +/* contextid1 enables tracing CONTEXTIDR_EL1*/ +PMU_FORMAT_ATTR(contextid1, "config:" __stringify(ETM_OPT_CTXTID)); +/* contextid2 enables tracing CONTEXTIDR_EL2*/ +PMU_FORMAT_ATTR(contextid2, "config:" __stringify(ETM_OPT_CTXTID2)); /* preset - if sink ID is used as a configuration selector */ PMU_FORMAT_ATTR(preset, "config:0-3"); -/* Sink ID - same for all ETMs */ -PMU_FORMAT_ATTR(sinkid, "config2:0-31"); /* config ID - set if a system configuration is selected */ PMU_FORMAT_ATTR(configid, "config2:32-63"); PMU_FORMAT_ATTR(cc_threshold, "config3:0-11"); =20 - /* * contextid always traces the "PID". The PID is in CONTEXTIDR_EL1 * when the kernel is running at EL1; when the kernel is at EL2, @@ -82,27 +78,34 @@ static ssize_t format_attr_contextid_show(struct device= *dev, { int pid_fmt =3D ETM_OPT_CTXTID; =20 -#if IS_ENABLED(CONFIG_CORESIGHT_SOURCE_ETM4X) pid_fmt =3D is_kernel_in_hyp_mode() ? ETM_OPT_CTXTID2 : ETM_OPT_CTXTID; -#endif return sprintf(page, "config:%d\n", pid_fmt); } =20 static struct device_attribute format_attr_contextid =3D __ATTR(contextid, 0444, format_attr_contextid_show, NULL); +#endif =20 +/* + * ETMv3 only uses the first 3 attributes for programming itself (see + * ETM3X_SUPPORTED_OPTIONS). Sink ID is also supported for selecting a + * sink in both, but not used for configuring the ETM. The remaining + * attributes are ETMv4 specific. + */ static struct attribute *etm_config_formats_attr[] =3D { &format_attr_cycacc.attr, - &format_attr_contextid.attr, - &format_attr_contextid1.attr, - &format_attr_contextid2.attr, &format_attr_timestamp.attr, &format_attr_retstack.attr, &format_attr_sinkid.attr, +#if IS_ENABLED(CONFIG_CORESIGHT_SOURCE_ETM4X) + &format_attr_contextid.attr, + &format_attr_contextid1.attr, + &format_attr_contextid2.attr, &format_attr_preset.attr, &format_attr_configid.attr, &format_attr_branch_broadcast.attr, &format_attr_cc_threshold.attr, +#endif NULL, }; =20 --=20 2.34.1 From nobody Mon Dec 1 22:04:00 2025 Received: from mail-wm1-f54.google.com (mail-wm1-f54.google.com [209.85.128.54]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E07B7327BE0 for ; Fri, 28 Nov 2025 11:55:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.54 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764330958; cv=none; b=o/pwwGmIVAvYLUQAd+Kt3fi4oZS3sF/uEnYyS2QQn7UAL5N/TkFt1xlo8+jkJgsJEZNnu6nFqmrKUjueMv8WENBFwhJNtB5x+1KpQO4mYWcwTTHAtpYLeXRZS6RSWCuYLWBiG8jQdN47gWmHPPF6vfOM51QnZn522aCTQzcfB9M= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764330958; c=relaxed/simple; bh=GdnbucpMituGxk2oV8w7k+/3o/1bQSLSJQJgL5Aed1g=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=jYENFpQTp64ohMED0L/ffkExpZhg980jL100/x+Y22immrDIllyMl+hP8jfhP3WkAilmIohQ+HiK25gw0vsJl2OoSPKXt5Pp+kxb7TaYZNkCPxHZjzT+qk26C+Bm9SBPlFTuJrK9KdqVm3e6CRGlZc14HRXlw95Ka0TpTZJJ3Ew= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=bNY+BTLN; arc=none smtp.client-ip=209.85.128.54 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="bNY+BTLN" Received: by mail-wm1-f54.google.com with SMTP id 5b1f17b1804b1-4775895d69cso7727215e9.0 for ; Fri, 28 Nov 2025 03:55:55 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1764330954; x=1764935754; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=Pr4nDdci8UOVifXcpprI4H7jqJCIQKXg1zzthB2SzVs=; b=bNY+BTLNcXQ+a4U9QKSn6D3RMKlrUxLWZD2YOnSuFIR30q4OhN+ualsQmyFIF6m879 J1d8kFPIX7dfSFiwSCID+gmmO3H+Sn5ruAN6sQzC9LGDPiAp199crp/DszzNvabxXXPc E7FtN1cotZPfok8R2bEFjVaG8TJm9r6gEseWNcFCVK2R4f/1KbBIwsvAf9lO0PpluCGi EW1oep/hyZXmV4I/liWlKC3kzoq4OsBmAMLb3yNV3Aatk6RWB4o/TXUtP7FYxvXetLB8 NRjpkJ+vAhbZxmJkjue8pvNN08Dn2/NpWO8pMbfEJ39nJHGTHl9wdqm7lBruVBTfqxIO AsKQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1764330954; x=1764935754; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=Pr4nDdci8UOVifXcpprI4H7jqJCIQKXg1zzthB2SzVs=; b=o7BAhc31nGEOwvT2d+ZY8QonGb8uHPCz3T9QuKWYlmGe8p6YVTYcX407EY2ARWhHj/ AVetLM3EDlId7u1NLseW36caB07gQemth5Jyxn4lsOWhGMeyrbq6DxF6S+cMH0H6Za/p wFdcISd8Of95T4b9pCpfzWn+0dzbuK2dO0uQ/CQ//bQB9EEmNOq0Tibcgr3pAN1II7EN 9YPVRVuLvaGVa+Zc69V378ETJ2lc9reYQSBvY0hqBa/WYZMeEh+8Y4spdV/NjwHMe+a2 ib9nLDTsij5sqeMe4lqX5lutb2YK3TNiadv1sKgk1TPCJ8hPjn0z6ZWrunmbpw+xlf3i fb6w== X-Forwarded-Encrypted: i=1; AJvYcCVsQ3JwQtCWmwpgxAs6JUOM1zLbTSJH5wNeY1Y1VeX9Ih+QshM7SgU6LDAKquCwVdeBHh4RiE+Dh/rlsLI=@vger.kernel.org X-Gm-Message-State: AOJu0YxZMaY9BBDks+YsCH3eo1JOJb+8+snkld7F0Nn5iadjrzVGQ5uC BNLetmAJ4emvPDjgUJttia370xWWAxgv6RJ6kvEqhzmS7yS8+kHkpwvXJxY17v2w8/hnOiexzJ0 j2vBS X-Gm-Gg: ASbGncvziXmqZvXOCd9nDb1LKMc6zGUdNDTe242cpTh5K86LAh9MFNj9XClcAfTuMlh eZYar4iN9v4SOFD6SD0Z12voL0o6WGFD3t/z9jRKAm0kGZbU7/V5g2SfUK5ye+xSQ3Y1LqjV0YG v+iBX7iU5XQtVmZJ8YDO0IOPYNS9rTS5RtxFbX4B0ydfSSWgpkhO44Zi2ghVxNymYK9IIYUwJC2 RSNxdKY6WD6ifS/l9OATkMeM+3SkEh4RbR8KLPJBqS8M0cG+anWpNZh3CaYPS/AYH4XaSj3hk7s 5tvYfLKJhHcamis/s0YhARRJs/4QiaZIt484ZOpQUcQDomBBqoMPE6EtrMFUXItPc4yfZxavlne kJ4G4KMB7EyzkhXx+ciijWPATpnhIyj/BhHcZbjat3J+vx5+lJG9Jg1xbArBCtCExC/bMqxKhW4 gopWq9V/flQ8NI5tbtRi+tZ9JX3xI+KD0= X-Google-Smtp-Source: AGHT+IH/3XpT4A1WSZceDWrLpY0kj8ZW7oDMztvnIeSaGTU3X3bJPn/FUVhbtHZa44BblazZTcRyrQ== X-Received: by 2002:a05:600c:1c19:b0:477:7bca:8b3c with SMTP id 5b1f17b1804b1-47904b10379mr190183005e9.19.1764330954175; Fri, 28 Nov 2025 03:55:54 -0800 (PST) Received: from ho-tower-lan.lan ([185.48.77.170]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4790adc8bc7sm158974465e9.1.2025.11.28.03.55.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 28 Nov 2025 03:55:53 -0800 (PST) From: James Clark Date: Fri, 28 Nov 2025 11:55:17 +0000 Subject: [PATCH v8 05/13] coresight: Define format attributes with GEN_PMU_FORMAT_ATTR() Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251128-james-cs-syncfreq-v8-5-4d319764cc58@linaro.org> References: <20251128-james-cs-syncfreq-v8-0-4d319764cc58@linaro.org> In-Reply-To: <20251128-james-cs-syncfreq-v8-0-4d319764cc58@linaro.org> To: Suzuki K Poulose , Mike Leach , Alexander Shishkin , Jonathan Corbet , Leo Yan , Randy Dunlap Cc: coresight@lists.linaro.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org, James Clark X-Mailer: b4 0.14.0 This allows us to define and consume them in a unified way in later commits. A lot of the existing code has open coded bit shifts or direct usage of whole config values which is error prone and hides which bits are in use and which are free. Reviewed-by: Leo Yan Reviewed-by: Mike Leach Tested-by: Leo Yan Signed-off-by: James Clark --- drivers/hwtracing/coresight/coresight-etm-perf.c | 21 ++++++++-------- drivers/hwtracing/coresight/coresight-etm-perf.h | 31 ++++++++++++++++++++= ++++ 2 files changed, 42 insertions(+), 10 deletions(-) diff --git a/drivers/hwtracing/coresight/coresight-etm-perf.c b/drivers/hwt= racing/coresight/coresight-etm-perf.c index 3805282b97e8..bf4b105e0f41 100644 --- a/drivers/hwtracing/coresight/coresight-etm-perf.c +++ b/drivers/hwtracing/coresight/coresight-etm-perf.c @@ -13,6 +13,7 @@ #include #include #include +#include #include #include #include @@ -50,22 +51,22 @@ struct etm_ctxt { static DEFINE_PER_CPU(struct etm_ctxt, etm_ctxt); static DEFINE_PER_CPU(struct coresight_device *, csdev_src); =20 -PMU_FORMAT_ATTR(cycacc, "config:" __stringify(ETM_OPT_CYCACC)); -PMU_FORMAT_ATTR(timestamp, "config:" __stringify(ETM_OPT_TS)); -PMU_FORMAT_ATTR(retstack, "config:" __stringify(ETM_OPT_RETSTK)); -PMU_FORMAT_ATTR(sinkid, "config2:0-31"); +GEN_PMU_FORMAT_ATTR(cycacc); +GEN_PMU_FORMAT_ATTR(timestamp); +GEN_PMU_FORMAT_ATTR(retstack); +GEN_PMU_FORMAT_ATTR(sinkid); =20 #if IS_ENABLED(CONFIG_CORESIGHT_SOURCE_ETM4X) -PMU_FORMAT_ATTR(branch_broadcast, "config:"__stringify(ETM_OPT_BRANCH_BROA= DCAST)); +GEN_PMU_FORMAT_ATTR(branch_broadcast); /* contextid1 enables tracing CONTEXTIDR_EL1*/ -PMU_FORMAT_ATTR(contextid1, "config:" __stringify(ETM_OPT_CTXTID)); +GEN_PMU_FORMAT_ATTR(contextid1); /* contextid2 enables tracing CONTEXTIDR_EL2*/ -PMU_FORMAT_ATTR(contextid2, "config:" __stringify(ETM_OPT_CTXTID2)); +GEN_PMU_FORMAT_ATTR(contextid2); /* preset - if sink ID is used as a configuration selector */ -PMU_FORMAT_ATTR(preset, "config:0-3"); +GEN_PMU_FORMAT_ATTR(preset); /* config ID - set if a system configuration is selected */ -PMU_FORMAT_ATTR(configid, "config2:32-63"); -PMU_FORMAT_ATTR(cc_threshold, "config3:0-11"); +GEN_PMU_FORMAT_ATTR(configid); +GEN_PMU_FORMAT_ATTR(cc_threshold); =20 /* * contextid always traces the "PID". The PID is in CONTEXTIDR_EL1 diff --git a/drivers/hwtracing/coresight/coresight-etm-perf.h b/drivers/hwt= racing/coresight/coresight-etm-perf.h index 5febbcdb8696..c794087a0e99 100644 --- a/drivers/hwtracing/coresight/coresight-etm-perf.h +++ b/drivers/hwtracing/coresight/coresight-etm-perf.h @@ -20,6 +20,37 @@ struct cscfg_config_desc; */ #define ETM_ADDR_CMP_MAX 8 =20 +#define ATTR_CFG_FLD_preset_CFG config +#define ATTR_CFG_FLD_preset_LO 0 +#define ATTR_CFG_FLD_preset_HI 3 +#define ATTR_CFG_FLD_branch_broadcast_CFG config +#define ATTR_CFG_FLD_branch_broadcast_LO 8 +#define ATTR_CFG_FLD_branch_broadcast_HI 8 +#define ATTR_CFG_FLD_cycacc_CFG config +#define ATTR_CFG_FLD_cycacc_LO 12 +#define ATTR_CFG_FLD_cycacc_HI 12 +#define ATTR_CFG_FLD_contextid1_CFG config +#define ATTR_CFG_FLD_contextid1_LO 14 +#define ATTR_CFG_FLD_contextid1_HI 14 +#define ATTR_CFG_FLD_contextid2_CFG config +#define ATTR_CFG_FLD_contextid2_LO 15 +#define ATTR_CFG_FLD_contextid2_HI 15 +#define ATTR_CFG_FLD_timestamp_CFG config +#define ATTR_CFG_FLD_timestamp_LO 28 +#define ATTR_CFG_FLD_timestamp_HI 28 +#define ATTR_CFG_FLD_retstack_CFG config +#define ATTR_CFG_FLD_retstack_LO 29 +#define ATTR_CFG_FLD_retstack_HI 29 +#define ATTR_CFG_FLD_sinkid_CFG config2 +#define ATTR_CFG_FLD_sinkid_LO 0 +#define ATTR_CFG_FLD_sinkid_HI 31 +#define ATTR_CFG_FLD_configid_CFG config2 +#define ATTR_CFG_FLD_configid_LO 32 +#define ATTR_CFG_FLD_configid_HI 63 +#define ATTR_CFG_FLD_cc_threshold_CFG config3 +#define ATTR_CFG_FLD_cc_threshold_LO 0 +#define ATTR_CFG_FLD_cc_threshold_HI 11 + /** * struct etm_filter - single instruction range or start/stop configuratio= n. * @start_addr: The address to start tracing on. --=20 2.34.1 From nobody Mon Dec 1 22:04:00 2025 Received: from mail-wm1-f41.google.com (mail-wm1-f41.google.com [209.85.128.41]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C3BA0327C07 for ; Fri, 28 Nov 2025 11:55:56 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.41 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764330959; cv=none; b=IqyAYOingtOT9vM9o8kpiOLKyNadISizEIrRGb7aAq14OWIZfHSQioYKggbdIv1fE3Hjb+ADqjZRipWH+UAzmhRXjLfBBxWo5xzwPAdrxtTVgqgZCiak7zMZEPGRLJWeXNdpRGNx+cVCuSoIaoqOuPXcwHiAf7QSoP31bjEEDyo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764330959; c=relaxed/simple; bh=ZGYW4jE22Q+gFfa19AG+ptqVHBHrxJsL1I9dRnhrTgA=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=DZXUOKZp+70w6ajVVd/A7SJKPEE03debL+kmZmmk1IiGx0v16MxiQF5fasVyM29m+xVpNGXlwLkhcWU6TrJ1A66zUaY+k1qJqRdxt4OyGXIdTpp47WApfo0bEDaqyDkle+/9jLsU7afPpafuQNZID5b50C2fwwYRNrpLHVhtLjU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=xnANFCdr; arc=none smtp.client-ip=209.85.128.41 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="xnANFCdr" Received: by mail-wm1-f41.google.com with SMTP id 5b1f17b1804b1-477563e28a3so12395045e9.1 for ; Fri, 28 Nov 2025 03:55:56 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1764330955; x=1764935755; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=bRvaTUsN/BOLMraF1V/Jx+sgUDlEB4La/1yBhPfFT5o=; b=xnANFCdrZjf8ZN1GB/7y6E/IIKZgm2gQJ22uAclFt+mE4Yqd0+MlqWQqWgUav1eG3t ywKfzMUjS3JiDVDInL11CfQcqLanTaaGXxuF3WWiOield9Nu3bTz8vYca+K27HaQFFr+ Nj32b3TM8CnSJ1qKs8kyBcd0FCo36AmAHDn7wwuhs0QsMn4U3+WXLITGfqP65tMbzX8M DsK+n/QIVNDItsr8vm/Tv4z6VDjimn7GOKOvG2F3bLBqhGMdyZgoXE9ZdcG89g+qjIiY x4ROG6Gav+28Sprb03aTLyTlao9YLu4/f8PmpuwBDTy624WRnBXNdCG34ApRufenAEZi b5rQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1764330955; x=1764935755; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=bRvaTUsN/BOLMraF1V/Jx+sgUDlEB4La/1yBhPfFT5o=; b=dcDxuQTTeE6j/RalwXXBWwDRtpUkNldUmSGr2BmMjxkZgRO3z8tKaFexOJI74xu08/ X/qU6lTWZFIJpg5AUuqTOkEAsAcHyTyzhwb0HTKoh2KuDfxxbybmUC4zi/jLp1ZiaSYr il+AoRzRVKfoC80ug7dmC/lB9v8gUt1uSfIS1QkpTjZLXabwQioXXm4q2sC0UV9uyIba LtOwtMl3W2l96wKm/utaNOZV+9xP2DlmKljyvtFfIQib1KY3vTh7IkoIxswhT6dLWwi/ c6QAAnYsztyIp2wTjlqOsr6uDhYIkU3wCLJN3sXwaNGs+FlgVbN+JKBJOwpnK4vlrQGL uvug== X-Forwarded-Encrypted: i=1; AJvYcCWKjlQwzTQeiPddaHMIEdz2iGTNbe45PFmgRGdlZvUh15/kbcU24wcZw+6WoeZVLJCF6tA8CIKUV0OOAe0=@vger.kernel.org X-Gm-Message-State: AOJu0YyUAIVOq6sfC+lwXk2V2ijCfBA+czWmu3ex/1mpxu4HRkLOvGIx i2GpZzp5MGl7Qcv7KbM1VdNUIxr4qAsFqEG3Tvw8dLBM9mVvUaoV60IDJO5VNOWbs7r6RokNdVN DUTMI X-Gm-Gg: ASbGncthqezSEH1KPABb3wTOoHJZdRNLRVswhNQMGSgz87WLJeopbpKeJk2VpGCe4xq og3tGP3/GJtEn1BB5vAWBpEifXfyODQwWy+4Re2XWfvZlzj8YAFsqduwX7NIRosSTUZBUOdqW51 tuPhCcCTn0cVmoGLF5JTDEZTiBo2Ym5A/bRB2RCObM1pP9IWuUOWHG8YEYcxvpUJ6H3AH5x+Knk 003262XZ3byjBJxmMU4XTopAnOsw8en1AVZTSX6mxvmokprEzuuhk7ee8IZd6y5kDqXT1Q3IN1/ QlbvAdGhYnOWbTCpognDIUr3Ajx62W2h7m/ti3F0TauEUcRU+LJ7B1Scdl0Gm8gGaqrnVEk2flC 335M/JvBB2+v3k7Zf7j3HJ9cySunVPuKb6OmaOmbZ9qwmds7rNYqt6Mpwjesv+48tATNQNCKT5X em+NJ71QGmf8dN6C6jhEyb X-Google-Smtp-Source: AGHT+IHHJp7IXs6ZlGHGDXrAuQH/ZDtq9VItsBGhLegTctnw4skk5g13LG6OujHX1TW9GVSOCqfOjA== X-Received: by 2002:a05:600c:154e:b0:46e:2815:8568 with SMTP id 5b1f17b1804b1-477c05137f4mr277419485e9.10.1764330955144; Fri, 28 Nov 2025 03:55:55 -0800 (PST) Received: from ho-tower-lan.lan ([185.48.77.170]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4790adc8bc7sm158974465e9.1.2025.11.28.03.55.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 28 Nov 2025 03:55:54 -0800 (PST) From: James Clark Date: Fri, 28 Nov 2025 11:55:18 +0000 Subject: [PATCH v8 06/13] coresight: Interpret ETMv3 config with ATTR_CFG_GET_FLD() Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251128-james-cs-syncfreq-v8-6-4d319764cc58@linaro.org> References: <20251128-james-cs-syncfreq-v8-0-4d319764cc58@linaro.org> In-Reply-To: <20251128-james-cs-syncfreq-v8-0-4d319764cc58@linaro.org> To: Suzuki K Poulose , Mike Leach , Alexander Shishkin , Jonathan Corbet , Leo Yan , Randy Dunlap Cc: coresight@lists.linaro.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org, James Clark X-Mailer: b4 0.14.0 Currently we're programming attr->config directly into ETMCR after some validation. This obscures which fields are being used, and also makes it impossible to move fields around or use other configN fields in the future. Improve it by only reading the fields that are valid and then setting the appropriate ETMCR bits based on each one. The ETMCR_CTXID_SIZE part can be removed as it was never a valid option because it's not in ETM3X_SUPPORTED_OPTIONS. Reviewed-by: Leo Yan Reviewed-by: Mike Leach Tested-by: Leo Yan Signed-off-by: James Clark --- drivers/hwtracing/coresight/coresight-etm3x-core.c | 24 ++++++++++++------= ---- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/drivers/hwtracing/coresight/coresight-etm3x-core.c b/drivers/h= wtracing/coresight/coresight-etm3x-core.c index a5e809589d3e..4511fc2f8d72 100644 --- a/drivers/hwtracing/coresight/coresight-etm3x-core.c +++ b/drivers/hwtracing/coresight/coresight-etm3x-core.c @@ -28,6 +28,7 @@ #include #include #include +#include #include =20 #include "coresight-etm.h" @@ -339,21 +340,22 @@ static int etm_parse_event_config(struct etm_drvdata = *drvdata, if (attr->config & ~ETM3X_SUPPORTED_OPTIONS) return -EINVAL; =20 - config->ctrl =3D attr->config; + config->ctrl =3D 0; =20 - /* Don't trace contextID when runs in non-root PID namespace */ - if (!task_is_in_init_pid_ns(current)) - config->ctrl &=3D ~ETMCR_CTXID_SIZE; + if (ATTR_CFG_GET_FLD(attr, cycacc)) + config->ctrl |=3D ETMCR_CYC_ACC; + + if (ATTR_CFG_GET_FLD(attr, timestamp)) + config->ctrl |=3D ETMCR_TIMESTAMP_EN; =20 /* - * Possible to have cores with PTM (supports ret stack) and ETM - * (never has ret stack) on the same SoC. So if we have a request - * for return stack that can't be honoured on this core then - * clear the bit - trace will still continue normally + * Possible to have cores with PTM (supports ret stack) and ETM (never + * has ret stack) on the same SoC. So only enable when it can be honored + * - trace will still continue normally otherwise. */ - if ((config->ctrl & ETMCR_RETURN_STACK) && - !(drvdata->etmccer & ETMCCER_RETSTACK)) - config->ctrl &=3D ~ETMCR_RETURN_STACK; + if (ATTR_CFG_GET_FLD(attr, retstack) && + (drvdata->etmccer & ETMCCER_RETSTACK)) + config->ctrl |=3D ETMCR_RETURN_STACK; =20 return 0; } --=20 2.34.1 From nobody Mon Dec 1 22:04:00 2025 Received: from mail-wm1-f42.google.com (mail-wm1-f42.google.com [209.85.128.42]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BD98A328272 for ; Fri, 28 Nov 2025 11:55:57 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764330959; cv=none; b=mfEdyZ5IDY6YdWLZDWNt4eaOS1gdgZQosbh4tWa/Q8qkALbF/GA64RGnhLAzVS4KwxHmIDrly+/uEPuE7tOHYuIALMR/BxzeVtigQQV1yPeEumnM7qzRYM0Z65dC2LmJ2iFSNO2PrE2boN6AA/SgpVs9y1UjuJRuKpALbPlDnyE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764330959; c=relaxed/simple; bh=qqoEOyHFgkQ+/d+FmDiZIMG2BecOO8j1vwceae6L9yw=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=ZIhb7NacoPZC9QCojTNRVqzMnQlf4AfIb53NZMNkIiyYBlJJkXUvlrS+zb2sblqYka2sDgznN3nFBxMbuxbMbEMpm5/CTG6T6KQ5n3+N6IvD3jsNFkae6Wyw3fxh21rg0QNbeR32jJJqBDxPvH635iQn1vq5VIpp9kFHfi9IqCs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=DHgMhcaa; arc=none smtp.client-ip=209.85.128.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="DHgMhcaa" Received: by mail-wm1-f42.google.com with SMTP id 5b1f17b1804b1-477a219dbcaso15029225e9.3 for ; Fri, 28 Nov 2025 03:55:57 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1764330956; x=1764935756; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=CMHK8eau4h9JU7tjhkGUHgs7VKxsV93yd4KGWWLggZo=; b=DHgMhcaaS3l9oufysKqZMpehm878tS6uaJGkjsBaAKAvx4lPRwGpnnNza/uLY/aMxs YevtwTnkewD02BavV88pcOS8PjWIzfq2PE6Zj6A/lG9W5AtmMVoe8KpfTX8dK0ch+HAy SbnoMRCrlR26bnvFFIJvrQq2LKak4UXJSIkKvD0LCTgUE60cO4z8NuBeccuOgFXtHLJw ronpzkugF++3FJDIqxgd+2o1lMezB98pT9/1PE+E/pblmmzabwLCXOLHEZ3nUqMzDZu4 t84zTscUfsr2YpnqMnSyTGk5jSdk5yc3iAXFjsimzypezROOlFZxc16J+sE9q1rFut0M wKXg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1764330956; x=1764935756; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=CMHK8eau4h9JU7tjhkGUHgs7VKxsV93yd4KGWWLggZo=; b=Z3Rbe6kCRK452L+EIewr1H1ApQEXL8TBOPo5Mncm9UvGwF3m3pLn49FwUdXzu3s8AR KkZ4KeYFGOCgX8N3SEwjycXYXDd7LtI15FMj/4LArafHUHI5par3UgGJYzQDZiSpqckl 9jexHFAIC2eNqBiuvgZssgt/G/yqVwhWJ3NH+oucdupaz7DmsYTNfCipV3HTbELZHXfL rL9VjgNu0jEyqIME7IG657I22PZN36Em4vYdSPsc9LE3cWemF0E/p2BycnD+MHowNGM6 JAiGgxcV2Mhn+85qgnz3bRK7R2/pT5uZ0y0LEu56BiA+357DFRV3e3ThEhV+OmyQwuQo LuwQ== X-Forwarded-Encrypted: i=1; AJvYcCUtN0LnlAjOY1Bnh1BVBiaOlbufhdycXIppLhmWHQsP7NMJfL0gRDNseFEV3I9gDDeFxRA00VPABkzzNmY=@vger.kernel.org X-Gm-Message-State: AOJu0YzThc0zsFtSJ4/VsvE3+P7m9KEgWz66CtIw0+u6g78Tt/W3mCtK Im1eDcTWRmOmunRFso9YfgK8YtPfVNKxvIgRrKT6U1EgW1GHfKF6Kzcu2m4Ezh+sfNo= X-Gm-Gg: ASbGnctOFKV7b0pWYmb6pGKYPPX09yfovyMbltHlGZSXKFun3tv3VR/xzdOz5AhIbtg +Yt5Qdax6G7ti84Dw0o6O8MIoX9964B5DplzGuelAd8bqB/5ooHGlLHjeUvJZXp9CDpLqLmig5B L/IM4kRuYf+otEWZMNyooTmqVGILgOB0drlBSDmD9xny7eVSgaWkQm8EnFTV6sDtSCgpipyIHNU 0yxmnamyJ2gRoAUiTbglcBdDevbIJZctbNBkPIoPNTZLDR8va9W8XzkKs9jHfvk3wnVSyx0RyQQ EQEHDNk2iDwvoxBeeRgWynHDBUXOpiNPKrf2luDVppmJMVm4uAhw8iIsiJamWtOx1maNFij7XfO 2pEgnYLR97e0q27NYWokfRzOHiSHQgyA2wlmisJgyUnXriRpGhzuGGPZTApfsDnhN0TOcKD0paS +7oz9GrWxxflLotdLQhu5v X-Google-Smtp-Source: AGHT+IGeMULI7kQJcckUl8PhFqbeqzvrMMwqX3WFQrSju3KHYudqhjgjNPWItcVO3ZzItgHnZsRjuw== X-Received: by 2002:a05:600c:4e88:b0:46e:7247:cbc0 with SMTP id 5b1f17b1804b1-477c01d4af2mr277966615e9.18.1764330956063; Fri, 28 Nov 2025 03:55:56 -0800 (PST) Received: from ho-tower-lan.lan ([185.48.77.170]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4790adc8bc7sm158974465e9.1.2025.11.28.03.55.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 28 Nov 2025 03:55:55 -0800 (PST) From: James Clark Date: Fri, 28 Nov 2025 11:55:19 +0000 Subject: [PATCH v8 07/13] coresight: Don't reject unrecognized ETMv3 format attributes Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251128-james-cs-syncfreq-v8-7-4d319764cc58@linaro.org> References: <20251128-james-cs-syncfreq-v8-0-4d319764cc58@linaro.org> In-Reply-To: <20251128-james-cs-syncfreq-v8-0-4d319764cc58@linaro.org> To: Suzuki K Poulose , Mike Leach , Alexander Shishkin , Jonathan Corbet , Leo Yan , Randy Dunlap Cc: coresight@lists.linaro.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org, James Clark X-Mailer: b4 0.14.0 config isn't the only field, there are also config1, config2, etc. Rejecting unrecognized attributes is therefore inconsistent as it wasn't done for all fields. It was only necessary when we were directly programming attr->config into ETMCR and didn't hide the unsupported fields, but now it's not needed so remove it. Reviewed-by: Leo Yan Reviewed-by: Mike Leach Tested-by: Leo Yan Signed-off-by: James Clark --- drivers/hwtracing/coresight/coresight-etm3x-core.c | 7 ------- 1 file changed, 7 deletions(-) diff --git a/drivers/hwtracing/coresight/coresight-etm3x-core.c b/drivers/h= wtracing/coresight/coresight-etm3x-core.c index 4511fc2f8d72..584d653eda81 100644 --- a/drivers/hwtracing/coresight/coresight-etm3x-core.c +++ b/drivers/hwtracing/coresight/coresight-etm3x-core.c @@ -333,13 +333,6 @@ static int etm_parse_event_config(struct etm_drvdata *= drvdata, if (config->mode) etm_config_trace_mode(config); =20 - /* - * At this time only cycle accurate, return stack and timestamp - * options are available. - */ - if (attr->config & ~ETM3X_SUPPORTED_OPTIONS) - return -EINVAL; - config->ctrl =3D 0; =20 if (ATTR_CFG_GET_FLD(attr, cycacc)) --=20 2.34.1 From nobody Mon Dec 1 22:04:00 2025 Received: from mail-wm1-f48.google.com (mail-wm1-f48.google.com [209.85.128.48]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 89FBA325731 for ; Fri, 28 Nov 2025 11:55:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.48 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764330960; cv=none; b=u+QZ+qldYtP7LbfCcJH63XhV7wWBB41APqgMX8xECG1ug/xjOBU4R0cpTRRNPFm7cXfa+pIoWoYNCVFl/jZWgB4ZQpPxax0kWHk1+huWBv5xutCo7oniVjBkctmGCXJAp5BsKOE5wGPE4frOy8OjgzkERpyzIqxkW/UdAtDbBhw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764330960; c=relaxed/simple; bh=wjiYRFIXVdtgR1KDlT5xFBdpOzPUbttF0b46AgrWpGk=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=qNKcfCcW6prjIeufjVV5VyubY42EKolLq+Zywulmbakg+A0InL7OfsCMJrqqPXzUv6+90Sofp11QlOaQoz84jJG56E5h+N47J9OwoXC/NNFu2QuHVsu1n79XG7/CzVbQgw1c5jjeiYw6ufweb0n6jLdskBSvb4tDbWptTMpIVl8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=ZiSIOiuN; arc=none smtp.client-ip=209.85.128.48 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="ZiSIOiuN" Received: by mail-wm1-f48.google.com with SMTP id 5b1f17b1804b1-47795f6f5c0so9464585e9.1 for ; Fri, 28 Nov 2025 03:55:58 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1764330957; x=1764935757; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=K0/Qi3NjbL8DWJLM+DALCaaRy9n0Hkgp5CNeZqwH6+M=; b=ZiSIOiuN/+WQyGptWSOWmf5GkGagpm2mgEa1qT55VbePMeObw+a2xdHiv+huZ66px6 63mCFeaTYK5yjf2R5FRiwzC7LWLbzxduk69aZsST2uXJI4aVFLTkOJcAcFbYsg+zaI1a p/A63R3clHXp7wR2TxoiC8wL1RGikq9+4Rztf0mjoxtiVeGvgfMfhdGq6f43Myin06TK yDXLzcAa/Un1BXDQN43FXVgC/veSt2I6Vi/zHJxqca6VTxoY+JiKU9V9X4t1Felyw1va keIEv+SkKnja9o3Gmc5Skp7kVg6A5zrEmDHUBUfKKWPMo05NwPV1FiPT7SEAY9XcgKUb VZ9w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1764330957; x=1764935757; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=K0/Qi3NjbL8DWJLM+DALCaaRy9n0Hkgp5CNeZqwH6+M=; b=JnA8k+StSOqbqrOo+vLzggwe9ihX7Ggj7yxjm/E1FACCCSd2+opaEUN4GgM0dJ3FTC 6aRgEpKXhTkJImNbptC6UL7OsbnxkJeeNOe8lTE7OD++GWoEeohh3zSKnjtx85G1yKfB 1TY0qjU4pnAjwZFbc21OL4gsBesYaCeDUhL5Ue7VqW5yY4/5gFzmiIqjHmX+El8eTYpa ApK6ak7SRZ54mVq80HhK01jvth8lb5QmXyLDALWBd76ZyMEutTfHHynMH6h9r7UdIZhL YlSAdu2r6v3yJPY4+mu1/Uohg0VY6IKrKjD3jl2I2ddtlp0QsSoT0Rl8C6HTGq7B2xT/ +xuA== X-Forwarded-Encrypted: i=1; AJvYcCU+T0KqxUujFJKOHr+Wk/vwhe9Rvdytb4g0SlpBvJovTGx50rK9dOyRR1+ScBtHP0uhaAlZRUiw/ZRi1AE=@vger.kernel.org X-Gm-Message-State: AOJu0Ywt4qE5LS6M8k3FDc+kV299ytmoygBCjRe15KhRgCLOEUkYdWQE zyvrDgMHADrl/svHthxROcG500VhShub+ZYFI1Zu+OoHomBgx5Dy+iMHgEkR7Cp6v8g= X-Gm-Gg: ASbGncvJ8Se6KT2OqdGR5AS4Iqzzgi4wdRcqyvg5FZer0TsdJ7khnw56lcP8x6JQGo2 hdv1pbsykoIoYZTvYCcNrbAaKQhXXeZO4rS/1KGTiJCNVQ0IBktiqvWKnPNKPyR2FYaAqodR+/l nkDy/pCOW1EG3hLZmi0oDfcQ0IQ5cxgYIK5i4umq3rZzFV1rqd50BD9QON5CbBiBanbQ3mi7i7v fuXH77AUREE5IfwqX2Did7fbeOXADWGc4wOv5KJH4kaxwKE/OVWEwCGJlcnhEoPYP6g+6AxPOQK VxYhjWwONNU9oBvuWoj0dgBrlhe2kYekMaxCx3h0PbRSQ+hLqJj5Bb+ha3wgIaOdaf9FCwdbQ1q H0iUsfUcIpnDm939mKkcHUU/epP0BH2Q78PdoRKv19NJ9zZ+DGK6b5gw6zqshFN/5XyoiBG3yFc bjnIPDcpj7a1jkDpBxz4sg X-Google-Smtp-Source: AGHT+IHV6cR5WG+cHm605aoGAD0fWpVavwZ5XX95yWGTIYMZtBRLmiZN7jZIjMp/OqRBrFXTsFoylQ== X-Received: by 2002:a05:600c:3b05:b0:477:9a28:b09a with SMTP id 5b1f17b1804b1-477c00e7900mr301950305e9.0.1764330956965; Fri, 28 Nov 2025 03:55:56 -0800 (PST) Received: from ho-tower-lan.lan ([185.48.77.170]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4790adc8bc7sm158974465e9.1.2025.11.28.03.55.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 28 Nov 2025 03:55:56 -0800 (PST) From: James Clark Date: Fri, 28 Nov 2025 11:55:20 +0000 Subject: [PATCH v8 08/13] coresight: Interpret perf config with ATTR_CFG_GET_FLD() Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251128-james-cs-syncfreq-v8-8-4d319764cc58@linaro.org> References: <20251128-james-cs-syncfreq-v8-0-4d319764cc58@linaro.org> In-Reply-To: <20251128-james-cs-syncfreq-v8-0-4d319764cc58@linaro.org> To: Suzuki K Poulose , Mike Leach , Alexander Shishkin , Jonathan Corbet , Leo Yan , Randy Dunlap Cc: coresight@lists.linaro.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org, James Clark X-Mailer: b4 0.14.0 The "config:" string construction in format_attr_contextid_show() can be removed because it either showed the existing context1 or context2 formats which have already been generated, so can be called themselves. The other conversions are straightforward replacements. Tested-by: Leo Yan Signed-off-by: James Clark --- drivers/hwtracing/coresight/coresight-etm-perf.c | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/drivers/hwtracing/coresight/coresight-etm-perf.c b/drivers/hwt= racing/coresight/coresight-etm-perf.c index bf4b105e0f41..3c8a6f795094 100644 --- a/drivers/hwtracing/coresight/coresight-etm-perf.c +++ b/drivers/hwtracing/coresight/coresight-etm-perf.c @@ -77,10 +77,9 @@ static ssize_t format_attr_contextid_show(struct device = *dev, struct device_attribute *attr, char *page) { - int pid_fmt =3D ETM_OPT_CTXTID; - - pid_fmt =3D is_kernel_in_hyp_mode() ? ETM_OPT_CTXTID2 : ETM_OPT_CTXTID; - return sprintf(page, "config:%d\n", pid_fmt); + if (is_kernel_in_hyp_mode()) + return contextid2_show(dev, attr, page); + return contextid1_show(dev, attr, page); } =20 static struct device_attribute format_attr_contextid =3D @@ -319,7 +318,7 @@ static bool sinks_compatible(struct coresight_device *a, static void *etm_setup_aux(struct perf_event *event, void **pages, int nr_pages, bool overwrite) { - u32 id, cfg_hash; + u32 sink_hash, cfg_hash; int cpu =3D event->cpu; cpumask_t *mask; struct coresight_device *sink =3D NULL; @@ -332,13 +331,12 @@ static void *etm_setup_aux(struct perf_event *event, = void **pages, INIT_WORK(&event_data->work, free_event_data); =20 /* First get the selected sink from user space. */ - if (event->attr.config2 & GENMASK_ULL(31, 0)) { - id =3D (u32)event->attr.config2; - sink =3D user_sink =3D coresight_get_sink_by_id(id); - } + sink_hash =3D ATTR_CFG_GET_FLD(&event->attr, sinkid); + if (sink_hash) + sink =3D user_sink =3D coresight_get_sink_by_id(sink_hash); =20 /* check if user wants a coresight configuration selected */ - cfg_hash =3D (u32)((event->attr.config2 & GENMASK_ULL(63, 32)) >> 32); + cfg_hash =3D ATTR_CFG_GET_FLD(&event->attr, configid); if (cfg_hash) { if (cscfg_activate_config(cfg_hash)) goto err; --=20 2.34.1 From nobody Mon Dec 1 22:04:00 2025 Received: from mail-wm1-f41.google.com (mail-wm1-f41.google.com [209.85.128.41]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A5FBD32936E for ; Fri, 28 Nov 2025 11:55:59 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.41 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764330962; cv=none; b=G2HMH0+7zh4pKwaKugYzfLCuTLT+mpsYUCNOSnzPXeUhyzQz2Zx+5CKhdRBWPNXyKFYOEuXY8IXos0QlQVXMBeuv5xf253oq2pRev1yLt3XCcDh+g9GFY/DJMM5iC3uRP8gJ0B5SOELfgHxyux1ydPbiNQLSFeNpWq9o+YU5YSI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764330962; c=relaxed/simple; bh=oojn1Q2oz2LQF81+BuEH6IiwZcCbYqPy0W372S4oSK4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=kCMzCAYetWTU6c0NQtMUVLkWnWgMd60nTEtaZu8Kt4/O5fIzoqP7TiiH5VwnNFFHr2jl7APf7542tW4xtPH8++MnJ9UN3qjy3QQ1u2vWINRKIvGMqkIi4M9DoOud7kfRSPGBEbx2QCpIFg2wGAZyc1HprlB5FXj/vF20xu4t3ew= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=v8tJSr1v; arc=none smtp.client-ip=209.85.128.41 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="v8tJSr1v" Received: by mail-wm1-f41.google.com with SMTP id 5b1f17b1804b1-477563e28a3so12395465e9.1 for ; Fri, 28 Nov 2025 03:55:59 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1764330958; x=1764935758; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=f/X8/s0XmEBVcp92RiDvltwq9YKc36aF7AB3/15oKmM=; b=v8tJSr1vdIYJSeGzB797iropr0GbsX31uHkrXrtF8bSfsz6JN7h8PseYGtaq+lw0bP IpKA4Y89jbLkvifhC9fWu6SNK+wRQi1ZqlBuVLW3xuDQcAqZtZ5UrDlptCRCsWlXVSOn iskDuTj58juJ09ZF1LkbgS1JM5DAEM9K36syjUzVLa1lxeEpwRBIEs6paw2i+/pPlcKr tbG8Bo0J7xJfYdNMmzQaOS8fqh3XYurwvcnfQTh/yaO+/M+qjHpgzKOziSdQFX8SIjZ3 ya7VAPmw9Kj9KvjcAnv3Kxfkg30ZQvKeT2axccye621cQ5aQWoLOarTG/bXvlh7Lvz2W DLhA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1764330958; x=1764935758; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=f/X8/s0XmEBVcp92RiDvltwq9YKc36aF7AB3/15oKmM=; b=YTlucEf/RAi6X/4s9MvK5edR1gz20oqvRumG+hRmLOnfur9VlvfJcqNboLm1V//9jn m7kGCtdyUYejCfOXZDYqUB4jZo97DFDpQtnxIkUT1xxwhPMV810W0hxzrcnOXF39lkNh dMamAfU1Bd7h93jYmfeYxtxnxLVSF5iEoRoC1BJPK8vAgJZkhfnx8z96+JxkHc0UNpQg ws3NUFoHnfwhhr5nbn0DV/eA+BWglB65MfJuDRs22RZpsJQqe3J0F8GGXA9DLRMibqOo mM1Pv5wfswQ/kyL3oDM+SMO4i5efvKSKQls5HhxwbHCT1IV2RHbYGZb1VOHpJ+IcOhTg MRoQ== X-Forwarded-Encrypted: i=1; AJvYcCWCoGs6Dv12rN9JjXN1dH+C45AAWqh6l89TvSmpab74XtxK6KTux85TF3esnWJg17tob6iAx9AFMnGD5sQ=@vger.kernel.org X-Gm-Message-State: AOJu0YwNSYFgq43KL82C8C7fk1oR1QD4rHG04cGWWBTpmNdGWnYddZ5B EwQDze5cNp6Z/2iWaUCdOy7togEijHBDCVamwKoLj3VbhGsGlKFDMxN8yO9re4pmTJ0= X-Gm-Gg: ASbGncsJB4zEg1a0uac50P8AzyoVXagW1kt4igcUPWoKNa3IfrKigI1FFhlX6ATdDfW QL4TdValrA/++qPz3CjfWEYQEiOz6eSNfqtyts7jfjRdLCvk+cl/CSEsqtpP5wAnA3QpzYJUPTr gv8KhViy6T+2A0cOj+pL0YtlFoCYv5/CgxwImKXZ9XQVXiKnmNSW2wWhCELTQS3aLy+JDJP5W8X FWeUX7rVNBoDKkboEMdznpVW36EB9TjQgc1F9aQYgyp1oPq0XabzqIN+9Lb7/RNzCT09psAGeGZ k/WjudqHCOWM6LH6NZtCgRQHNlBURinb4Nn5N6gf8IM+G405MHf1GT5YrZJpkFCYsEi1QJvhk6g gg5nC+kwWPzLeeizAgcykZIwpUlrW08sWvkNUQur2MMMtF2qtbvpghxGjO//CC0Ya5rNoBZs/Xa TRtKY4OewawV8mhCe6qpYS X-Google-Smtp-Source: AGHT+IGaQRyFBvi4xXG1OSwj8+KoP6rOM24a0UhWoYDoOvAcD4TFnR9g6F/aB9eSqTg5kCu4JYRodQ== X-Received: by 2002:a05:600c:4746:b0:477:a289:d854 with SMTP id 5b1f17b1804b1-477c04cfa31mr284161715e9.5.1764330957915; Fri, 28 Nov 2025 03:55:57 -0800 (PST) Received: from ho-tower-lan.lan ([185.48.77.170]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4790adc8bc7sm158974465e9.1.2025.11.28.03.55.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 28 Nov 2025 03:55:57 -0800 (PST) From: James Clark Date: Fri, 28 Nov 2025 11:55:21 +0000 Subject: [PATCH v8 09/13] coresight: Interpret ETMv4 config with ATTR_CFG_GET_FLD() Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251128-james-cs-syncfreq-v8-9-4d319764cc58@linaro.org> References: <20251128-james-cs-syncfreq-v8-0-4d319764cc58@linaro.org> In-Reply-To: <20251128-james-cs-syncfreq-v8-0-4d319764cc58@linaro.org> To: Suzuki K Poulose , Mike Leach , Alexander Shishkin , Jonathan Corbet , Leo Yan , Randy Dunlap Cc: coresight@lists.linaro.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org, James Clark X-Mailer: b4 0.14.0 Remove hard coded bitfield extractions and shifts and replace with ATTR_CFG_GET_FLD(). ETM4_CFG_BIT_BB was defined to give the register bit positions to userspace, TRCCONFIGR_BB should be used in the kernel so replace it. Reviewed-by: Leo Yan Reviewed-by: Mike Leach Tested-by: Leo Yan Signed-off-by: James Clark --- drivers/hwtracing/coresight/coresight-etm4x-core.c | 44 ++++++++++--------= ---- 1 file changed, 19 insertions(+), 25 deletions(-) diff --git a/drivers/hwtracing/coresight/coresight-etm4x-core.c b/drivers/h= wtracing/coresight/coresight-etm4x-core.c index 2ec2ae1fef58..b457f182efbe 100644 --- a/drivers/hwtracing/coresight/coresight-etm4x-core.c +++ b/drivers/hwtracing/coresight/coresight-etm4x-core.c @@ -29,6 +29,7 @@ #include #include #include +#include #include #include #include @@ -780,17 +781,17 @@ static int etm4_parse_event_config(struct coresight_d= evice *csdev, goto out; =20 /* Go from generic option to ETMv4 specifics */ - if (attr->config & BIT(ETM_OPT_CYCACC)) { + if (ATTR_CFG_GET_FLD(attr, cycacc)) { config->cfg |=3D TRCCONFIGR_CCI; /* TRM: Must program this for cycacc to work */ - cc_threshold =3D attr->config3 & ETM_CYC_THRESHOLD_MASK; + cc_threshold =3D ATTR_CFG_GET_FLD(attr, cc_threshold); if (!cc_threshold) cc_threshold =3D ETM_CYC_THRESHOLD_DEFAULT; if (cc_threshold < drvdata->ccitmin) cc_threshold =3D drvdata->ccitmin; config->ccctlr =3D cc_threshold; } - if (attr->config & BIT(ETM_OPT_TS)) { + if (ATTR_CFG_GET_FLD(attr, timestamp)) { /* * Configure timestamps to be emitted at regular intervals in * order to correlate instructions executed on different CPUs @@ -810,17 +811,17 @@ static int etm4_parse_event_config(struct coresight_d= evice *csdev, } =20 /* Only trace contextID when runs in root PID namespace */ - if ((attr->config & BIT(ETM_OPT_CTXTID)) && + if (ATTR_CFG_GET_FLD(attr, contextid1) && task_is_in_init_pid_ns(current)) /* bit[6], Context ID tracing bit */ config->cfg |=3D TRCCONFIGR_CID; =20 /* - * If set bit ETM_OPT_CTXTID2 in perf config, this asks to trace VMID - * for recording CONTEXTIDR_EL2. Do not enable VMID tracing if the - * kernel is not running in EL2. + * If set bit contextid2 in perf config, this asks to trace VMID for + * recording CONTEXTIDR_EL2. Do not enable VMID tracing if the kernel + * is not running in EL2. */ - if (attr->config & BIT(ETM_OPT_CTXTID2)) { + if (ATTR_CFG_GET_FLD(attr, contextid2)) { if (!is_kernel_in_hyp_mode()) { ret =3D -EINVAL; goto out; @@ -831,26 +832,22 @@ static int etm4_parse_event_config(struct coresight_d= evice *csdev, } =20 /* return stack - enable if selected and supported */ - if ((attr->config & BIT(ETM_OPT_RETSTK)) && drvdata->retstack) + if (ATTR_CFG_GET_FLD(attr, retstack) && drvdata->retstack) /* bit[12], Return stack enable bit */ config->cfg |=3D TRCCONFIGR_RS; =20 /* - * Set any selected configuration and preset. - * - * This extracts the values of PMU_FORMAT_ATTR(configid) and PMU_FORMAT_A= TTR(preset) - * in the perf attributes defined in coresight-etm-perf.c. - * configid uses bits 63:32 of attr->config2, preset uses bits 3:0 of att= r->config. - * A zero configid means no configuration active, preset =3D 0 means no p= reset selected. + * Set any selected configuration and preset. A zero configid means no + * configuration active, preset =3D 0 means no preset selected. */ - if (attr->config2 & GENMASK_ULL(63, 32)) { - cfg_hash =3D (u32)(attr->config2 >> 32); - preset =3D attr->config & 0xF; + cfg_hash =3D ATTR_CFG_GET_FLD(attr, configid); + if (cfg_hash) { + preset =3D ATTR_CFG_GET_FLD(attr, preset); ret =3D cscfg_csdev_enable_active_config(csdev, cfg_hash, preset); } =20 /* branch broadcast - enable if selected and supported */ - if (attr->config & BIT(ETM_OPT_BRANCH_BROADCAST)) { + if (ATTR_CFG_GET_FLD(attr, branch_broadcast)) { if (!drvdata->trcbb) { /* * Missing BB support could cause silent decode errors @@ -859,7 +856,7 @@ static int etm4_parse_event_config(struct coresight_dev= ice *csdev, ret =3D -EINVAL; goto out; } else { - config->cfg |=3D BIT(ETM4_CFG_BIT_BB); + config->cfg |=3D TRCCONFIGR_BB; } } =20 @@ -1083,11 +1080,8 @@ static int etm4_disable_perf(struct coresight_device= *csdev, return -EINVAL; =20 etm4_disable_hw(drvdata); - /* - * The config_id occupies bits 63:32 of the config2 perf event attr - * field. If this is non-zero then we will have enabled a config. - */ - if (attr->config2 & GENMASK_ULL(63, 32)) + /* If configid is non-zero then we will have enabled a config. */ + if (ATTR_CFG_GET_FLD(attr, configid)) cscfg_csdev_disable_active_config(csdev); =20 /* --=20 2.34.1 From nobody Mon Dec 1 22:04:00 2025 Received: from mail-wm1-f54.google.com (mail-wm1-f54.google.com [209.85.128.54]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1CDB732693F for ; Fri, 28 Nov 2025 11:56:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.54 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764330963; cv=none; b=GyDwcTdZI5ko06F59ZMd+HuEI42o0xGmH97ub+Cc9MdER1eaU1HiAF7LH6SNOFSi+g3xm8jTXVY5Txu6o36dqTnP0wwb8+IPTurjZn+yy4Pa7WPsRxkvPfjZ1evKZubZUQA0kZ7EMRFpPAwwfiZHZaMo11ZJToy29SQPjieOP8Q= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764330963; c=relaxed/simple; bh=C/+rg8IAxTevzxpO/Se4XE1tccwa/+JqcQ3ThDH0/l0=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=dHmoOJxqB5t7Mbao9vOUiPeA4THpZROWJFJJ4plSB5sCqywSgfiTXOU4YjYM2zPRtpKqcd/rwOky/6XxcDAzRG5oCMjC6jD/erdAVQBslRnf0XZakE2h10eeJdlIhAQ7moOxefahmzJaE9rEUs9pRqr/7o4D5+hQ4Pb37iFvoog= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=yc9T6+W/; arc=none smtp.client-ip=209.85.128.54 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="yc9T6+W/" Received: by mail-wm1-f54.google.com with SMTP id 5b1f17b1804b1-47774d3536dso14571395e9.0 for ; Fri, 28 Nov 2025 03:56:01 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1764330959; x=1764935759; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=ae53kt1kaP5kLWZ/U4gl1GbpsgIlbD/90J2vkmwtJMY=; b=yc9T6+W/9rWbU5yNQSCUdbj77YZB0RdPpXz1AqTOlNiZDM8BM8lbDpwwR/D42FA43p zzne4prx+3DtmhpVCEICrMF2Gx5XPPSJeCAqtslqWFci1nkxr0fT9UI0IYv5t8ysNMhZ 9HA5LSjy2F40mbxD/6e2VLXUz4QgV8ggZR4BOpUm3Yw/fV9OeiflJf6PMIW/6qltthO3 JIkMy7TY9eWrX33ejC7wCpQ7tiiQLek3v9mBZi8hxn7AtleMsRwAs29dNT4+AtGomdnk YikmRXsFPikmjvfuYvzxcFZwFOIGR6M6C+hEx4im0zsK2jKy7YqNIRw4LkG2gbH0ax5J qN2Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1764330959; x=1764935759; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=ae53kt1kaP5kLWZ/U4gl1GbpsgIlbD/90J2vkmwtJMY=; b=gIkvPg40wCWMW28bWoBud96bWNPQpqT0c0218FLGgefeBd2NfbjPlKewalhO6e+Gx9 KhR2H9xzhsTA0tBUv4Ppg30QCjO4Ek1KXTzm2I8Mq3kEUEQgOcNDYd/71TWhQY9fzAcl WJaXrZXirUXovxLZoK4ep1Ncy+aJJCgvF5AEN+VQ9nD+dlQaWQU9IBG4NfzpOkRa9jPx NYHp5Rjwf/cLMbrhn5zS9ao/BLhJ1/pk8NQhldi0+IXuI9xW21xAhzk+ZrQPlJEM11Tv SeKqMfovlhGYbNWGbDG16LR9PcxJYXLLJiuV+xxiQ80SZK4IvB+meL60cKRCReD9qCl6 7usQ== X-Forwarded-Encrypted: i=1; AJvYcCXpVsC9kc32t5A+FJ5d8m/TyZafC24c1x3p/ohCUKug1DuabqtZm/60vexZ8EHRJicudEopH6IenjnUbys=@vger.kernel.org X-Gm-Message-State: AOJu0YwptVwI5Ry2PWXHz0wVwNh8Z1PU6TrEKmRLg4qc1JKyIy1uwopa FHyH1Vql36wttOIrpWTMcr7K8aC5pCj1Y8CaTd+oqC84ReReMhueotkiiXzIBxehRRk= X-Gm-Gg: ASbGncs6o0LdWWPkWTFZVJ0jVqw6CUgC3q+gdiZCXEURlYir7H2da6lZ7yxPNgbDWhy byLcXgUJynndVs2ArYn7jVaUcX0ztZQuju0SfD2lLLX+tLOYRBjrMbCd2GjP3PiNa/dm2Q9nhMK 7+2FzSBvnXBmD8KDYFnUyuDVF2rT/asMHD9phnzgNg5xZwUX9Waos+B3VUYS8rJMaaySNQRnSxV bbpwOQ+rzx13hlvdlqfJUGDSP9yNgeiNf+daMoL92wKF4HAEgijAr7Sw0zNawT+jdtOzoumEPd9 Mrb/M8YgSC236m5KK1UIVV7j0AG7x7LFg/20kiCjONFHRaiIf9a1cgrsIJsfeYiBe/wbmTvMZuu zjAhPtk4paS/Vw+sBMvMOs0FDk6zyTitaWq2Ii54CTjQGanAI80LdraM+uksh+TRNAg3vtuzeFa mLIdcUAEYNTtols4yx+6oI X-Google-Smtp-Source: AGHT+IHmmXmZWvxFJIN++KvkjNQAu8BrPSpq+PPtR4UIJjgdT7j1BzkY1f2m+jA5FMpwm/eknom5XQ== X-Received: by 2002:a05:600c:3784:b0:479:1348:c63e with SMTP id 5b1f17b1804b1-4791348cca8mr38526545e9.9.1764330958941; Fri, 28 Nov 2025 03:55:58 -0800 (PST) Received: from ho-tower-lan.lan ([185.48.77.170]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4790adc8bc7sm158974465e9.1.2025.11.28.03.55.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 28 Nov 2025 03:55:58 -0800 (PST) From: James Clark Date: Fri, 28 Nov 2025 11:55:22 +0000 Subject: [PATCH v8 10/13] coresight: Remove misleading definitions Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251128-james-cs-syncfreq-v8-10-4d319764cc58@linaro.org> References: <20251128-james-cs-syncfreq-v8-0-4d319764cc58@linaro.org> In-Reply-To: <20251128-james-cs-syncfreq-v8-0-4d319764cc58@linaro.org> To: Suzuki K Poulose , Mike Leach , Alexander Shishkin , Jonathan Corbet , Leo Yan , Randy Dunlap Cc: coresight@lists.linaro.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org, James Clark X-Mailer: b4 0.14.0 ETM_OPT_* definitions duplicate the PMU format attributes that have always been published in sysfs. Hardcoding them here makes it misleading as to what the 'real' PMU API is and prevents attributes from being rearranged in the future. ETM4_CFG_BIT_* definitions just define what the Arm Architecture is which is not the responsibility of the kernel to do and doesn't scale to other registers or versions of ETM. It's not an actual software ABI/API and these definitions here mislead that it is. Any tools using the first ones would be broken anyway as they won't work when attributes are moved, so removing them is the right thing to do and will prompt a fix. Tools using the second ones can trivially redefine them locally. Perf also has its own copy of the headers so both of these things can be fixed up at a later date. Reviewed-by: Leo Yan Reviewed-by: Mike Leach Tested-by: Leo Yan Signed-off-by: James Clark --- include/linux/coresight-pmu.h | 24 ------------------------ 1 file changed, 24 deletions(-) diff --git a/include/linux/coresight-pmu.h b/include/linux/coresight-pmu.h index 89b0ac0014b0..2e179abe472a 100644 --- a/include/linux/coresight-pmu.h +++ b/include/linux/coresight-pmu.h @@ -21,30 +21,6 @@ */ #define CORESIGHT_LEGACY_CPU_TRACE_ID(cpu) (0x10 + (cpu * 2)) =20 -/* - * Below are the definition of bit offsets for perf option, and works as - * arbitrary values for all ETM versions. - * - * Most of them are orignally from ETMv3.5/PTM's ETMCR config, therefore, - * ETMv3.5/PTM doesn't define ETMCR config bits with prefix "ETM3_" and - * directly use below macros as config bits. - */ -#define ETM_OPT_BRANCH_BROADCAST 8 -#define ETM_OPT_CYCACC 12 -#define ETM_OPT_CTXTID 14 -#define ETM_OPT_CTXTID2 15 -#define ETM_OPT_TS 28 -#define ETM_OPT_RETSTK 29 - -/* ETMv4 CONFIGR programming bits for the ETM OPTs */ -#define ETM4_CFG_BIT_BB 3 -#define ETM4_CFG_BIT_CYCACC 4 -#define ETM4_CFG_BIT_CTXTID 6 -#define ETM4_CFG_BIT_VMID 7 -#define ETM4_CFG_BIT_TS 11 -#define ETM4_CFG_BIT_RETSTK 12 -#define ETM4_CFG_BIT_VMID_OPT 15 - /* * Interpretation of the PERF_RECORD_AUX_OUTPUT_HW_ID payload. * Used to associate a CPU with the CoreSight Trace ID. --=20 2.34.1 From nobody Mon Dec 1 22:04:00 2025 Received: from mail-wm1-f47.google.com (mail-wm1-f47.google.com [209.85.128.47]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4530B329E69 for ; Fri, 28 Nov 2025 11:56:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.47 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764330964; cv=none; b=uXMugZpfXsa21pE1HJ8ODdynR6kd38cWd37nWFeJywZiOh8c5qIEv04jraOpmD017f8sICGiX9BdpnUQBo0ecORlEztqg/EOxiaqU4LhxNegmGqPWXzpelqd6S8hVpZV9Y+WU4oOho/uv8BS59xAwRuFWBvuqOqB/ShbdHojBSw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764330964; c=relaxed/simple; bh=SS/s8QBA/va9cTDHskVqLAp1wGdCoVI/9SaA59A2p/c=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=jC76dqg+aztA4i+15yUQCUuE2NdWRUMFi3fKAR21k+qaJfMuDnE3GctxhYqiSKc3gWIXj/VyldMDJGzZ6W3haSNOEXkvOdlGHqc6mMpWfLLj8keiDBGT2ywulMI8GBiDn5ns96/tJnV5Q3qIItyefpHknGLKPQkYd0CIqUb3AJY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=rDokXgqS; arc=none smtp.client-ip=209.85.128.47 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="rDokXgqS" Received: by mail-wm1-f47.google.com with SMTP id 5b1f17b1804b1-477632d9326so10427775e9.1 for ; Fri, 28 Nov 2025 03:56:01 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1764330960; x=1764935760; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=EF8yFRu7uobTFdxOcMGHqxmlNjOlv3Yom5cRf9iiNv0=; b=rDokXgqSGZWIhlO3qYLC/dNSMZyWwPFjyqe99UCwkZWiZdtvh3Y/WQO4hziymfxd8S eqrOiid0azwED5qqspEarOEanU1taW/eWkKFtSMKUxVLPjqWuzmuTBiqIlXST5gzsyxS dyAO8ErT71rOgG096IJzQ13jlFTlRF7oTlHuuF0Mn15RLzNTysS6/pqwZ+GDLgHjgljW ddw0dddJY8nhHv4qBQf++nros/GDrNNnt2PsYsApraS9AlOsCy4F1QKkkqgXhokiHCfn 3XgxSs5d+qoba4kApnX6lv1PWEXQr5SXfI4tzXQSLZsZsPuEuTJhrvLP4IFUXOPke+iI QA1A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1764330960; x=1764935760; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=EF8yFRu7uobTFdxOcMGHqxmlNjOlv3Yom5cRf9iiNv0=; b=Nk+j2kZD4UbYdYTf110TGn3w5TvBhmEuwN3BAmLU5aGWFiO5eKR3zVl7x8lRKqmDiH 5FBmMq1uM4pF5BFJ3m3Vf/urUtebtrnPWg1D3O4E5PF8LPWUPzBQCxYKhtC2UkPRd1ru opYuCNXpGfqV7EfKVvnBDd8nMUK30KN9V9l335YPPLEXCe37m+8tL1RijHo11Xkb1N3L j+re85S82JffZorVVVI4luxDg0XPeUNfgfJNWJTjH9bY/1oKWNYUVswV8e2n/B5prNEn Fkl9ma9rF1SDspbJ29mttZxAAOAJnh8jNaeuKwyqelZa4R+Wly6KGU30TF2A6rmdl4qx eIUQ== X-Forwarded-Encrypted: i=1; AJvYcCXch9eO16ljxQU7ToFSbKTSbDNkzMreWSmyEGvRIwFTZop7c+woJnKxrraskKxBj05AjVRdmyNj91JpPNc=@vger.kernel.org X-Gm-Message-State: AOJu0YwZmT2Vg3Bc1vYhp7Ab0JV+mzayx1DBy/pKmGTvEGcVAguKq62D 60TRIM1zmRtZOefzyKSgOlQq+pSyy0NOL8LqILt23yGTG2v+fFq7D0stjb+JjR9ouv0= X-Gm-Gg: ASbGnctCqdhaUdz4HNvj3/1ijErAKdjEGVK3WhLQMA4PEm45TC+nEYSYJlnijEpAVZh 86WbhnBxbUmNMZu67XeeN/We3ZqgSBF+LaDJmxJmHNzOZ6fmer86KSCfmwKj3xOyt8F4Q/IsnNq l/IBNOSiA1K1Ov6xsUhqBGZ630Ibn0o1lj0n4pDZKe/6zfzigrqDJNis/VtTIo/yy+SEKQvmNfy uKUB7Vaki6ae52jkYsTzdD1U9uu+i9iWkXLmItpOnDXsVcZ9yp/mywTJtT6rEyoKL9Eiy6u47zg uYHRfdkuJX/rMFEe5Md3t3VGDrHArkWjYsVWAzQdy/vcvYbSHzFAWLylwH0xn0zoiJATaoN+IE6 7RxU27V01fN/iNINjscDLCaZSNakSK4z+PMafPyGDD5ZqlL/vnRKgRhqRbjmGovlT+2Wii4dm1N W+9AWFrxv3wi3rKjMQKcM4quzp4qr4yBg= X-Google-Smtp-Source: AGHT+IF59snexuzfEwmE+hbBC+xfTP3fyiFQFy8xP9a0/ylOS8orxBtcZfG9ugUz3WwI+KQC1momlA== X-Received: by 2002:a05:600c:4fcb:b0:477:557b:691d with SMTP id 5b1f17b1804b1-477c01eea7fmr244407045e9.25.1764330960440; Fri, 28 Nov 2025 03:56:00 -0800 (PST) Received: from ho-tower-lan.lan ([185.48.77.170]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4790adc8bc7sm158974465e9.1.2025.11.28.03.55.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 28 Nov 2025 03:56:00 -0800 (PST) From: James Clark Date: Fri, 28 Nov 2025 11:55:23 +0000 Subject: [PATCH v8 11/13] coresight: Prepare to allow setting the timestamp interval Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251128-james-cs-syncfreq-v8-11-4d319764cc58@linaro.org> References: <20251128-james-cs-syncfreq-v8-0-4d319764cc58@linaro.org> In-Reply-To: <20251128-james-cs-syncfreq-v8-0-4d319764cc58@linaro.org> To: Suzuki K Poulose , Mike Leach , Alexander Shishkin , Jonathan Corbet , Leo Yan , Randy Dunlap Cc: coresight@lists.linaro.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org, James Clark X-Mailer: b4 0.14.0 Timestamps are currently emitted at the maximum rate possible, which is much too frequent for most use cases. In the next commit, the timestamp field will be widened to take a value, so set the interval using the value now. Granular control is not required, so save space in the config by interpreting it as 2 ^ timestamp. And then 4 bits (0 - 15) will be enough to set the interval to be larger than the existing SYNC timestamp interval. No sysfs mode support is needed for this attribute because counter generated timestamps are only configured for Perf mode. Reviewed-by: Leo Yan Tested-by: Leo Yan Signed-off-by: James Clark --- drivers/hwtracing/coresight/coresight-etm4x-core.c | 20 ++++++++++--------= -- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/drivers/hwtracing/coresight/coresight-etm4x-core.c b/drivers/h= wtracing/coresight/coresight-etm4x-core.c index b457f182efbe..7e9c923acf4b 100644 --- a/drivers/hwtracing/coresight/coresight-etm4x-core.c +++ b/drivers/hwtracing/coresight/coresight-etm4x-core.c @@ -650,7 +650,7 @@ static void etm4_enable_sysfs_smp_call(void *info) * +--------------+ * | * +------v-------+ - * | Counter x | (reload to 1 on underflow) + * | Counter x | (reload to 2 ^ (ts_level - 1) on underflow) * +--------------+ * | * +------v--------------+ @@ -661,7 +661,8 @@ static void etm4_enable_sysfs_smp_call(void *info) * | Timestamp Generator | (timestamp on resource y) * +----------------------+ */ -static int etm4_config_timestamp_event(struct etmv4_drvdata *drvdata) +static int etm4_config_timestamp_event(struct etmv4_drvdata *drvdata, + u8 ts_level) { int ctridx; int rselector; @@ -703,12 +704,8 @@ static int etm4_config_timestamp_event(struct etmv4_dr= vdata *drvdata) return -ENOSPC; } =20 - /* - * Initialise original and reload counter value to the smallest - * possible value in order to get as much precision as we can. - */ - config->cntr_val[ctridx] =3D 1; - config->cntrldvr[ctridx] =3D 1; + /* Initialise original and reload counter value. */ + config->cntr_val[ctridx] =3D config->cntrldvr[ctridx] =3D 1 << (ts_level = - 1); =20 /* * Trace Counter Control Register TRCCNTCTLRn @@ -756,6 +753,7 @@ static int etm4_parse_event_config(struct coresight_dev= ice *csdev, struct perf_event_attr *attr =3D &event->attr; unsigned long cfg_hash; int preset, cc_threshold; + u8 ts_level; =20 /* Clear configuration from previous run */ memset(config, 0, sizeof(struct etmv4_config)); @@ -791,13 +789,15 @@ static int etm4_parse_event_config(struct coresight_d= evice *csdev, cc_threshold =3D drvdata->ccitmin; config->ccctlr =3D cc_threshold; } - if (ATTR_CFG_GET_FLD(attr, timestamp)) { + + ts_level =3D ATTR_CFG_GET_FLD(attr, timestamp); + if (ts_level) { /* * Configure timestamps to be emitted at regular intervals in * order to correlate instructions executed on different CPUs * (CPU-wide trace scenarios). */ - ret =3D etm4_config_timestamp_event(drvdata); + ret =3D etm4_config_timestamp_event(drvdata, ts_level); =20 /* * No need to go further if timestamp intervals can't --=20 2.34.1 From nobody Mon Dec 1 22:04:00 2025 Received: from mail-wm1-f53.google.com (mail-wm1-f53.google.com [209.85.128.53]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 33A1732AABD for ; Fri, 28 Nov 2025 11:56:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.53 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764330965; cv=none; b=t5ts5fQ2wky2Ivzf0xjNZ9QxU4HHuAXeqiytFXObjFiqk32rJqVxBCSf58reU0/kjI20Zrr8pKkkE/2mDiiEdF5+neTVfAUyhd1bleYj6ZAJF6H+zLZKsyAn9pULk9+cSrUiV/dQxo3p8CoDlkSzRRmjWoDiLUt5Ykot8v4IPbk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764330965; c=relaxed/simple; bh=6oXIGlC+wqCr/SkwqBibYR4SYOLd2XL8stv1A5qwMjE=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=JMUpHXjP2xBysCKY9HtWvhm4mh7IBdVUHKKztdKbF6GbhbT9CeZcD/Y6PByEyDoPsDHf6b9slXoB/NdT6LZhHGCKUGxI+/R3A2kkMlrnRQfIKc2Cjv2FbAX3m1TWH/hl4bMtSgKv+xGDHkUcOvFM7JGjw0rzYPWuJy413IXu3mI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=iamc1Z50; arc=none smtp.client-ip=209.85.128.53 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="iamc1Z50" Received: by mail-wm1-f53.google.com with SMTP id 5b1f17b1804b1-4779a4fc95aso19346165e9.1 for ; Fri, 28 Nov 2025 03:56:02 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1764330961; x=1764935761; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=5368MuIG36Hb0NYODGe1O8EB5VRQ12WYq9XYGie/B4g=; b=iamc1Z50H+THbTKOPNWamT/Hu4Wsi6OBBXmvHSVHA+5QwY3LSPzruQ3w1RMMcu73nw b1kOtnfCpYAmromfHQpcZuNt1KZSLnNAPOXm0A7KFC0eYw0OlmmeoK7MPIMz6dlBrwQy YHNguGKQ09gtSLT5ZKMNpxg3NMShV8oLqm9nQOVUkXAlmpnDUBPlEw1P45TyjE7km/N2 h+x+9X1vD/JXtkoZi4DebXTN/EuU5G5hTGojnqSttm9l0PCXdHUloP0eBiMEr767gWoI 3IDQIOnoxCJIRWGMdrBXqCXoeGPJGNe495kIcNrxDsHxoGwzTtkNdMHeHsGgqjyCZS2p wkSw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1764330961; x=1764935761; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=5368MuIG36Hb0NYODGe1O8EB5VRQ12WYq9XYGie/B4g=; b=aA1F6TrXCd5+lzNXT4otxttaS2ZtucITTbB2l2oDQXvK5jxydQJuy1cr56VvYrUwFH 86rXFz5hif/FyVJ4eplVcRTe9JV9aVeBypzqaWm2YZY4G2d59vZDhT1XGkShw2+LOclc Lkoyt8LNM3pLzwjCGZwP71nYFjF4K5Y223l5ectILwGHUmJKRCdIIC7sca8Q+BcgHfc3 72wW+zoKdcePV2Hp9zni4U5GzeoYvSm+DXpAu21ql8zZ5t1Ewl5s98lqz1brQRLz1BQA hq1mgg5gkv2zz0I+5Vy3WglDyLtTdZ5Wi0mWvifzH3PEptpAcTPRhHl8tB6UbIwsaFoJ phmQ== X-Forwarded-Encrypted: i=1; AJvYcCVCe4Ctw/uSeZL+uwBGGb1XhURgijmx3U+KCLV5VOiV8F6siAy/glt7xCmsWfhpyhqqIFLLoVAHCZPZKHQ=@vger.kernel.org X-Gm-Message-State: AOJu0Yz9WPX40akZGA5m6NF+eyh9sdWkTh08yYiEEVhtOAOonsARHHgx x54OfAEvWsaMz92MhuC2JlZkVo4GnNEH1scUO/7bltjXdSFp2gX45L718XL6k7ttbPg= X-Gm-Gg: ASbGncvVDQXq/EdB+2U9cyA9lXxDi/OlCQ5NO7BWfybC6ThsNPdGY50VSYlCurMueiO dxdNMjNG83dyF5009fK9pXo0PxBrma3MWw7ajNGy3exdta/eWDFT/t209875fcU0X795k7BGky/ fEa/hR1fx6yHcgJtyKEYWUZz1g9h2NV3Ikysr0sRPebWVR1fsiDF7zsQpJGq4VyuYDSV8yNpYT9 bZKpVD9L8nDs+5L6PY72Ym00K9erx3HSzpJvm/N99Rka0EA3ixfGErVHny5f2DWxkPdjLkHz2jN hu9zRhel5Pao439nqOwvOpUOD0LzsyCUeUMr63By4BOMz6K5rOtCQtaDydb5WCN4M097naMTkGI gp+SPEGn1wBwZO+c240YsA3mNN606MqddZ0RQ37rUC/gPdsMVMXC2JXOl8+nuEY93EsuR1RUuZT qSM0Yh8nrDZ2XwSQWPcQu/HKhqSWvmx40= X-Google-Smtp-Source: AGHT+IHE0tds7XLxA+n+V0acq2/1sSr+l4IbYfbl7nhPj+Ex3bWfKJpA/SevPoWJ0cpE1jWrYY/WzA== X-Received: by 2002:a05:600c:1c1f:b0:477:9e0c:f59 with SMTP id 5b1f17b1804b1-477c04c2011mr330672845e9.2.1764330961427; Fri, 28 Nov 2025 03:56:01 -0800 (PST) Received: from ho-tower-lan.lan ([185.48.77.170]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4790adc8bc7sm158974465e9.1.2025.11.28.03.56.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 28 Nov 2025 03:56:01 -0800 (PST) From: James Clark Date: Fri, 28 Nov 2025 11:55:24 +0000 Subject: [PATCH v8 12/13] coresight: Extend width of timestamp format attribute Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251128-james-cs-syncfreq-v8-12-4d319764cc58@linaro.org> References: <20251128-james-cs-syncfreq-v8-0-4d319764cc58@linaro.org> In-Reply-To: <20251128-james-cs-syncfreq-v8-0-4d319764cc58@linaro.org> To: Suzuki K Poulose , Mike Leach , Alexander Shishkin , Jonathan Corbet , Leo Yan , Randy Dunlap Cc: coresight@lists.linaro.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org, James Clark , Jie Gan X-Mailer: b4 0.14.0 'timestamp' is currently 1 bit wide for on/off. To enable setting different intervals, extend it to 4 bits wide. Keep the old bit position for backward compatibility ("deprecated_timestamp") but don't publish in the format/ folder. It will be removed from the documentation and can be removed completely after enough time has passed. ETM3x doesn't support different intervals, so validate that the value is either 0 or 1. Tools that read the bit positions from the format/ folder will continue to work as before, setting either 0 or 1 for off/on. Tools that incorrectly didn't do this and set the ETM_OPT_TS bit directly will also continue to work because that old bit is still checked. This avoids adding a second timestamp attribute for setting the interval. This would be awkward to use because tools would have to be updated to ensure that the timestamps are always enabled when an interval is set, and the driver would have to validate that both options are provided together. All this does is implement the semantics of a single enum but spread over multiple fields. Reviewed-by: Leo Yan Tested-by: Leo Yan Tested-by: Jie Gan Signed-off-by: James Clark --- drivers/hwtracing/coresight/coresight-etm-perf.h | 13 ++++++++--- drivers/hwtracing/coresight/coresight-etm3x-core.c | 12 +++++++++- drivers/hwtracing/coresight/coresight-etm4x-core.c | 27 +++++++++++++-----= ---- 3 files changed, 37 insertions(+), 15 deletions(-) diff --git a/drivers/hwtracing/coresight/coresight-etm-perf.h b/drivers/hwt= racing/coresight/coresight-etm-perf.h index c794087a0e99..24d929428633 100644 --- a/drivers/hwtracing/coresight/coresight-etm-perf.h +++ b/drivers/hwtracing/coresight/coresight-etm-perf.h @@ -23,6 +23,9 @@ struct cscfg_config_desc; #define ATTR_CFG_FLD_preset_CFG config #define ATTR_CFG_FLD_preset_LO 0 #define ATTR_CFG_FLD_preset_HI 3 +#define ATTR_CFG_FLD_timestamp_CFG config +#define ATTR_CFG_FLD_timestamp_LO 4 +#define ATTR_CFG_FLD_timestamp_HI 7 #define ATTR_CFG_FLD_branch_broadcast_CFG config #define ATTR_CFG_FLD_branch_broadcast_LO 8 #define ATTR_CFG_FLD_branch_broadcast_HI 8 @@ -35,9 +38,13 @@ struct cscfg_config_desc; #define ATTR_CFG_FLD_contextid2_CFG config #define ATTR_CFG_FLD_contextid2_LO 15 #define ATTR_CFG_FLD_contextid2_HI 15 -#define ATTR_CFG_FLD_timestamp_CFG config -#define ATTR_CFG_FLD_timestamp_LO 28 -#define ATTR_CFG_FLD_timestamp_HI 28 +/* + * Old position of 'timestamp' and not published in sysfs. Remove at a lat= er + * date if necessary. + */ +#define ATTR_CFG_FLD_deprecated_timestamp_CFG config +#define ATTR_CFG_FLD_deprecated_timestamp_LO 28 +#define ATTR_CFG_FLD_deprecated_timestamp_HI 28 #define ATTR_CFG_FLD_retstack_CFG config #define ATTR_CFG_FLD_retstack_LO 29 #define ATTR_CFG_FLD_retstack_HI 29 diff --git a/drivers/hwtracing/coresight/coresight-etm3x-core.c b/drivers/h= wtracing/coresight/coresight-etm3x-core.c index 584d653eda81..57e4a21c8fdd 100644 --- a/drivers/hwtracing/coresight/coresight-etm3x-core.c +++ b/drivers/hwtracing/coresight/coresight-etm3x-core.c @@ -310,6 +310,7 @@ static int etm_parse_event_config(struct etm_drvdata *d= rvdata, { struct etm_config *config =3D &drvdata->config; struct perf_event_attr *attr =3D &event->attr; + u8 ts_level; =20 if (!attr) return -EINVAL; @@ -338,7 +339,16 @@ static int etm_parse_event_config(struct etm_drvdata *= drvdata, if (ATTR_CFG_GET_FLD(attr, cycacc)) config->ctrl |=3D ETMCR_CYC_ACC; =20 - if (ATTR_CFG_GET_FLD(attr, timestamp)) + ts_level =3D max(ATTR_CFG_GET_FLD(attr, timestamp), + ATTR_CFG_GET_FLD(attr, deprecated_timestamp)); + + if (ts_level > 1) { + dev_dbg(&drvdata->csdev->dev, + "timestamp format attribute should be 0 (off) or 1 (on)\n"); + return -EINVAL; + } + + if (ts_level) config->ctrl |=3D ETMCR_TIMESTAMP_EN; =20 /* diff --git a/drivers/hwtracing/coresight/coresight-etm4x-core.c b/drivers/h= wtracing/coresight/coresight-etm4x-core.c index 7e9c923acf4b..d565a73f0042 100644 --- a/drivers/hwtracing/coresight/coresight-etm4x-core.c +++ b/drivers/hwtracing/coresight/coresight-etm4x-core.c @@ -750,6 +750,9 @@ static int etm4_parse_event_config(struct coresight_dev= ice *csdev, int ret =3D 0; struct etmv4_drvdata *drvdata =3D dev_get_drvdata(csdev->dev.parent); struct etmv4_config *config =3D &drvdata->config; + struct perf_event_attr max_timestamp =3D { + .ATTR_CFG_FLD_timestamp_CFG =3D U64_MAX, + }; struct perf_event_attr *attr =3D &event->attr; unsigned long cfg_hash; int preset, cc_threshold; @@ -790,21 +793,23 @@ static int etm4_parse_event_config(struct coresight_d= evice *csdev, config->ccctlr =3D cc_threshold; } =20 - ts_level =3D ATTR_CFG_GET_FLD(attr, timestamp); + ts_level =3D max(ATTR_CFG_GET_FLD(attr, timestamp), + ATTR_CFG_GET_FLD(attr, deprecated_timestamp)); if (ts_level) { /* - * Configure timestamps to be emitted at regular intervals in - * order to correlate instructions executed on different CPUs - * (CPU-wide trace scenarios). + * Don't do counter generated timestamps when ts_level =3D=3D MAX. + * Leave only SYNC timestamps from TRCCONFIGR_TS. */ - ret =3D etm4_config_timestamp_event(drvdata, ts_level); + if (ts_level !=3D ATTR_CFG_GET_FLD(&max_timestamp, timestamp)) { + ret =3D etm4_config_timestamp_event(drvdata, ts_level); =20 - /* - * No need to go further if timestamp intervals can't - * be configured. - */ - if (ret) - goto out; + /* + * Error if user asked for timestamps but there was no + * free counter. + */ + if (ret) + goto out; + } =20 /* bit[11], Global timestamp tracing bit */ config->cfg |=3D TRCCONFIGR_TS; --=20 2.34.1 From nobody Mon Dec 1 22:04:00 2025 Received: from mail-wm1-f48.google.com (mail-wm1-f48.google.com [209.85.128.48]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 679A232C31D for ; Fri, 28 Nov 2025 11:56:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.48 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764330968; cv=none; b=HGg+yH1UoVGCPYrQNOvBTKea2yE6VdkSLRMyfbUgkY7OOvJ8YjGvneTee+9Np0kVZKHCzMHroKhHJEiMQzDXyAZy8LS/V6Ej+HshSz3yXH7c8F70GT4z9CYWqabWeqtslwaizec7Nn1dFPOkJvbhYF1m6xLVrDwMMVTmBrzARxU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764330968; c=relaxed/simple; bh=DZ4HZWH5qf3Io6Mvd7Ro7kQIN5EHdhrLFo71SpJ5Le0=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=mLkszDvLe7R+3gy2hahKtPY9Pzx4H0gRZJRBIpDs8jAxKrY81Swi/6EMeQmCT5y6SIFFQMQSrQkZ2q+vSFeGL506uuj8Pn+fu1zNtOqFkoW/tsxrSioN2WV4NrNvafOMHCKKV5GLKOUhVs9EQzaOLL4yy+h7odAZThBYHXaqxe0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=S+aHJGOz; arc=none smtp.client-ip=209.85.128.48 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="S+aHJGOz" Received: by mail-wm1-f48.google.com with SMTP id 5b1f17b1804b1-4779aa4f928so13923365e9.1 for ; Fri, 28 Nov 2025 03:56:04 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1764330962; x=1764935762; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=Cth2HfadlNIwjuNkYXpg5yJwdRtCIZo2ukA+LLh7V4I=; b=S+aHJGOzU5eecmseTrls3toFzEZF2M/bJJD93gHh3/DrNFkGsATgVg2IrlbJOYk8UH xAVvgdC9ut1LDPzMTp8nPewDPioPGaYzNUzWc4msnsLZjLkgr7CyLWIHqEbuG4mbY0v4 pnO8mQbW7LfeEBqd4Ooi5ZbHl6wWCq4+FB1W0ovs7t+zE8dbbTIptnDF4f+QIw1j05Lu dkdPCF37nmyzTX+QROLsAhfQiqJ8pd8FQAjKu/9gK3XX5qXwyIFGrAryidGac6b6Dcry eEO+UIhChhxTZz++M51kGWcLfxyoYNC3OSYcksvoWP77uajvrAb7RTHXUuDO+fBPyea8 PffA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1764330962; x=1764935762; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=Cth2HfadlNIwjuNkYXpg5yJwdRtCIZo2ukA+LLh7V4I=; b=TfID6UbJKgQA132hF5j5wzXGhtoSnOmgiARAjtslpWhGABjDH6uyIdDkDtcC6aDhXD xqA4LSTbC9XEVNkjrfvuzIz4md6PeIbuE+lbKWqBIFl8Yo+gdLUo9D9uQYNMyEnwBWY1 rK/zFZtP6OCJhkzsIQekUEHDBMhYrqSXNxG79EicTsWoTEvQNYSIhV+fng3D3fewlySX U5YLmGuFO3J3mjV69kbUa3tANz0rD1LgIHnTgCUKjKZ03nSDEKa/pw2fFifIG5niEDRR GyhZsgWrREY8+TE9lAtG+v+WVlH98mu7GOa+7ZckldOpr8CejnpQoDVxvV33M5brftbY pz5w== X-Forwarded-Encrypted: i=1; AJvYcCWz2HgAED5lp/pqCWXwcnwWRlTSC8yH3sNxh6yUa/eVVSQ7AV5U7a2p2hr3XunfXExiagaON0gJwiFJ+sY=@vger.kernel.org X-Gm-Message-State: AOJu0YyzbGsK8/xUFA30s/8L4DQAELrLe7CjujyFo9NDfu0GiR1gawgU nae+tX3Hu8RHQTkEFhy/ThEqcmKF9L1VJa0AQWfZ55vrnEOyPZeK5Et0J1Ir/XUYIGw= X-Gm-Gg: ASbGncsnjFqvbCuGjtGMhb/JCxc05hB8zClD1WTiM5Z4DOzOmpjQbAyqFl79j/aKVZt qMwj5v2pXlS3H6DNZUBqpmJx4S4wxDEhBSuTwQu4liKf/faAb3Xfx/OJVw28oPMqb0mCyRp696q 1P1M+3i39l/wZRrzlrsKcq2e8bEs8QT+RyAVneJDo/jm3WFqmiLXnBzZj7Oa3sbrQDrIHMNLeKw 8WTuNltbrGZ+auPX6E/XIUcjMjkr/T8Xwukc7xsfgEo5cwkVZEV+T5m46Zlwd2XjSw3ArCFFwcf PHgy8lsuTCvoFCAAsHfgTT3vd84oKe28EhLxmYjQafd1EcLcfYc5DSKDOB0dqLh0xXuITSOSaU+ +AT4UAhFjtmPQX5fpn/m7MJthmANjmvhProZq8hx9nUmpzQJDMNSYyQKrWL9RyHCbxOKz2H0edH ws9RjTO/WL55sBvFOC8YDZ X-Google-Smtp-Source: AGHT+IHPyD1xyffyVNm3+d/4wd26K/XgcD7YW3gltFP0yISG5I/GpHGJjvh7e5mHCRlPRu4u6YXiag== X-Received: by 2002:a05:600c:1c92:b0:477:7f4a:44b0 with SMTP id 5b1f17b1804b1-47904b2c2c5mr166562705e9.33.1764330962372; Fri, 28 Nov 2025 03:56:02 -0800 (PST) Received: from ho-tower-lan.lan ([185.48.77.170]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4790adc8bc7sm158974465e9.1.2025.11.28.03.56.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 28 Nov 2025 03:56:02 -0800 (PST) From: James Clark Date: Fri, 28 Nov 2025 11:55:25 +0000 Subject: [PATCH v8 13/13] coresight: docs: Document etm4x timestamp interval option Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251128-james-cs-syncfreq-v8-13-4d319764cc58@linaro.org> References: <20251128-james-cs-syncfreq-v8-0-4d319764cc58@linaro.org> In-Reply-To: <20251128-james-cs-syncfreq-v8-0-4d319764cc58@linaro.org> To: Suzuki K Poulose , Mike Leach , Alexander Shishkin , Jonathan Corbet , Leo Yan , Randy Dunlap Cc: coresight@lists.linaro.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org, James Clark X-Mailer: b4 0.14.0 Document how the new field is used, maximum value and the interaction with SYNC timestamps. Tested-by: Leo Yan Signed-off-by: James Clark --- Documentation/trace/coresight/coresight.rst | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/Documentation/trace/coresight/coresight.rst b/Documentation/tr= ace/coresight/coresight.rst index 806699871b80..d461de4e067e 100644 --- a/Documentation/trace/coresight/coresight.rst +++ b/Documentation/trace/coresight/coresight.rst @@ -613,8 +613,20 @@ They are also listed in the folder /sys/bus/event_sour= ce/devices/cs_etm/format/ - Session local version of the system wide setting: :ref:`ETM_MODE_RE= TURNSTACK ` * - timestamp - - Session local version of the system wide setting: :ref:`ETMv4_MODE_= TIMESTAMP - ` + - Controls generation and interval of timestamps. + + 0 =3D off, 1 =3D minimum interval .. 15 =3D maximum interval. + + Values 1 - 14 use a counter that decrements every cycle to generate= a + timestamp on underflow. The reload value for the counter is 2 ^ (in= terval + - 1). If the value is 1 then the reload value is 1, if the value is= 11 + then the reload value is 1024 etc. + + Setting the maximum interval (15) will disable the counter generated + timestamps, freeing the counter resource, leaving only ones emitted= when + a SYNC packet is generated. The sync interval is controlled with + TRCSYNCPR.PERIOD which is every 4096 bytes of trace by default. + * - cc_threshold - Cycle count threshold value. If nothing is provided here or the pro= vided value is 0, then the default value i.e 0x100 will be used. If provided value is less tha= n minimum cycles threshold --=20 2.34.1