gpt4 book ai didi

linux - __alloc_pages_slowpath() 是否可重入安全?

转载 作者:太空狗 更新时间:2023-10-29 11:20:32 27 4
gpt4 key购买 nike

对 __alloc_pages_slowpath() 的调用能否在同时调用 __alloc_pages_slowpath() 的设备中断中幸存下来,或者第二个调用是否会破坏第一个?

我在 XFS 文件系统上看到一个常规文件的程序调用 read(2)。内核堆栈跟踪显示最终 __alloc_pages_slowpath() 被调用,然后一个 e1000e IRQ 发生,最终也调用 __alloc_pages_slowpath(),然后日志消息“fooprog:页面分配失败。order:0,mode:0x4020”几乎立即发生。

可以在这里看到整个堆栈跟踪:https://gist.github.com/790577

最佳答案

“fooprog:页面分配失败。顺序:0,模式:0x4020”是由于 e1000e 驱动程序问题。将 vm.min_free_kbytes 设置为当前值的两倍可以防止它们。 __alloc_pages_slowpath() 可能是可重入安全的。

更新:(1) 当网络设备驱动程序尝试分配页面但发现无法分配时,将大量堆栈跟踪打印到您的 Linux 内核系统日志中是“正常行为”。 (2) 有人提交了一个补丁,六个月后它一直被忽略,直到我很好地要求他们跟进补丁。之后,当虚拟机内存不足时,KVM/qemu virtio 网络停止锁定。 (3) 可悲的是,Linux 的替代品对我来说更不适合用于实际工作。

关于linux - __alloc_pages_slowpath() 是否可重入安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4764544/

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