Malloc放置对TSX硬件事务内存的影响

摘要:Intel的i7-4770 Haswell处理器中的硬件事务内存(HTM)实现在L1、L2和L3缓存中跟踪事务读集,并在L1缓存中跟踪事务写集。从缓存层次结构中驱逐读集条目或从L1中驱逐写集条目会导致中止。我们表明,动态存储分配器的放置策略(如常见的malloc实现中的策略)可以影响L1中的冲突缺失率。冲突缺失(有时称为映射缺失)是由于不理想的关联性,表示活动内存块在可用L1索引集上的分布不平衡。在事务执行下,冲突缺失可能表现为中止,代表了浪费或徒劳的努力,而不是像在正常执行模式下那样简单地停顿。 此外,当HTM用于事务性锁剔除(TLE)时,由于冲突缺失引起的持续中止可以强制将冲突的线程送入所谓的“慢路径”。慢路径是不可取的,因为该线程必须获取锁,并在正常的执行模式下运行临界区,从而使监视相同锁并在事务模式下运行其临界区的“快路径”中的线程无法并发执行。对于给定的锁,多个线程可以同时使用事务性快路径,但是在任何给定时间最多只能有一个线程使用非事务性慢路径。慢路径中的线程会妨碍安全并发的快路径执行。因此,由放置策略和L1索引不平衡引起的中止可能会导致并发性丧失和降低的总吞吐量。

作者:Dave Dice, Tim Harris, Alex Kogan, Yossi Lev

论文ID:1504.04640

分类:Operating Systems

分类简称:cs.OS

提交时间:2015-05-01

PDF 下载: 英文版 中文版pdf翻译中