pcie 기반 네트워크 드라이버에서 작업 중입니다. 다른 예는 pci_alloc_consistent 또는 dma_alloc_coherent 중 하나를 사용하여 송수신 설명자를위한 메모리를 얻습니다. 어떤 것이 있다면 더 좋고 그 둘의 차이점은 무엇입니까?pci_alloc_consistent와 dma_alloc_coherent의 차이점
6
A
답변
10
차이점은 미묘하지만 중요합니다. pci_alloc_consistent()
은이 두 기능의 이전 기능이며 레거시 드라이버는 여전히이 기능을 사용합니다. 요즘, pci_alloc_consistent()
은 dma_alloc_coherent()
으로 전화합니다.
차이점은 무엇입니까? 할당 된 메모리의 유형.
pci_alloc_consistent()
- 유형GFP_ATOMIC
의 메모리를 할당합니다. 예를 들어, 인터럽트 핸들러, 하단 반쪽.dma_alloc_coherent()
- 에 할당 할 메모리 유형을 직접 지정하십시오. 필요할 때 높은 우선 순위GFP_ATOMIC
메모리 을 사용하지 않아야하며 대부분의 경우GFP_KERNEL
할당으로 문제가되지 않습니다.pci_alloc_consistent()
의
커널 3.18의 정의, 즉, 매우 간단합니다 : 한마디로
static inline void *
pci_alloc_consistent(struct pci_dev *hwdev, size_t size,
dma_addr_t *dma_handle)
{
return dma_alloc_coherent(hwdev == NULL ? NULL : &hwdev->dev, size, dma_handle, GFP_ATOMIC);
}
는 dma_alloc_coherent()
를 사용합니다.
관련 문제
- 1. BeanNameUrlHandlerMapping의 차이점 SimpleUrlHandlerMapping의 차이점
- 2. 차이점 System.Windows.Controls.Page와 Windows.UI.Xaml.Controls.Page의 차이점
- 3. 차이점
- 4. 차이점 downcase와 downcase의 차이점! Ruby에서
- 5. IE5와 IE8의 차이점 모드 차이점
- 6. achartengine의 차이점 Type.DEFAULT와 Type.STACKED의 차이점
- 7. 차이점 LayoutInflater의 차이점 SearchView 아이콘
- 8. 차이점 jaxb 차이점 자바 7과 자바 6
- 9. PhpStorm의 차이점
- 10. '와'의 차이점
- 11. 병합 차이점
- 12. 다각형 차이점
- 13. 컴파일러 차이점
- 14. 차이점 포크
- 15. sha1의 차이점
- 16. CLR의 차이점
- 17. 코드의 차이점
- 18. 정렬 차이점
- 19. UIsystemfonts의 차이점
- 20. 구문 차이점
- 21. generics의 차이점
- 22. SQL의 차이점
- 23. 네트워크의 차이점
- 24. RegEx의 차이점
- 25. 파일이없는 차이점
- 26. SignalR의 차이점
- 27. IDependencyResolver의 차이점
- 28. g ++ 차이점
- 29. 라이브러리의 차이점
- 30. 행간 차이점