Ultimamente, ho letto molti siti Web e libri su schede NIC da 10 GB/s, il loro DMA e il modo in cui i dati vengono gestiti dal kernel Linux (10/100 MB/s NIC) e mi sono venute alcune domande.Dal kernel allo spazio utente (DMA)
Quale sarebbe il modo più semplice per inviare un flusso di dati da 10 GB/s dalla NIC alla terra dell'utente (presumo che sia in grado di elaborare i dati nella terra dell'utente alla stessa velocità).
E
pensi che sarebbe una buona idea per l'attuazione del buffer DMA all'interno dello spazio utente per leggere i dati grezzi direttamente da lì (ed elaborarli, ovviamente, alla stessa velocità)
o sono le loro soluzioni migliori a cui non avevo pensato:/
Grazie.
ho bisogno di qualcosa di più efficiente rispetto alle prese normali di Linux, avevo letto un po 'di PF-RING e Netmap, proverò a leggerne un po 'di più oggi, grazie per la risposta. Tuttavia, non sono sicuro di quale sia la soluzione (PF-RING, Netmap di DMA in user-land), è la più veloce anche se – noktec
Google anche per i canali di rete di Van Jacobson. – ninjalj
Ho letto di PF-RING e Netmap, oltre a PACKET_MMAP, e sembra che abbiano quasi la stessa soluzione, ho anche cercato le diapositive di Van Jacobson, e avevano idee molto buone dentro! Immagino, avrò una prima prova con PACKET_MMAP, e poi farò un piccolo bench test con PF-RING, per vedere quale soluzione sembra essere la più appropriata. Ma mi chiedo se sarebbe possibile fermare i pacchetti per entrare nello sk_buff, e direttamente essere trattato da un buffer circolare nello User-land o da PF-RING (e quanto sarebbe difficile implementarlo da zero) – noktec