gpt4 book ai didi

linux - linux 提供的 cmpxchg 调用是否会崩溃?

转载 作者:太空宇宙 更新时间:2023-11-04 09:46:01 28 4
gpt4 key购买 nike

我正在使用 linux 内核 (SLES11-SP2) 提供的 cmpxchg()令人 panic 。它崩溃的确切点在 2005 行:

            if (cmpxchg(var, old, new) == old)
2002: 48 89 d8 mov %rbx,%rax
2005: f0 4d 0f b1 34 24 lock cmpxchg %r14,(%r12)
200b: 48 39 c3 cmp %rax,%rbx
200e: 74 27 je 2037 <atomicPatchFnPtr+0x77>

关于我如何进行调试的任何线索?这是由于锁定变量的竞争条件导致的吗?或者我是否需要将其作为内核错误发布?

最佳答案

如果传递给它的地址(在此处的 %r12 中)无效,lock cmpxchg 指令可能会导致访问冲突。那可能就是上面那行代码中的变量var。它表明 var 指向一些无效的内存。它不是 cmpxchg 函数中的竞争,但它可能仍然是调用函数中的竞争条件。

关于linux - linux 提供的 cmpxchg 调用是否会崩溃?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16235688/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com