[BSD] Ethernet kartya

Marton Kenyeres mkenyeres at konvergencia.hu
2004. Május. 17., H, 17:31:08 CEST


On Monday 17 May 2004 17:16, Zsolt Sztankay wrote:
> Szia!
>
> > Azert a 9MB/s = 72Mb/s mar nagysagrendileg kozeliti a halozat max
> > sebsseget.
>
> Miert ne legyek maximalista? ;-)
>
> > Szerintem siman lehet a szuk keresztmetszet a vinyo valamelyik oldalon.
> > (Mondjuk a te UDMA33-as quantumod). Ha vinyon belul masolsz, mekkora
> > sebesseget tudsz elerni?
>
> Ezt megnezem, most nem vagyok a gep kozeleben.
>
> > Mas: amennyire tudom (a szakertok majd kijavitanak) a DMA valami egesz
> > masra
> > valo mint az interupt. Az irq-val azt jelzi a kartya a rendszernek,
> > hogy
> > valamit kene csinalni, pl. tele van a buffer. Hogy aztan azt DMA-val
> > vagy
> > postagalambbal viszik at az adatot a memoriaba, szinte mindegy :)
>
> Lehet, hogy rosszul fejeztem ki magam, tudom a DMA mit jelent, csak azt
> nem tudom, a net kartyak hogyan kezelik a beeso adatokat. A DMA esetben
> arra gondoltam, hogy a kartyanak a kernel megmond egy memoriateruletet,
> a kartya oda pakolja a cuccokat es dob egy interruptot, amikor
> "befejezte" a memoriateruletet. Utana a kernel az ata drivernek szol,
> hogy DMA-val tolja ki azt a memoriateruletet vinyora. Ha tobb buffered
> van, akkor parhuzamosan lehet leszedni es felirni a vinyora. Most
> szerintem a kartya x kilobajtos memoriajaba tolti az adatokat es akkor
> szol amikor az tele van, vagy egyszeruen packetenkent szol. Ekkor a
> kernel a halokartya memoriajabol pakolja at a cuccokat vinyora. Vagy
> rosszabb esetben kartya memoria, gep memoria es vinyo a sorrend.
> DMA-val egy lepcsot meg lehetne sporolni.
>

Ize... szerintem nagyon rossz lenne, ha a halokartyan erkezo packetek egybol a 
diszkre csapodnanak be.

Valahogy ugy nez ki a dolog, hogy bejon a nyers packet, az atkerul a 
memoriaba, ott a kernel szetszedi az ethernet framet, atmegy az egesz az IP 
input rutinokon, firewallon, TCP stacken, socket alrendszeren stb, es vegul 
kikerul a userlandba a megfelelo processnek, amelyik az adott protokolnak 
megfeleloen dekodolja/feldolgozza az adatot, es amit kapott visszakuldi a 
kernelbe, hogy `na _ezt_ kene kiirni a filesystembe`. (Innentol meg eleg 
sokfele mehet az adat a kulonbozo filesystem kodokon at pl. vissza a 
halozatra ha mondjuk a file amibe irsz egy NFS mountolt fs-en van.)

Osszegezve: szerintem nem sokat lehet ezen sporolni.

m.



További információk a(z) BSD levelezőlistáról