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]
Этот коммит содержится в:
Bill(Shuzhou) Liu
2021-06-18 13:42:31 -04:00
родитель 7d7a5bfd1c
Коммит ac15d50b0c
2 изменённых файлов: 3 добавлений и 2 удалений
+1 -2
Просмотреть файл
@@ -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})
+2
Просмотреть файл
@@ -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](){