This project will explore extending a new feature for the Performance Co-Pilot (PCP). PCP is an open source framework at the system level that monitors, analyze and retrieve information to understand system performance. It has a distributed architecture of agents, called Performance Metric Domain Agents (PMDA), that extract performance values from the desired environments or systems.
Every agent (PMDA) reports to a centralized daemon called Performance Metric Collection Daemon or PMCD per host. Then, accessing any metric is as easy as sending a request to PMCDs. PCP has several client tools to help the final user understand the metrics. Finally, PCP also offers a good API to create an agent for any software.
Coming back to the interest of the proposal, PCP also supports instrumentation. This is a way to enable user applications like Firefox to send metrics in execution time to the PMDA. In this scenario, Memory Mapped Values (MMV) are used to offer an extremely lightweight mechanism for instrumenting applications using shared memory. However, there is no support for metadata labels added since the newest v4, and hence the goal of this project: add label support for instrumentation.