gpt4 book ai didi

c - 刷新 Linux 内核模块中的 CPU 数据缓存

转载 作者:太空宇宙 更新时间:2023-11-04 04:34:18 25 4
gpt4 key购买 nike

我有一个 Linux 内核模块,它计算多个 CPU 之间的网络数据包统计信息(在内核地址空间中)。我定期清除相应的内存块,强烈需要此操作对所有 CPU 立即生效,否则会扭曲后续统计值。我的 objective-c PU 是 Power PC,因此它的缓存一致性非常宽松。因此,我需要在内存清零后手动刷新所有 CPU 的数据缓存。

那么我应该在我的清算程序之后放置什么:

memset(ptr, 0, size);
// what's going here?

最佳答案

经过一番反射(reflection),我意识到这里的问题并不是真正与数据缓存刷新有关。实际上我试图避免平庸的竞争条件(第一个 cpu 清除值,而第二个增加它)。在我的例子中,通过互斥量保护数据的成本太高,因此值得使用原子标志来通知拥有的 CPU 自行清除值。

关于c - 刷新 Linux 内核模块中的 CPU 数据缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32807539/

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