当我尝试使用 - cpuacct_charge
分配600块2 MB内存时,为什么会出现pci_alloc_consistent
的内核崩溃,有没有更好的方法呢?
答案 0 :(得分:0)
你可能已经没有32位可寻址内存了。
如果你的PCIe芯片实际上支持更大的地址,你的驱动程序应该使用dma_set_mask
和dma_set_consistent_mask
告诉内核这个。
(见Documentation/DMA-API-HOWTO.txt
。)
答案 1 :(得分:0)
我可以使用__get_free_pages()
分配内存。