pci_map_single과 pci_alloc_consistent 에 대해

leonhan의 이미지

pci_map_single과 pci_alloc_consistent 에 대해
두 함수가 각각 pci dma에서 Consistent DMA mappings 방식과
stramming dma mapping 방식에 사용되는 것으로 알고 있습니다.
제가 할려고 하는 것은
file에서 읽어들인 데이터를 pci 디바이스가 dma를 이용해서 퍼가는 것을 할려고 하는건데
이때는 어떤 방식을 사용해야 하는지요 ?
즉 계속 적으로 파일에서 읽어들이고 계속적으로 퍼가는 것인데 .
대강 보니깐 이때 stramming dma mapping방식을 써서
1) pci_map_single로 메모리 잡기
2) 파일에서 데이터 읽어 메모리에 넣기
3) dma run
4) dma 끝났다는 인터럽트 뜨면 pci_unmap_single
5) 1로 다시 반복

이럴거 같은데 그럼 이건 동시에 실행되는 것이 아니라
dma가 데이터를 가져가는 동안은 파일에서 읽어들이면 안되는 방식 같습니다.
즉 dma 끝날때까지 기다렸다가 그리고 unmap하고 다시 메모리 map 해서
다시 읽는 방식인데 ...
이렇게 이해하는 것이 맞습니까 ??
그리고 이렇게 하는 것은 버퍼에 동시 접근을 막기 위해서인가요 ?

전반적 설명을 부탁드립니다.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.