overwriting on inheritance

Change-Id: I6faf79874fc14e898c75972aa2f372e228105f7b


[ROCm/rocprofiler commit: 82ecf9e7a4]
此提交包含在:
Evgeny
2019-08-08 01:54:29 -05:00
父節點 55680ff541
當前提交 fc6e208b50
共有 3 個檔案被更改,包括 39 行新增42 行删除
+33 -22
查看文件
@@ -216,14 +216,11 @@ class Xml {
if (strncmp(buf, "#include \"", 10) == 0) {
for (ind = 0; (ind < size) && (buf[ind] != '\n'); ++ind) {}
if (ind == size) {
fprintf(stderr, "XML PreProcess failed, line size limit %zu\n", kBufSize);
error = true;
break;
if (ind < size) {
buf[ind] = '\0';
size = ind;
lseek(fd_, pos + ind + 1, SEEK_SET);
}
buf[ind] = '\0';
size = ind;
lseek(fd_, pos + ind + 1, SEEK_SET);
for (ind = 10; (ind < size) && (buf[ind] != '"'); ++ind) {}
if (ind == size) {
@@ -291,6 +288,8 @@ class Xml {
if (node_begin) {
AddLevel(tag);
} else {
Inherit(GetOption("base"));
if (strncmp(CurrentLevel().c_str(), tag, strlen(tag)) != 0) {
token.back() = '>';
BadFormat(token);
@@ -315,11 +314,7 @@ class Xml {
token[j] = '\0';
const std::string key = &token[0];
const std::string value = &token[j + 1];
if (key == "base") {
Inherit(value);
} else {
AddOption(key, value);
}
AddOption(key, value);
}
break;
default:
@@ -435,10 +430,17 @@ class Xml {
void Copy(const level_t* from, level_t* to) {
level_t* level = to;
if (level == NULL) {
const std::string name = GetOption("name", from);
if (name.size() != 0) {
for (auto node : level_->nodes) {
if (name == GetOption("name", node)) return;
}
}
AddLevel(from->tag);
level = level_;
level->copy = from;
}
level->copy = from;
level->opts = from->opts;
for (auto node : from->nodes) {
@@ -457,14 +459,16 @@ class Xml {
}
void Inherit(const std::string& tag) {
std::string global_tag = GlobalTag(tag);
auto it = map_->find(global_tag);
if (it == map_->end()) {
fprintf(stderr, "Node \"%s\": Base not found \"%s\"\n", level_->tag.c_str(), tag.c_str());
abort();
}
for (auto node : it->second) {
Copy(node, level_);
if (!tag.empty()) {
const std::string global_tag = GlobalTag(tag);
auto it = map_->find(global_tag);
if (it == map_->end()) {
fprintf(stderr, "Node \"%s\": Base not found \"%s\"\n", level_->tag.c_str(), tag.c_str());
abort();
}
for (auto node : it->second) {
Copy(node, level_);
}
}
}
@@ -479,7 +483,14 @@ class Xml {
return global_tag;
}
void AddOption(const std::string& key, const std::string& value) { level_->opts[key] = value; }
void AddOption(const std::string& key, const std::string& value) {
level_->opts[key] = value;
}
std::string GetOption(const std::string& key, const level_t* level = NULL) {
level = (level != NULL) ? level : level_;
auto it = level->opts.find(key);
return (it != level->opts.end()) ? it->second : "";
}
const std::string file_name_;
unsigned file_line_;
-11
查看文件
@@ -78,11 +78,6 @@
</gfx906>
<gfx908>
<metric name="GRBM_COUNT" block=GRBM event=0 descr="Tie High - Count Number of Clocks"></metric>
<metric name="GRBM_GUI_ACTIVE" block=GRBM event=2 descr="The GUI is Active"></metric>
<metric name="SQ_WAVES" block=SQ event=4 descr="Count number of waves sent to SQs. (per-simd, emulated, global)"></metric>
<metric name="SQ_INSTS_VALU" block=SQ event=26 descr="Number of VALU instructions issued. (per-simd, emulated)"></metric>
<metric name="SQ_INSTS_VMEM_WR" block=SQ event=28 descr="Number of VMEM write instructions issued (including FLAT). (per-simd, emulated)"></metric>
<metric name="SQ_INSTS_VMEM_RD" block=SQ event=29 descr="Number of VMEM read instructions issued (including FLAT). (per-simd, emulated)"></metric>
<metric name="SQ_INSTS_SALU" block=SQ event=31 descr="Number of SALU instructions issued. (per-simd, emulated)"></metric>
@@ -98,10 +93,6 @@
<metric name="SQ_THREAD_CYCLES_VALU" block=SQ event=86 descr="Number of thread-cycles used to execute VALU operations (similar to INST_CYCLES_VALU but multiplied by # of active threads). (per-simd)"></metric>
<metric name="SQ_LDS_BANK_CONFLICT" block=SQ event=94 descr="Number of cycles LDS is stalled by bank conflicts. (emulated)"></metric>
<metric name="TA_TA_BUSY" block=TA event=15 descr="TA block is busy. Perf_Windowing not supported for this counter."></metric>
<metric name="TA_FLAT_READ_WAVEFRONTS" block=TA event=101 descr="Number of flat opcode reads processed by the TA."></metric>
<metric name="TA_FLAT_WRITE_WAVEFRONTS" block=TA event=102 descr="Number of flat opcode writes processed by the TA."></metric>
<metric name="TCC_HIT" block=TCC event=17 descr="Number of cache hits."></metric>
<metric name="TCC_MISS" block=TCC event=19 descr="Number of cache misses. UC reads count as misses."></metric>
<metric name="TCC_EA_WRREQ" block=TCC event=26 descr="Number of transactions (either 32-byte or 64-byte) going over the TC_EA_wrreq interface. Atomics may travel over the same interface and are generally classified as write requests. This does not include probe commands."></metric>
@@ -109,6 +100,4 @@
<metric name="TCC_EA_WRREQ_STALL" block=TCC event=30 descr="Number of cycles a write request was stalled."></metric>
<metric name="TCC_EA_RDREQ" block=TCC event=38 descr="Number of TCC/EA read requests (either 32-byte or 64-byte)"></metric>
<metric name="TCC_EA_RDREQ_32B" block=TCC event=39 descr="Number of 32-byte TCC/EA read requests"></metric>
<metric name="TCP_TCP_TA_DATA_STALL_CYCLES" block=TCP event=6 descr="TCP stalls TA data interface. Now Windowed."></metric>
</gfx908>
+6 -9
查看文件
@@ -17,7 +17,7 @@
<metric name="WRITE_SIZE" expr=(TCC_MC_WRREQ_sum*32)/1024 descr="The total kilobytes written to the video memory. This is measured with all extra fetches and any cache or memory effects taken into account."></metric>
</gfx8>
<gfx9_base>
<gfx9>
<metric name="TA_BUSY_avr" expr=avr(TA_TA_BUSY,16) descr="TA block is busy. Average over TA instances."></metric>
<metric name="TA_BUSY_max" expr=max(TA_TA_BUSY,16) descr="TA block is busy. Max over TA instances."></metric>
<metric name="TA_BUSY_min" expr=min(TA_TA_BUSY,16) descr="TA block is busy. Min over TA instances."></metric>
@@ -30,16 +30,14 @@
<metric name="TCC_EA_RDREQ_sum" expr=sum(TCC_EA_RDREQ,16) descr="Number of TCC/EA read requests (either 32-byte or 64-byte). Sum over TCC instances."></metric>
<metric name="TCC_EA_WRREQ_sum" expr=sum(TCC_EA_WRREQ,16) descr="Number of transactions (either 32-byte or 64-byte) going over the TC_EA_wrreq interface. Sum over TCC instances."></metric>
<metric name="TCC_EA_WRREQ_64B_sum" expr=sum(TCC_EA_WRREQ_64B,16) descr="Number of 64-byte transactions going (64-byte write or CMPSWAP) over the TC_EA_wrreq interface. Sum over TCC instances."></metric>
<metric name="TCC_WRREQ_STALL_max" expr=max(TCC_EA_WRREQ_STALL,16) descr="Number of cycles a write request was stalled. Max over TCC instances."></metric>
</gfx9_base>
<gfx9_common base="gfx9_base">
<metric name="TCC_MC_WRREQ_sum" expr=TCC_EA_WRREQ_64B_sum*2+(TCC_EA_WRREQ_sum-TCC_EA_WRREQ_64B_sum) descr="Number of 32-byte effective writes. Sum over TCC instaces."></metric>
<metric name="TCC_WRREQ_STALL_max" expr=max(TCC_EA_WRREQ_STALL,16) descr="Number of cycles a write request was stalled. Max over TCC instances."></metric>
<metric name="FETCH_SIZE" expr=(TCC_EA_RDREQ_32B_sum*32+(TCC_EA_RDREQ_sum-TCC_EA_RDREQ_32B_sum)*64)/1024 descr="The total kilobytes fetched from the video memory. This is measured with all extra fetches and any cache or memory effects taken into account."></metric>
<metric name="WRITE_SIZE" expr=((TCC_EA_WRREQ_sum-TCC_EA_WRREQ_64B_sum)*32+TCC_EA_WRREQ_64B_sum*64)/1024 descr="The total kilobytes written to the video memory. This is measured with all extra fetches and any cache or memory effects taken into account."></metric>
</gfx9_common>
</gfx9>
<gfx906 base="gfx9_base">
<gfx906 base="gfx9">
# EA1
<metric name="TCC_EA1_RDREQ_32B_sum" expr=sum(TCC_EA1_RDREQ_32B,16) descr="Number of 32-byte TCC/EA read requests. Sum over TCC EA1s."></metric>
<metric name="TCC_EA1_RDREQ_sum" expr=sum(TCC_EA1_RDREQ,16) descr="Number of TCC/EA read requests (either 32-byte or 64-byte). Sum over TCC EA1s."></metric>
@@ -55,8 +53,7 @@
<metric name="WRITE_SIZE" expr=((TCC_EA_WRREQ_sum-TCC_EA_WRREQ_64B_sum)*32+TCC_EA_WRREQ_64B_sum*64+WDATA1_SIZE)/1024 descr="The total kilobytes written to the video memory. This is measured with all extra fetches and any cache or memory effects taken into account."></metric>
</gfx906>
<gfx908 base="gfx9_common"></gfx908>
<gfx9 base="gfx9_common"></gfx9>
<gfx908 base="gfx9"></gfx908>
<global>
# GPUBusy The percentage of time GPU was busy.