rdcd process uses 100% CPU

The rdcd uses another thread to listen the GPU events. That thread
runs in a tight loop which consume 100% CPU.
The fix will add a sleep to yield CPU.

Bug: SWDEV-291576
Change-Id: I7996720aab4a80346d79b1c73ee532d2abcd93cc


[ROCm/rdc commit: 5a4bf97327]
This commit is contained in:
Bill(Shuzhou) Liu
2021-06-18 13:42:31 -04:00
parent 7d7a5bfd1c
commit ac15d50b0c
2 changed files with 3 additions and 2 deletions
+1 -2
View File
@@ -273,8 +273,7 @@ else()
endif()
# 755 permissions
set(INST_SCR_PERM "OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ
GROUP_EXECUTE WORLD_READ WORLD_EXECUTE")
set(INST_SCR_PERM OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
configure_file(
"${PROJECT_SOURCE_DIR}/src/DEBIAN_postinst.in"
"${PROJECT_SOURCE_DIR}/DEBIAN/postinst" FILE_PERMISSIONS ${INST_SCR_PERM})
@@ -48,6 +48,8 @@ void RdcMetricsUpdaterImpl::start() {
notif_updater_ = std::async(std::launch::async, [this](){
while (started_) {
watch_table_->rdc_field_listen_notif(kRdcFieldListenNotifTime_mS);
std::this_thread::sleep_for(
std::chrono::microseconds(_check_frequency));
}
});
updater_ = std::async(std::launch::async, [this](){