Skip to content

Commit afd3db7

Browse files
Alexander Antonovrdementi
authored andcommitted
Run internal loop get_cpu_bus() 4 times instead of 8
1 parent 8e65aa4 commit afd3db7

File tree

1 file changed

+11
-19
lines changed

1 file changed

+11
-19
lines changed

src/utils.cpp

Lines changed: 11 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1176,10 +1176,6 @@ int load_events(const std::string &fn, std::map<std::string, uint32_t> &ofm,
11761176

11771177
bool get_cpu_bus(uint32 msmDomain, uint32 msmBus, uint32 msmDev, uint32 msmFunc, uint32 &cpuBusValid, std::vector<uint32> &cpuBusNo, int &cpuPackageId)
11781178
{
1179-
int cpuBusNo0 = 0x0;
1180-
uint32 sadControlCfg = 0x0;
1181-
uint32 busNo = 0x0;
1182-
11831179
//std::cout << "get_cpu_bus: d=" << std::hex << msmDomain << ",b=" << msmBus << ",d=" << msmDev << ",f=" << msmFunc << std::dec << " \n";
11841180
try {
11851181
PciHandleType h(msmDomain, msmBus, msmDev, msmFunc);
@@ -1190,24 +1186,19 @@ bool get_cpu_bus(uint32 msmDomain, uint32 msmBus, uint32 msmDev, uint32 msmFunc,
11901186
return false;
11911187
}
11921188

1193-
for (int i = 0; i < 8; ++i)
1189+
cpuBusNo.resize(8);
1190+
for (int i = 0; i < 4; ++i)
11941191
{
1195-
busNo = 0x00;
1196-
if (i <= 3)
1197-
{
1198-
h.read32(SPR_MSM_REG_CPUBUSNO0_OFFSET + i*4, &busNo);
1199-
}
1200-
else
1201-
{
1202-
h.read32(SPR_MSM_REG_CPUBUSNO4_OFFSET + (i-4)*4, &busNo);
1203-
}
1204-
if (busNo == (std::numeric_limits<uint32>::max)())
1192+
h.read32(SPR_MSM_REG_CPUBUSNO0_OFFSET + i * 4, &cpuBusNo[i]);
1193+
1194+
h.read32(SPR_MSM_REG_CPUBUSNO4_OFFSET + i * 4, &cpuBusNo[i + 4]);
1195+
1196+
if (cpuBusNo[i] == (std::numeric_limits<uint32>::max)() ||
1197+
cpuBusNo[i + 4] == (std::numeric_limits<uint32>::max)())
12051198
{
1206-
std::cerr << "Failed to read CPUBUSNO" << std::endl;
1199+
std::cerr << "Failed to read CPUBUSNO registers" << std::endl;
12071200
return false;
12081201
}
1209-
cpuBusNo.push_back(busNo);
1210-
//std::cout << std::hex << "get_cpu_bus: busNo=0x" << busNo << std::dec << "\n";
12111202
}
12121203

12131204
/*
@@ -1217,8 +1208,9 @@ bool get_cpu_bus(uint32 msmDomain, uint32 msmBus, uint32 msmDev, uint32 msmFunc,
12171208
int firstValidBusId = 0;
12181209
while (!((cpuBusValid >> firstValidBusId) & 0x1)) firstValidBusId++;
12191210
int cpuBusNo0 = (cpuBusNo[(int)(firstValidBusId / 4)] >> ((firstValidBusId % 4) * 8)) & 0xff;
1220-
PciHandleType sad_cfg_handler(msmDomain, cpuBusNo0, 0, 0);
12211211

1212+
uint32 sadControlCfg = 0x0;
1213+
PciHandleType sad_cfg_handler(msmDomain, cpuBusNo0, 0, 0);
12221214
sad_cfg_handler.read32(SPR_SAD_REG_CTL_CFG_OFFSET, &sadControlCfg);
12231215
if (sadControlCfg == (std::numeric_limits<uint32>::max)())
12241216
{

0 commit comments

Comments
 (0)