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.