簡體   English   中英

是__alloc_pages_slowpath()是否可以重入?

[英]Is __alloc_pages_slowpath() Reentrant-Safe or Not?

對__alloc_pages_slowpath()的調用是否可以在設備中斷中生存,該設備中斷也會調用__alloc_pages_slowpath()或第二次調用是否會損壞第一個調用?

我看到XFS文件系統上的常規文件的程序調用read(2)。 內核堆棧跟蹤顯示最終調用__alloc_pages_slowpath()然后發生e1000e IRQ,最終調用__alloc_pages_slowpath(),然后幾乎立即發生日志消息“fooprog:頁面分配失敗。順序:0,模式: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的替代品讓我用來做實際工作更糟糕。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM