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