netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Evgeniy Polyakov <johnpol@2ka.mipt.ru>
To: Johann Baudy <johaahn@gmail.com>
Cc: David Miller <davem@davemloft.net>, netdev@vger.kernel.org
Subject: Re: Packet mmap: TX RING and zero copy
Date: Wed, 3 Sep 2008 19:13:40 +0400	[thread overview]
Message-ID: <20080903151340.GA7566@2ka.mipt.ru> (raw)
In-Reply-To: <7e0dd21a0809030800v5e39808bl2f22893bc8214c2a@mail.gmail.com>

Hi Johann.

On Wed, Sep 03, 2008 at 05:00:47PM +0200, Johann Baudy (johaahn@gmail.com) wrote:
> The driver and the hardware support DMA scater/gather and checksum offloading.
> 
> with pktgen and this below config, i reached 85MBytes/s ~ link
> saturation (I've reached the same bitrate with raw socket + TX RING
> ZeroCopy patch):

> I can't saturate the link from user space with either UDP, TCP or RAW
> socket due to copies and multiple system calls.
> 
> If the system is just doing one copy of the packet, it falls under
> 25Mbytes/s. This a simple memory bus which is only running at 100Mhz
> for data and instruction.

What is the bus width and is there burst mode support?
Not to point to the error in the speed calculation, just out of curiosity :)
Always liked such tiny systems...

> I think I've well understood why my bitrate is so bad from userspace
> using normal TCP,UDP or RAW socket.
> That's why I'm working on this zero copy solution (without copy
> between user and kernel or between kernel buffer and socket buffer;
> and with a minimum of system call).
> A kind of full zero-copy sending capability, HW accesses same buffers
> as the user.

But why sendfile/splice does not work the same?
It is (supposed to be) a zero-copy sending interface, which should be even
more optimal, than your ring buffer approach, since uses just single
syscall and no initialization of the data (well, there is page
population and so on, but if file is in the ramdisk, it is effectively
zero overhead). Can you run oprofile during sendfile() data transfer or
describe behaviour (i.e. CPU usage and tcpdump).

> In fact, I'm just suggesting the symmetric of packet mmap IO used for
> capture process with zero copy capability and I need to know what do
> you think about it.

Well, I'm not against this patch, but you pointed to the bug (or wrong
initialization in your code) of the sendfile, which has higher priority
imho :)

Actually if it is indeed a bug in splice code then (if fixed) it can
allow to have simpler zero-copy sulution for your problem.

-- 
	Evgeniy Polyakov

  reply	other threads:[~2008-09-03 15:14 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-09-02 18:27 Packet mmap: TX RING and zero copy Johann Baudy
2008-09-02 19:46 ` Evgeniy Polyakov
2008-09-03  7:56   ` Johann Baudy
2008-09-03 10:38     ` Johann Baudy
2008-09-03 11:06       ` David Miller
2008-09-03 13:05         ` Johann Baudy
2008-09-03 13:27           ` Evgeniy Polyakov
2008-09-03 14:57             ` Christoph Lameter
2008-09-03 15:00             ` Johann Baudy
2008-09-03 15:13               ` Evgeniy Polyakov [this message]
2008-09-03 15:58                 ` Johann Baudy
2008-09-03 16:43                   ` Evgeniy Polyakov
2008-09-03 20:30                     ` Johann Baudy
2008-09-03 22:03                       ` Evgeniy Polyakov
2008-09-04 14:44                         ` Johann Baudy
2008-09-05  7:17                           ` Evgeniy Polyakov
     [not found]                             ` <7e0dd21a0809050216r65b8f08fm1ad0630790a13a54@mail.gmail.com>
2008-09-05  9:17                               ` Fwd: " Johann Baudy
2008-09-05 11:31                                 ` Evgeniy Polyakov
2008-09-05 12:44                                   ` Johann Baudy
2008-09-05 13:16                                     ` Evgeniy Polyakov
2008-09-05 13:29                                       ` Johann Baudy
2008-09-05 13:37                                         ` Evgeniy Polyakov
2008-09-05 13:55                                           ` Johann Baudy
2008-09-05 14:19                                             ` Evgeniy Polyakov
2008-09-05 14:45                                               ` Johann Baudy
2008-09-05 14:59                                                 ` Evgeniy Polyakov
2008-09-05 15:30                                                   ` Johann Baudy
2008-09-05 15:38                                                     ` Evgeniy Polyakov
2008-09-05 16:01                                                       ` Johann Baudy
2008-09-05 16:34                                                         ` Evgeniy Polyakov
2008-09-08 10:21                                                           ` Johann Baudy
2008-09-08 11:26                                                             ` Evgeniy Polyakov
2008-09-08 13:01                                                               ` Johann Baudy
2008-09-08 15:28                                                                 ` Evgeniy Polyakov
2008-09-08 15:38                                                                   ` Evgeniy Polyakov
2008-09-09 23:11                                                                     ` Johann Baudy
2008-09-10  6:09                                                                       ` Evgeniy Polyakov
2008-09-05 10:28 ` Robert Iakobashvili
2008-09-05 13:06   ` Johann Baudy

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20080903151340.GA7566@2ka.mipt.ru \
    --to=johnpol@2ka.mipt.ru \
    --cc=davem@davemloft.net \
    --cc=johaahn@gmail.com \
    --cc=netdev@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).