From nobody Wed Mar 09 21:04:24 2022 X-Original-To: dev-commits-src-all@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 B3DF31A17DB3; Wed, 9 Mar 2022 21:04:24 +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 4KDPp04h6Jz3kml; Wed, 9 Mar 2022 21:04:24 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1646859864; 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=YrW2OCMRFlX5cQ7DeCyLDJPoBkpVkM5ATAKqEK2i9Lk=; b=mB7ptKbyZYx3hJ0rAmYDIIc/Sq3KlGHXc9BuzhvYWuQaytMYm/Y6pyc5jgIi5ocbuFRDLX dCrgYJ+KXJURd8SjTVsWSkDgcZo4C2HBLc4JTAhREFwIG5LBLwHbGKlXX2afp54ggmS+rv rGip4PuYT4hj6c7CaJV5vsnpANkTkfzCSe8vEkDwlATTN+QnhcZOoSsFaGH/mHIGANhDL6 kbvYNl+W7EDbf944mbRaaeJcH1TJQePF2Nkkp0YFhogWHIwrKvtXPoHCMmBgVw/nNXMUwj 5uk9DsYag43Azkc6MsIME1ZdW9rWQsCLhiig+rikiPoumPVu8q1x3CdYCIgQ0Q== 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 789FF182A3; Wed, 9 Mar 2022 21:04:24 +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 229L4O20076494; Wed, 9 Mar 2022 21:04:24 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 229L4OXg076493; Wed, 9 Mar 2022 21:04:24 GMT (envelope-from git) Date: Wed, 9 Mar 2022 21:04:24 GMT Message-Id: <202203092104.229L4OXg076493@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Jessica Clarke Subject: git: e14f57ffa6c9 - stable/13 - libpmc: Allow specifying explicit EVENT_xxH events on armv7 and arm64 List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@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/stable/13 X-Git-Reftype: branch X-Git-Commit: e14f57ffa6c9d628b191af0c2b5425c223f47ef3 Auto-Submitted: auto-generated ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1646859864; 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=YrW2OCMRFlX5cQ7DeCyLDJPoBkpVkM5ATAKqEK2i9Lk=; b=buc4W/XwgcNQXBpKc1F9CBCLqkT5+Q5HwnG2V22BVE5B2g7PC78CKdH3KD5KjxYDxaFbks ifXUYP62/FZ3zkxC0gUVIuJ8BTeCQibiWxxClZ99S1hDaLl8MHFgATX+NMCRiHgB3d2Its 6qWNc31tnoK+GvPFoWSaU5kIy1T9iu4oAI8atuDzedP0Gx0Tc9d0w3jXkAWeOWrfHtc+ZJ czuykAxkJRAUimKHJSUpDzG1JMpuHheJhPJp+q/OV/uClOIyZ+DgmUWT4I8p9sUgIMCaD6 A1zPgv7n9s2V24yB+tFtVxVI322VcYkT6ytdbBaLB27hfd+5dEDFAHiZCWmAEg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1646859864; a=rsa-sha256; cv=none; b=NVXXSEW8iCaJWOHH0u4QTkA7Z9Z04MqJh1w2CAKLq6JbAi3s2if1mSVD41f90aoaw/Gls1 6iVEeaNQnoFqilS3QAxbNaewsjwt0fKGy6dDQSTpoorkpVtbOE7/TDZmC5CSn1KgKltQGD cE2kZKD6Tg7+Fdiyf6FopUaxm3JaEKQ+9cjzoMW9/UDBT5odk8HAkhqQUL1LdvgQUYTLI/ jiGK2OcMizTSwaV5Kngah1YKn1BtWPq6Cj1osuQ9fPxIKTZnEIElRdEgg7gg2DUtAx7FbM 8TsVdigAMMBGr04zccz5OGLV0A4qy56o4A/bf/G+9+tjdZhb1YRF1natZIF1uw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by jrtc27: URL: https://cgit.FreeBSD.org/src/commit/?id=e14f57ffa6c9d628b191af0c2b5425c223f47ef3 commit e14f57ffa6c9d628b191af0c2b5425c223f47ef3 Author: Jessica Clarke AuthorDate: 2022-02-15 16:10:34 +0000 Commit: Jessica Clarke CommitDate: 2022-03-09 21:04:10 +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 (cherry picked from commit 9f22e0959b1e2e3c9450f8b495d2c0c86699eb18) --- lib/libpmc/libpmc.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/lib/libpmc/libpmc.c b/lib/libpmc/libpmc.c index 78fde0ed1f2c..d36648ee6b89 100644 --- a/lib/libpmc/libpmc.c +++ b/lib/libpmc/libpmc.c @@ -152,29 +152,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[] =