jamal wrote:
On Wed, 2005-22-06 at 09:42 +0100, P@xxxxxxxxxxxxxx wrote:
Yes the copy is essentially free here as the data is already cached.
As a data point, I went the whole hog and used buffer recycling
in my essentially packet sniffing application. I.E. there are no
allocs per packet at all, and this make a HUGE difference. On a
2x3.4GHz 2xe1000 system I can receive 620Kpps per port sustained
into my userspace app which does a LOT of processing per packet.
Without the buffer recycling is was around 250Kpps.
Note I don't reuse an skb until the packet is copied into a
PACKET_MMAP buffer.
Was this machine SMP?
Yes. 2 x 3.4GHz P4s
1 logical CPU per port (irq affinity)
1 thread (NB on same logical CPU as irq (sched_affinity))
to do user space per packet processing.
NAPI involved?
Yep.
I take it nothing interfering in
the middle with the headers?
It uses the standard path to PACKET_MMAP buffer
e1000_clean_rx_irq -> netif_receive_skb -> tpacket_rcv
Pádraig.
|