linux - 在 Linux 中运行二进制补丁后使其他线程中的缓存无效(使用 IPI?)

标签 linux x86-64 interrupt

我正在尝试找到一种在 Linux 中对 IPI 进行编程的方法,看看它是否可以用于跨多个内核 (x86_64) 刷新指令缓存。刚刚在 [1] 找到了适用于 Windows 的类似功能。 Linux 中是否有相应的功能?我需要成为内核模式才能发出 IPI 吗?有没有办法从用户空间做到这一点?

[1] https://msdn.microsoft.com/en-us/library/windows/desktop/ms683148(v=vs.85).aspx

最佳答案

您正在以太低的抽象级别来看待它。只需使用 cacheflush() 系统调用 - http://man7.org/linux/man-pages/man2/cacheflush.2.html

关于linux - 在 Linux 中运行二进制补丁后使其他线程中的缓存无效(使用 IPI?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32420121/

相关文章:

linux - shell 打开时的 ASCII 艺术打印消息 (bash) (Ubuntu 16.04)

assembly - 使用 cmpq 和 je 时的无限循环

io - 什么时候轮询比中断好?

c++ - 等待 DBus 服务在 Qt 中可用

linux - 在 Unix/Linux 上将 Access 数据库转换为分隔格式

c - 使用 PAPI 从 perf_event_uncore 列表读取硬件计数器

python - 如何在 Python 中创建动态回调函数? (RPi 3 GPIO)

linux - x86 Linux IDT Hook

linux - 下一行计数器如何在 sed 中更新?

linux - itoa 汇编实现,div 操作导致segfault?