@@ -1029,7 +1029,8 @@ void printTransposed(const PCM::RawPMUConfigs& curPMUConfigs,
1029
1029
vector<CoreCounterState>& BeforeState, vector<CoreCounterState>& AfterState,
1030
1030
vector<ServerUncoreCounterState>& BeforeUncoreState, vector<ServerUncoreCounterState>& AfterUncoreState,
1031
1031
vector<SocketCounterState>& BeforeSocketState, vector<SocketCounterState>& AfterSocketState,
1032
- const CsvOutputType outputType)
1032
+ const CsvOutputType outputType,
1033
+ const bool & isLastGroup)
1033
1034
{
1034
1035
const bool is_header = (outputType == Header1 || outputType == Header2);
1035
1036
for (const auto & typeEvents : curPMUConfigs)
@@ -1369,7 +1370,7 @@ void printTransposed(const PCM::RawPMUConfigs& curPMUConfigs,
1369
1370
}
1370
1371
if (sampleSeparator)
1371
1372
{
1372
- cout << " ============================= \n " ;
1373
+ cout << (isLastGroup? " ==========\n " : " ---------- \n " ) ;
1373
1374
}
1374
1375
if (flushLine)
1375
1376
{
@@ -1687,7 +1688,8 @@ void printAll(const PCM::RawPMUConfigs& curPMUConfigs,
1687
1688
vector<CoreCounterState>& BeforeState, vector<CoreCounterState>& AfterState,
1688
1689
vector<ServerUncoreCounterState>& BeforeUncoreState, vector<ServerUncoreCounterState>& AfterUncoreState,
1689
1690
vector<SocketCounterState>& BeforeSocketState, vector<SocketCounterState>& AfterSocketState,
1690
- std::vector<PCM::RawPMUConfigs>& PMUConfigs)
1691
+ std::vector<PCM::RawPMUConfigs>& PMUConfigs,
1692
+ const bool & isLastGroup)
1691
1693
{
1692
1694
static bool displayHeader = true ;
1693
1695
@@ -1702,19 +1704,19 @@ void printAll(const PCM::RawPMUConfigs& curPMUConfigs,
1702
1704
1703
1705
// print header_1 and get all offsets
1704
1706
for (auto &config : PMUConfigs)
1705
- printTransposed (config, m, BeforeState, AfterState, BeforeUncoreState, AfterUncoreState, BeforeSocketState, AfterSocketState, Header1);
1707
+ printTransposed (config, m, BeforeState, AfterState, BeforeUncoreState, AfterUncoreState, BeforeSocketState, AfterSocketState, Header1, isLastGroup );
1706
1708
1707
1709
std::cout << std::endl;
1708
1710
1709
1711
// print header_2
1710
1712
std::cout << " Date" << separator << " Time" << separator << " Event" << separator;
1711
1713
std::cout << " ms, InvariantTSC" << separator;
1712
1714
for (auto &config : PMUConfigs)
1713
- printTransposed (config, m, BeforeState, AfterState, BeforeUncoreState, AfterUncoreState, BeforeSocketState, AfterSocketState, Header2);
1715
+ printTransposed (config, m, BeforeState, AfterState, BeforeUncoreState, AfterUncoreState, BeforeSocketState, AfterSocketState, Header2, isLastGroup );
1714
1716
1715
1717
std::cout << std::endl;
1716
1718
}
1717
- printTransposed (curPMUConfigs, m, BeforeState, AfterState, BeforeUncoreState, AfterUncoreState, BeforeSocketState, AfterSocketState, Data);
1719
+ printTransposed (curPMUConfigs, m, BeforeState, AfterState, BeforeUncoreState, AfterUncoreState, BeforeSocketState, AfterSocketState, Data, isLastGroup );
1718
1720
} else {
1719
1721
if (displayHeader) {
1720
1722
print (curPMUConfigs, m, BeforeState, AfterState, BeforeUncoreState, AfterUncoreState, BeforeSocketState, AfterSocketState, Header1);
@@ -2027,9 +2029,10 @@ int main(int argc, char* argv[])
2027
2029
2028
2030
mainLoop ([&]()
2029
2031
{
2032
+ size_t groupNr = 0 ;
2030
2033
for (const auto & group : PMUConfigs)
2031
2034
{
2032
- if (group. empty ()) continue ;
2035
+ ++groupNr ;
2033
2036
2034
2037
if (nGroups > 1 )
2035
2038
{
@@ -2047,7 +2050,7 @@ int main(int argc, char* argv[])
2047
2050
// cout << "Time elapsed: " << dec << fixed << AfterTime - BeforeTime << " ms\n";
2048
2051
// cout << "Called sleep function for " << dec << fixed << delay_ms << " ms\n";
2049
2052
2050
- printAll (group, m, BeforeState, AfterState, BeforeUncoreState, AfterUncoreState, BeforeSocketState, AfterSocketState, PMUConfigs);
2053
+ printAll (group, m, BeforeState, AfterState, BeforeUncoreState, AfterUncoreState, BeforeSocketState, AfterSocketState, PMUConfigs, groupNr == nGroups );
2051
2054
if (nGroups > 1 )
2052
2055
{
2053
2056
m->cleanup (true );
0 commit comments