【发布时间】:2012-02-29 21:47:49
【问题描述】:
我正在更改 linux 内核调度程序以在已知物理内存位置打印下一个进程的 pid。 mmap 用于用户空间程序,而我读到 ioremap 将页面标记为不可缓存,这会减慢程序的执行速度。我想要一种快速写入已知物理内存的方法。 phys_to_virt 是我认为可行的选项。任何关于不同技术的想法。
PS:我在 qemu 上运行这个 linux 内核。 qemu 将使用物理地址来读取客户内核发送的信息。写入已知 io-port 是不可行的,因为每次访问该设备时都会调用支持此 io-device 的设备代码。
编辑:我希望 pid 的物理地址位置是安全的。如何确保内核正在使用的物理地址没有分配给任何进程。据我所知,ioremap 会将页面标记为可缓存,因此没有什么用处。
【问题讨论】:
标签: linux memory-management linux-kernel