intel-tsx相关内容

由于 Spectre Mitigation,Hardware Lock Elision 是否已经一去不复返了?

由于 Spectre 缓解而对所有当前 CPU 禁用硬件锁定消除是否正确,并且任何尝试使用 HLE 内在函数/指令进行互斥都会导致通常的互斥? 未来是否有可能不会有类似 HLE 互斥的东西来避免像 Spectre 这样的漏洞? 解决方案 因此,禁用 TSX 可能不是为了缓解 Spectre,而是作为另一个漏洞缓解的一部分,TSX 异步中止 (TAA). 这是英特尔网站上的相关文 ..
发布时间:2022-01-06 13:07:04 其他开发

如何将Intel TSX与C ++内存模型一起使用?

我认为C ++尚未涵盖任何类型的事务内存,但是TSX仍可以使用"仿佛规则"以某种方式适合由C ++内存模型控制的事物. 那么,成功的HLE操作或成功的RTM事务会发生什么? 说“有数据竞赛,但没关系"并没有多大帮助,因为它并不清楚"ok"的含义. 对于HLE,可能将其视为“先前的操作发生在后续的操作之前.好像该节仍由被消除的锁保护着." RTM是什么?由于甚至没有消除的锁, ..
发布时间:2021-05-28 20:16:45 C/C++开发

启用/禁用硬件锁定清除

我正在使用glibc 2.24版本.它具有通过事务同步扩展(例如_xbegin()和_xend())用于pthread_mutex_lock实现的锁定省略路径.我认为硬件应该支持锁定清除,因为 hle CPU标志用于硬件锁定清除.我使用的处理器是采用Skylake架构的Intel®Xeon®Gold 6130. 首先,我想禁用Lock Elision,但是当我运行使用 pthread_mut ..
发布时间:2021-05-11 18:56:57 其他开发

Haswell事务性存储器读集和写集信息

最近,英特尔发布了haswell机器,它们支持称为事务同步扩展(TSX)的硬件事务存储器。 如Intel手册所述,推测性内存操作,写集和读集分别缓存在一级缓存和二级缓存中。 (不完全是) 然后,我可以跟踪事务性内存操作并获取地址等信息以及读/写集的值吗? 解决方案 您不能。 HTM硬件缓冲区没有(公共)接口。 ..
发布时间:2020-10-11 00:18:01 其他开发

中止的xbegin事务是否可以恢复xbegin开始时存在的堆栈上下文?

我有兴趣在XBEGIN()和XEND()函数中封装事务xbegin和xend到静态汇编库中。但是我不清楚给定一个来自其他堆栈级别(更高或更低)的xabort,如何将堆栈(或是否)还原到原始xbegin调用状态。换句话说,动态堆栈上下文(包括中断影响)是否作为事务的另一部分进行管理和回滚? VC ++ 2010需要这种汇编器方法没有_xbegin()和_xend()内部函数受支持或不可用的内部 ..
发布时间:2020-09-27 05:01:07 C/C++开发

硬件锁消除技术是否已因幽灵缓解而一去不复返了?

由于减轻了Spectre的影响,当前所有的CPU都禁用了“硬件锁定清除"功能,并且使用HLE内部函数/指令进行互斥的任何尝试都会导致通常的互斥吗? 将来是否有可能没有像HLE互斥那样的东西来避免像Spectre这样的漏洞? 解决方案 因此,可能禁用TSX并不是为了减轻Spectre,而是作为另一种缓解漏洞的一部分,即TSX异步中止(TAA). 这是英特尔网站上的相关文章: ..
发布时间:2020-07-31 06:09:50 其他开发

是否在AMD上以NOP(安全)方式执行Intel TSX前缀?

我为同时在Intel和AMD x86机器上运行的应用程序提供了MASM同步代码. 我想使用Intel TSX前缀(特别是XACQUIRE和XRELEASE)对其进行增强. 如果我为Intel正确修改了我的代码,当我尝试在AMD机器上运行它时会发生什么?英特尔表示,它们的设计是向后兼容的,大概意味着它们什么也不做 在没有TSX的Intel CPU上运行. 我知道AMD尚未实施TSX ..

当线程可能切换内核时,如何正确使用TSX-NI(HLE和RTM)?

英特尔的事务同步扩展(TSX-NI)似乎是基于每个CPU的。 这同时适用于 _InterlockedXxx_HLE {Acquire,Release} 硬件锁定清除功能(HLE),以及 _xbegin / _xend / etc。受限事务存储(RTM)功能。 在多核系统上使用这些功能的“正确”方法是什么? 鉴于其正确性保证,我认为我只需要担心此处的性能。 所以,我应该如何构 ..
发布时间:2020-06-04 19:12:03 其他开发