[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <CAAsGZS74kd+XW221+FHB75fss=_2Ghwj93ekYcPceqYns8HdRw@mail.gmail.com>
Date: Tue, 7 May 2013 13:20:31 -0400
From: chetan loke <loke.chetan@...il.com>
To: Stephen Hemminger <stephen@...workplumber.org>
Cc: David Miller <davem@...emloft.net>,
Eric Dumazet <eric.dumazet@...il.com>,
gregkh@...uxfoundation.org, netdev <netdev@...r.kernel.org>
Subject: Re: [RFC 1/2] netmap: infrastructure (in staging)
On Fri, Apr 19, 2013 at 4:49 PM, Stephen Hemminger
<stephen@...workplumber.org> wrote:
>
> I get 7Mpps (single queue) with ixgbe and pktgen.
> Easily hit 14.8 Mpps (single queue) with netmap.
>
> The real problem is that DPDK and netmap can do multiple packets per request
> to driver. Right now their is one PCI bus transaction per packet with current
> driver model.
>
Look @ tpacket_v3 and you will realize that you can easily transfer a
block of packets. A block_descriptor(either the one we have or a
variant of this) is all you need when you are doing real_life packet
capture/transmit. Sure you might have a need to add other packet
descriptors but then it's easy to achieve. The tpacket_v3
block-descriptor(not packet descriptor) even has some fields that even
the state of the art FPGAs didn't have on them when I first started
venturing out in this space.
As far as coalescing PCIe transactions are concerned, it also depends
how much buffer the NIC/NPU/FPGA has. Cheap NICs don't have onboard
buffer so they can't absorb the spikes and batch small transfers. If
we test a NIC w/ another NIC it's not going to tell the whole story. A
simple spirent test will expose this.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists