From nobody Tue Feb 15 16:10:58 2022 X-Original-To: dev-commits-src-main@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4B22219BB45F; Tue, 15 Feb 2022 16:10:58 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4JymKZ1gP3z3rfm; Tue, 15 Feb 2022 16:10:58 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1644941458; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=6sr15V/J1CMVow5nkcKmcI7qgy9Y2vUtPI+1Uv/MHcY=; b=mdq3TCEiD1ZbsIkWxnXXIAqt5vI2Jndk+F0mAekn+7A5s/auiGD/W5smviB+A7wAKqSJW+ GXT/XlWNJvlx4QqSFGv1UbvaR5RF7SzO+6ksX+qSeG3GF0MlUvJn4eqq+rKKXjl4mYhbdG NtU1ea3ug4/UPM/DvrvsJ4CHFPfx8PhfOhiOWB7obnKDMPhdU+pRerH2XcMUMBVrk1XEPT T1UYi5zxIvfTIETudNuzvbxtrmkmImWHr8usx1A/qwoAhcG+XLHNsVANgQss+NFDFVVaXj gwrIIeb7DPx0et27DY3Ei80M1EXqEGY2cG8RgkpsQk7alfakLf0dIgHOghTiMQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 1B0282565B; Tue, 15 Feb 2022 16:10:58 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 21FGAwWn081058; Tue, 15 Feb 2022 16:10:58 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 21FGAwpG081057; Tue, 15 Feb 2022 16:10:58 GMT (envelope-from git) Date: Tue, 15 Feb 2022 16:10:58 GMT Message-Id: <202202151610.21FGAwpG081057@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Jessica Clarke Subject: git: 9f22e0959b1e - main - libpmc: Allow specifying explicit EVENT_xxH events on armv7 and arm64 List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jrtc27 X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 9f22e0959b1e2e3c9450f8b495d2c0c86699eb18 Auto-Submitted: auto-generated ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1644941458; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=6sr15V/J1CMVow5nkcKmcI7qgy9Y2vUtPI+1Uv/MHcY=; b=h5UUf+0vgDlovdRUgwJKEEvRLBrZRMvjlyYzBehRYYl9mLmjVQLOVB/h+8UQkNvEu2Qp9c tJoH+q62WRBZOylK83TvJfpH/1qxdPGEW47xd0pAv+eIJROH30V/H6tp1nNvk1TChgL17l tMlkNOnkqE30khuLotsz7+YteI9m2Cs2AFasgrG7H/7tojP/thKMMQygvTEwsH6NG3BBD1 KUNy2P24SCX7Bb8sDX8mwjBuPN2KJ8WOORuWzlsCWpPc/Sh66kR6TTxs5tkTROVFhL1bSl p/3JafnxP2GdWCWV62ObJcSQbRHK5Pmpso6WnUAd0qNO9tS6a25lrZpVSYJeUQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1644941458; a=rsa-sha256; cv=none; b=Dpxsaynu0pgCQX54Vbr9wJuRmvCm8Qn+K3qgu3MYEBSD5IGlEOVSae3evnYStiFwZkq7wR FWtEOTpHzoDzDW1xh7Z8ce/8nR+/AhpKGELSG7HGoXCaZ+Gvr7h+kOtlwyqJZrIDS855li rlC7Ib2bVtY091Rt+wH5HL4kCy40TGyxnTft5S5iPcoJxptH7GW/pbiEzY1A80Hu58Pxvk ewSalp0xkI99E+KjlryZfSJr6FE4e5vTX1ZSaglKVt/1hiHcr1B8LDGE8k/EbvhHbeGhG1 KQElYuKgGlcAILVz7yLNE1t5wZ//fnPCLIQy8dkyo1HbFUUQpYKo1+SAl0usJg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by jrtc27: URL: https://cgit.FreeBSD.org/src/commit/?id=9f22e0959b1e2e3c9450f8b495d2c0c86699eb18 commit 9f22e0959b1e2e3c9450f8b495d2c0c86699eb18 Author: Jessica Clarke AuthorDate: 2022-02-15 16:10:34 +0000 Commit: Jessica Clarke CommitDate: 2022-02-15 16:10:34 +0000 libpmc: Allow specifying explicit EVENT_xxH events on armv7 and arm64 This is useful for processors where we don't have an event table; in those cases we default to a Cortex A8 (armv7) or Cortex A53 (arm64) in order to attempt to provide something useful, but you're then limited to the counters in those tables, some of which may also not be implemented (e.g. LD/ST_RETIRED are no longer implemented in more recent cores, replaced by LD/ST_SPEC). Adding the raw EVENT_xxH event lists to each table ensures that you can always request the exact events you want, regardless of what has been detected or is known. Reviewed by: mhorne MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D33805 --- lib/libpmc/libpmc.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/lib/libpmc/libpmc.c b/lib/libpmc/libpmc.c index bf1b4adfa1d3..ea0539d2225a 100644 --- a/lib/libpmc/libpmc.c +++ b/lib/libpmc/libpmc.c @@ -143,29 +143,39 @@ static struct pmc_event_descr soft_event_table[PMC_EV_DYN_COUNT]; #undef __PMC_EV_ALIAS #define __PMC_EV_ALIAS(N,CODE) { N, PMC_EV_##CODE }, +/* + * TODO: Factor out the __PMC_EV_ARMV7/8 list into a single separate table + * rather than duplicating for each core. + */ + static const struct pmc_event_descr cortex_a8_event_table[] = { __PMC_EV_ALIAS_ARMV7_CORTEX_A8() + __PMC_EV_ARMV7() }; static const struct pmc_event_descr cortex_a9_event_table[] = { __PMC_EV_ALIAS_ARMV7_CORTEX_A9() + __PMC_EV_ARMV7() }; static const struct pmc_event_descr cortex_a53_event_table[] = { __PMC_EV_ALIAS_ARMV8_CORTEX_A53() + __PMC_EV_ARMV8() }; static const struct pmc_event_descr cortex_a57_event_table[] = { __PMC_EV_ALIAS_ARMV8_CORTEX_A57() + __PMC_EV_ARMV8() }; static const struct pmc_event_descr cortex_a76_event_table[] = { __PMC_EV_ALIAS_ARMV8_CORTEX_A76() + __PMC_EV_ARMV8() }; static const struct pmc_event_descr tsc_event_table[] =