Abstract:
Accurate monitoring memory traces of applications running on real systems is the basis of memory system scheduling and architecture optimization. HMTT is a hybrid hardware/software memory traces tracker system, which is able to track full-system memory traces in real time. But there exists a semantic gap between memory traces and high level application events, such as synchronization problem between upper functional execution flow and memory traces. In this paper, we propose a hybrid hardware/software approach for monitoring memory traces with functional level semantic information. It directly modifies the process image in memory with binary instrumentation at the beginning of a process, by respectively inserting an extra tag memory access instruction at the entry and exit of each target function, which will be tracked and identified by HMTT. With binary instrumentation, there is no need to require source code of applications, no need to re-compile or re-link applications, and the run time overhead is quite low. The experimental results show that our hybrid hardware/software approach can effectively track memory traces with functional semantic information. For memory intensive applications in SPECCPU2006, the average run time overhead is 62%, and the pure software approach run time overhead with Pin is at least 10.4 times, compared with the original run time.