Software for multi-core processor-based architectures
The main objective of this paper is to propose a software implementation model for concurrency error detection tools that allows reducing process overhead without decreasing its detection capacity. The general model proposed uses software dynamic instrumentation in such a way that an analysis routine can be activated from a signal generated by a hardware event that indicates the possibility of an error occurring. The results obtained showed that, for the case study (an atomicity violation detection algorithm called AVIO), the version that uses the model proposed can detect the same bugs as the original version, but in only 25% of the time (in average) required by it.
 Greathouse, J. L., Ma, Z., Frank, M. I., Peri, R., y Austin, T. (2011). Demand-driven software race detection using hardware performance counters. SIGARCH Comput. Archit. News, 39 (3), 165–176. Downloaded from http://doi.acm.org/10.1145/2024723.2000084
 Lu, S., Tucek, J., Qin, F., y Zhou, Y. (2006). AVIO: detecting atomicity violations via access interleaving
invariants. SIGPLAN Not., 41 (11), 37–48. doi: http://doi.acm.org/ 10.1145/1168918.1168864
 Lu, S., Park, S., Seo, E., y Zhou, Y. (2008). Learning from mistakes: a comprehensive study on real world
concurrency bug characteristics. SIGARCH Comput. Archit. News, 36 (1), 329–339.
 Sprunt, B. (2002). The basics of performance-monitoring hardware. IEEE Micro, 22 (4), 64–71.
 Yeap, G. (2013, diciembre). Smart mobile SoCs driving the semiconductor industry: Technology trend,
challenges and opportunities. En Electron devices meeting (IEDM), 2013 IEEE international (pp. 1.3.1–1.3.8).
Weaver, V. (2014, abril). Manpage of PERF_event_open. Downloaded on July 22, 2014 from