Spin detection hardware for improved management of multithreaded systems
- 1 May 2006
- journal article
- Published by Institute of Electrical and Electronics Engineers (IEEE) in IEEE Transactions on Parallel and Distributed Systems
- Vol. 17 (6), 508-521
- https://doi.org/10.1109/tpds.2006.78
Abstract
Spinning is a synchronization mechanism commonly used in applications and operating systems. Excessive spinning, however, often indicates performance or correctness (e.g., livelock) problems. Detecting if applications and operating systems are spinning is essential for achieving high performance, especially in consolidated servers running virtual machines. Prior research has used source or binary instrumentation to detect spinning. However, these approaches place a significant burden on programmers and may even be infeasible in certain situations. In this paper, we propose efficient hardware to detect spinning in unmodified applications and operating systems. Based on this hardware, we develop 1) scheduling and power policies that adaptively manage resources for spinning threads, 2) system support that helps detect when a multithreaded program is livelocked, and 3) hardware performance counters that accurately reflect system performance. Using full-system simulation with SPEC OMP, SPLASH-2, and Wisconsin commercial workloads, we demonstrate that our mechanisms effectively improve the management of multithreaded systemsKeywords
This publication has 32 references indexed in Scilit:
- IBM power5 chip: a dual-core multithreaded processorIEEE Micro, 2004
- Simulating a $2M commercial server on a $2K PCComputer, 2003
- Simics: A full system simulation platformComputer, 2002
- Starfire: extending the SMP envelopeIEEE Micro, 1998
- Eliminating receive livelock in an interrupt-driven kernelACM Transactions on Computer Systems, 1997
- The model checker SPINIEEE Transactions on Software Engineering, 1997
- Evaluation of design alternatives for a multiprocessor microprocessorACM SIGARCH Computer Architecture News, 1996
- The Paradyn parallel performance measurement toolComputer, 1995
- Waiting algorithms for synchronization in large-scale multiprocessorsACM Transactions on Computer Systems, 1993
- Proving Liveness Properties of Concurrent ProgramsACM Transactions on Programming Languages and Systems, 1982