Hany E. Ramadan, Christopher J. Rossbach, Donald E. Porter, Owen S. Hofmann, Bhandari Aditya, and Emmett Witchel
This paper quantifies the effect of architectural design decisions on the performance of TxLinux. TxLinux is a Linux kernel modified to use transactions in place of locking primitives in several key subsystems. We run TxLinux on MetaTM, which is a new hardware transaction memory (HTM) model. MetaTM contains features that enable efficient and correct interrupt handling for an x86-like architecture. Live stack overwrites can corrupt non-transactional stack memory and requires a small change to the transaction register checkpoint hardware to ensure correct operation of the operating system. We also propose stackbased early release to reduce spurious conflicts on stack memory between kernel code and interrupt handlers. We use MetaTM to examine the performance sensitivity of individual architectural features. For TxLinux we find that Polka and SizeMatters are effective contention management policies, some form of backoff on transaction contention is vital for performance, and stalling on a transaction conflict reduces transaction restart rates, but does not improve performance. Transaction write sets are small, and performance is insensitive to transaction abort costs but sensitive to commit costs.