PMC.DMC-620(3)
π PMC.DMC-620(3) π
hey bestie!! so like, this is a page from the Library Functions Manual and it's literally all about measuring the Arm DMC-620 Dynamic Memory Controller performance counter events. no cap, it's giving hardware nerd realness and i'm obsessed π β¨
πΈ LIBRARY πΈ
Performance Counters Library (libpmc, -lpmc) β it's right there in the name, bestie! π«Ά
β¨ SYNOPSIS β¨
#include <pmc.h>
that's literally it, super clean, we love to see it π
π¦ DESCRIPTION π¦
okay so DMC-620 PMU counters can be configured to count any one of a defined set of hardware events. like, you pick your event, you count it, slay.
the Arm CoreLink DMC-620 Dynamic Memory Controller performance counters are documented in "Revision: r0p0", ARM CoreLink DMC-620 Dynamic Memory Controller Technical Reference Manual, ARM Limited, 2017. so if you wanna be a nerd about it, that's where the lore lives πβ¨
π PMC Capabilities π
DMC-620 PMU counters support the following capabilities β here's the vibe check:
PMC_CAP_CASCADEβ No π ββοΈPMC_CAP_EDGEβ NoPMC_CAP_INTERRUPTβ Yes πPMC_CAP_INVERTβ Yes β¨PMC_CAP_READβ Yes πPMC_CAP_PRECISEβ NoPMC_CAP_SYSTEMβ Yes π¦PMC_CAP_TAGGINGβ NoPMC_CAP_THRESHOLDβ Yes πΈPMC_CAP_USERβ NoPMC_CAP_WRITEβ Yes π
so like, interrupt? yes. system? yes. write? yes. user? absolutely not, we don't do that here π€
π Event Qualifiers π
event specifiers for these PMCs support the following common qualifiers β periodt:
inc=valueβ a two-bit value that controls the direction of count for the PMC. the behavior depends on the selected event, so don't @ me if you get it wrong bestie πinvβ invert the sense of comparison. it's giving "flip it and reverse it" πmatch=valueβ count only events matched byvalue. like a filter for your counting, we stan a selective queen πmask=qualifierβ allows you to apply a qualifier mask to the compared value. fancy! π
π§ Class Name Prefix π§
these PMCs use a class name prefix of "DMC620_CD2_" or "DMC620_C_". remember that, it's important iykyk π
β Event Specifiers β
the following PMC events are available β here's the full list, no skips, no cuts, all love:
clkdiv2_cycle_count
clkdiv2_allocate
clkdiv2_queue_depth
clkdiv2_waiting_for_wr_data
clkdiv2_read_backlog
clkdiv2_waiting_for_mi
clkdiv2_hazard_resolution
clkdiv2_enqueue
clkdiv2_arbitrate
clkdiv2_lrank_turnaround_activate
clkdiv2_prank_turnaround_activate
clkdiv2_read_depth
clkdiv2_write_depth
clkdiv2_highhigh_qos_depth
clkdiv2_high_qos_depth
clkdiv2_medium_qos_depth
clkdiv2_low_qos_depth
clkdiv2_activate
clkdiv2_rdwr
clkdiv2_refresh
clkdiv2_training_request
clkdiv2_t_mac_tracker
clkdiv2_bk_fsm_tracker
clkdiv2_bk_open_tracker
clkdiv2_ranks_in_pwr_down
clkdiv2_ranks_in_sref
clk_cycle_count
clk_request
clk_upload_stall
that's a LOT of events, but we're not skipping any of them because every single one matters π―β¨
π SEE ALSO π
pmc(3)pmc.amd(3)pmc.atom(3)pmc.core(3)pmc.core2(3)pmc.corei7(3)pmc.corei7uc(3)pmc.iaf(3)pmc.soft(3)pmc.tsc(3)pmc.westmere(3)pmc.westmereuc(3)pmc_cpuinfo(3)pmclog(3)hwpmc(4)
like, go read them if you want more context bestie, they're all connected π«Ά
π HISTORY π
so the pmc library first appeared in FreeBSD 6.0. iconic behavior honestly.
and the pmc.dmc-620 driver was added in FreeBSD 14.0. newer but already making moves π
π AUTHORS π
the Performance Counters Library (libpmc, -lpmc) library was written by:
- Joseph Koshy
<jkoshy@FreeBSD.org> - Oleksandr Rybalko
<ray@FreeBSD.org>
the DMC-620 PMU driver was sponsored by Ampere Computing LLC. shoutout to them for funding the vibes π
and this manual page was written by Oleksandr Rybalko <ray@FreeBSD.org>. thank you for your service king π«‘β¨
and that's literally the whole page bestie! now go count some events and slay π πβ¨
Debian Β· Jul 22, 2022 β mwah, hope this helped, love u bye!! ππ¦πΈ
π¦ where this page comes from
- freebsd 15.1: base 15.1
- Copyright (c) 2022 Ampere Computing
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms