@@ -1239,6 +1239,8 @@ uint32 numTMAEvents(PCM* m)
12391239 return (m->isHWTMAL2Supported () ? 8 : 4 );
12401240}
12411241
1242+ uint32 pmu_type = PCM::INVALID_PMU_ID;
1243+
12421244void printTransposed (const PCM::RawPMUConfigs& curPMUConfigs,
12431245 PCM* m,
12441246 SystemCounterState& SysBeforeState, SystemCounterState& SysAfterState,
@@ -1719,6 +1721,14 @@ void printTransposed(const PCM::RawPMUConfigs& curPMUConfigs,
17191721 [&]() { printUncoreRows ([](const uint32 u, const uint32 i, const ServerUncoreCounterState& before, const ServerUncoreCounterState& after) { return getCXLDPCounter (u, i, before, after); }, ServerUncoreCounterState::maxCXLPorts, " CXLDP" );
17201722 });
17211723 }
1724+ else if ((pmu_type = m->strToUncorePMUID (type)) != PCM::INVALID_PMU_ID)
1725+ {
1726+ choose (outputType,
1727+ [&]() { printUncoreRows (nullptr , (uint32) m->getMaxNumOfUncorePMUs (pmu_type), type); },
1728+ [&]() { printUncoreRows (nullptr , (uint32) m->getMaxNumOfUncorePMUs (pmu_type), type); },
1729+ [&]() { printUncoreRows ([](const uint32 u, const uint32 i, const ServerUncoreCounterState& before, const ServerUncoreCounterState& after) { return getUncoreCounter (pmu_type, u, i, before, after); }, (uint32)m->getMaxNumOfUncorePMUs (pmu_type), type);
1730+ });
1731+ }
17221732 else
17231733 {
17241734 std::cerr << " ERROR: unrecognized PMU type \" " << type << " \"\n " ;
@@ -2150,6 +2160,24 @@ void print(const PCM::RawPMUConfigs& curPMUConfigs,
21502160 }
21512161 }
21522162 }
2163+ else if ((pmu_type = m->strToUncorePMUID (type)) != PCM::INVALID_PMU_ID)
2164+ {
2165+ for (uint32 s = 0 ; s < m->getNumSockets (); ++s)
2166+ {
2167+ for (uint32 unit = 0 ; unit < m->getMaxNumOfUncorePMUs (pmu_type); ++unit)
2168+ {
2169+ int i = 0 ;
2170+ for (auto & event : events)
2171+ {
2172+ choose (outputType,
2173+ [s, unit, &type]() { cout << " SKT" << s << type << unit << separator; },
2174+ [&event, &i, &type]() { if (event.second .empty ()) cout << type << " Event" << i << separator; else cout << event.second << separator; },
2175+ [&]() { cout << getUncoreCounter (pmu_type, unit, i, BeforeUncoreState[s], AfterUncoreState[s]) << separator; });
2176+ ++i;
2177+ }
2178+ }
2179+ }
2180+ }
21532181 else
21542182 {
21552183 std::cerr << " ERROR: unrecognized PMU type \" " << type << " \"\n " ;
0 commit comments