Ring buffer / buffer descriptor, merupakan kumpulan descriptor yang menentukan
di mana NIC akan menulis ke memory apabila ada data yang diterima.

Yang perlu diingat, memory yang digunakan untuk DMA adalah physical memory,
bukan virtual/logical. Biasanya, karena saya sendiri yang kontrol
alokasi memory,
di boot-loader, kita bisa tentukan memory mana yang "non-cache-able". Kalau Anda
tidak punya akses ke boot-loader, berarti alokasi memory harus
menggunakan kmalloc
dengan DMA flag. Masalahnya, dengan kmalloc, berarti Anda harus
menggunakan barrier
untuk read/write, dan barrier is expensive.


KOkon.

2009/7/10 dian sastro <maeje...@gmail.com>:
> Thanks pak Eko atas tanggapannya.
>
> Ring buffer nya itu ada dimana pak? Saya baca2 di google kok ring
> buffer itu adalah main memory . Juga saya baca di hardware manual
> MPC8349 juga tidak disebutkan adanya buffer di sisi NIC. Saya
> membandingkan dengan grafik card yang mempunyai memory sendiri, apa
> NIC juga punya memory tersendiri (yang disebut dengan ring buffer?)
>
> Kalau ring buffer = main memory, bagaimana kita menggunakan DMA nya
> pak pada mmap() ini? Saya membaca tentang struktur VMA, tetapi tidak
> yakin apakah ada hubungan antara handler mmap() dengan VMA ini...
>
> mohon petunjuknya pak
>
> thanks
>
> 2009/7/11 Eko Prasetya <eprase...@gmail.com>:
>> Dian,
>>
>> Kamu menggunakan freescale kan? Freescale punya DMA master yang
>> seharusnya bisa authenticate dengan DMA slave di NIC.
>> DMA master dari freescale akan memberikan daftar physical memory
>> yang bisa diakses oleh DMA slave. Apabila NIC menerima data di ring
>> buffer-nya, dia akan mengirimnya langsung ke memory, dan men-generate
>> interrupt ke processor.
>>
>>
>> KOkon.
>
> --
> Berhenti langganan: linux-programming-unsubscr...@linux.or.id
> Arsip dan info: http://linux.or.id/milis
>
>

-- 
Berhenti langganan: linux-programming-unsubscr...@linux.or.id
Arsip dan info: http://linux.or.id/milis

Kirim email ke