Abstract:
Processor hardware performance counters have recently improved in quality and features, while performance monitoring support in Linux has been significantly revamped with...Show MoreMetadata
Abstract:
Processor hardware performance counters have recently improved in quality and features, while performance monitoring support in Linux has been significantly revamped with the development of the perf_events subsystem, which contributed in making performance analysis an increasingly common practice among developers. However, no performance analysis is possible without an efficient monitoring interface and reliable hardware counter data. In this paper, we first address a reliability issue in the Performance Monitoring Unit of recent Intel processors with Hyper-Threading enabled. A published erratum causes cross hyper-thread hardware counter corruption and may produce unreliable results. We propose a cache-coherence style protocol which we implement in the Linux kernel to address the issue by introducing cross hyper-thread dynamic event scheduling. Second, we improve event scheduling efficiency by introducing an algorithm which optimally schedules events onto hardware counters consistently. The proposed optimizations do not require any user level changes. They leverage the internal design of the perf_events subsystem and have broader applicability in processors. The improvements have been contributed to the upstream Linux kernel 4.1.
Published in: SC '16: Proceedings of the International Conference for High Performance Computing, Networking, Storage and Analysis
Date of Conference: 13-18 November 2016
Date Added to IEEE Xplore: 16 March 2017
ISBN Information:
Electronic ISSN: 2167-4337