Adds rcSetProcessMetadata
... which is useful for attaching debug information to commands
from the guest.
Authored by natsu@, updated by willho@
Additions include attaching process name to render thread
monitors.
Bug: b/165022040, b/239845234
Test: Built and ran emulator
Change-Id: Icd28cdf9e88e50703c411a18719252e874bdc9b2
diff --git a/stream-servers/RenderThread.cpp b/stream-servers/RenderThread.cpp
index 8a00801..e59ed7e 100644
--- a/stream-servers/RenderThread.cpp
+++ b/stream-servers/RenderThread.cpp
@@ -48,6 +48,8 @@
#include <assert.h>
#include <string.h>
+#include <unordered_map>
+
using android::base::AutoLock;
using android::base::EventHangMetadata;
using android::base::MessageChannel;
@@ -421,10 +423,16 @@
bool progress;
do {
- HealthWatchdog watchdog(
- FrameBuffer::getFB()->getHealthMonitor(),
- WATCHDOG_DATA("RenderThread decode operation",
- EventHangMetadata::HangType::kRenderThread, nullptr));
+ std::unique_ptr<std::unordered_map<std::string, std::string>> renderThreadData =
+ std::make_unique<std::unordered_map<std::string, std::string>>();
+ if (tInfo.m_processName) {
+ renderThreadData->insert(
+ {{"renderthread_guest_process", tInfo.m_processName.value()}});
+ }
+ HealthWatchdog watchdog(FrameBuffer::getFB()->getHealthMonitor(),
+ WATCHDOG_DATA("RenderThread decode operation",
+ EventHangMetadata::HangType::kRenderThread,
+ std::move(renderThreadData)));
if (!seqnoPtr && tInfo.m_puid) {
seqnoPtr = FrameBuffer::getFB()->getProcessSequenceNumberPtr(tInfo.m_puid);