当我尝试使用 - pci_alloc_concient
分配 600 个 2 MB 内存块时,为什么会发生 cpuacct_charge
内核崩溃,有更好的方法吗?
最佳答案
您可能用完了 32 位可寻址内存。
如果您的 PCIe 芯片实际上支持更大的地址,则您的驱动程序应使用 dma_set_mask 和 dma_set_consistent_mask 来告诉内核这一点。
(请参阅文档/DMA-API-HOWTO.txt
。)
关于c - 使用 pci_alloc_consistent 分配内存的限制是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17471831/