jjzjj

c++ - 使用 haswell tsx 的神秘 rtm 中止

我正在haswell中试验tsx扩展,通过调整现有的中型(1000行)代码库以使用GCC事务内存扩展(在native中间接使用haswelltsx)而不是粗粒度锁。我正在使用GCC的transactional_memory扩展,而不是直接编写我自己的_xbegin/_xend。我正在使用ITM_DEFAULT_METHOD=htm我在让它足够快地工作时遇到了问题,因为由于神秘的原因,我的硬件事务中止率很高。如下所示,这些中止不是由于冲突,也不是由于容量限制。下面是我用来量化故障率和根本原因的perf命令:perfstat\-ecpu/event=0x54,umask=0x2,name=