Re: 10GE Click performance

Luigi Rizzo <[email protected]>
Newsgroups gmane.network.routing.click
Message-ID <[email protected]>
On Fri, Jan 20, 2012 at 10:21:15PM +0200, Beyers Cronje wrote:
> Hi Luigi,
> 
> Have you guys released the driver for linux yet, or is it still a work in
> progress? How does the libpcap emulation compare performance wise with a
> native netmap driver?

the linux driver is not ready yet, though today we managed to
send the first packets with linux-netmap. I am hoping we can get
something ready for distribution  in 2-3 weeks.

As for native vs libpcap, here are the most recent numbers i have are
for something equivalent to FromDevice -> Queue -> ToDevice :

  1.	pure netmap (zero copy)		14.2 Mpps @ 1.6  GHz
  2.	pcap_dispatch(pcap_inject())	 8.5 Mpps @ 2.93 GHz
  3.	click userspace+netmap/libpcap	 3.95Mpps @ 2.93 GHz
  4.	click userspace+bpf/libpcap 	 0.49Mpps @ 2.93 GHz

In terms of data copies and memory allocations:
#1 is really zero-copy, #2 does one copy, #3 does two copies and
one allocation (and the allocator was the bottleneck, fixed last
summer with Eddie), #4 is copies plus one Packet allocation plus
one syscall plus two mbuf allocations.

cheers
luigi

	

> Beyers
> 
> On Fri, Jan 20, 2012 at 8:54 PM, Luigi Rizzo <[email protected]> wrote:
> 
> > On Fri, Jan 20, 2012 at 09:19:43AM -0800, Roman Chertov wrote:
> > > >
> > > > Kinda wonder how prepared click is for the netmap work being done and
> > > > 10Gb performance, and if it will help
> > i

> > > I recall reading on the list that netmap maintains a TX ring and as such
> > > it is not friendly to Click configs that can hold on to some packets for
> > > a while.
> > >
> > > FromDevice(ethX) -> cl::Classifier(...)[0]
> > >                   -> Queue
> > >                   -> DelayShaper(DELAY)
> > >                   -> outQ;
> > >
> > > cl[1] -> outQ;
> > >
> > > Any clarifications from people familiar with netmap?
> >
> > Click uses the libpcap emulation to run on top of netmap,
> > so it doesn't know anything about the netmap rings.
> > Incoming frames are copied into Click's Packets in the callback
> > passed tp pcap_dispatch(), and they
> > can be stored for as long as you like provided there is
> > enough (userspace) memory.
> > When it is time to transmit, pcap_inject() copies the payload
> > from the Packet to the netmap ring and the packet goes out.
> >
> > The two copies are moderately expensive but we are still talking
> > 3-4Mpps for FromDevice -> EtherSwitch -> ToDevice .
> >
> > Anything that takes a timestamp is going to hurt much more
> > than the memory copies.
> >
> > cheers
> > luigi
> > _______________________________________________
> > click mailing list
> > [email protected]
> > https://amsterdam.lcs.mit.edu/mailman/listinfo/click
> >
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.