对 __alloc_pages_slowpath() 的调用能否在同时调用 __alloc_pages_slowpath() 的设备中断中幸存下来,或者第二次调用是否破坏了第一次调用?
我在 XFS 文件系统上看到一个常规文件的程序调用 read(2)。内核堆栈跟踪显示,最终调用了 __alloc_pages_slowpath(),然后发生了 e1000e IRQ,最终也调用了 __alloc_pages_slowpath(),然后几乎立即发生了日志消息“fooprog: page allocation failure.order:0, mode:0x4020”。
整个堆栈跟踪可以在这里看到:https ://gist.github.com/790577