From: Steve Modica <modica@sgi.com>
To: netdev@oss.sgi.com
Subject: Re: Zero copy transmit
Date: Tue, 29 Apr 2003 14:41:27 -0500 [thread overview]
Message-ID: <3EAED567.2090006@sgi.com> (raw)
In-Reply-To: <20030429192041.GC17413@Wotan.suse.de>
Andi Kleen wrote:
> On Tue, Apr 29, 2003 at 01:44:15PM -0500, Steve Modica wrote:
>
>>We are doing some experiementing with Altix systems (Itanium II with
>>NUMA) and we're taking a big hit from __copy_user traffic. We would
>>like to modify the write, writev, send and sendto interfaces such that
>>we can avoid the __copy_user call by marking pages copy-on-write (COW)
>>and handing them off to be transmitted. Since this requires TLB
>>updates, we would only implement this code on platforms that defined
>>themselves as capable of fast TLB updates.
>
>
> A much better way would be to use the POSIX aio interfaces. They support
> zero copy transmit, but don't require COW. Instead they just tell
> the user process when it is safe to touch the buffer again.
>
> There was already some code to do aio TCP sending, but it didn't
> do zero copy and was not merged for some reason.
>
> Also you can already do zero copy transmit using sendfile()
>
> Linux basically has all the infrastructure you need for this already;
> just the high level interface to the AIO system calls is still missing.
>
> -Andi
Hi Andi,
We are aware of sendfile() and used it for the purposes of proving that
zero copy would make a big difference for us.
At issue is really application capture and customer adoption. There are
tons of apps and lots of engineers that know socket operations and
write/writev. Asking all ISVs to recode for linux would leave them with
two separate APIs to deal with. They would have send/sendto or
write/writev on Solaris, HPUX and whatever else, and linux would have
sendfile.
We really want to do this in such a way that it doesn't create a huge
footprint (and we think we can) and we want to make sure we don't impact
systems that can't take advantage of fast TLB updates.
Steve
--
Steve Modica
work: 651-683-3224
mobile: 651-261-3201
Manager - Networking Drivers Group
"Give a man a fish, and he will eat for a day, hit him with a fish and
he leaves you alone" - me
next prev parent reply other threads:[~2003-04-29 19:41 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-04-29 18:44 Zero copy transmit Steve Modica
2003-04-29 19:20 ` Andi Kleen
2003-04-29 19:33 ` Robin Holt
2003-04-29 19:41 ` Andi Kleen
2003-04-29 19:41 ` Steve Modica [this message]
2003-04-29 19:59 ` Andi Kleen
2003-04-29 20:09 ` Steve Modica
2003-04-29 20:39 ` Andi Kleen
2003-04-30 1:41 ` Michael Richardson
2003-04-30 15:05 ` Robin Holt
2003-04-30 15:29 ` Andi Kleen
2003-04-29 20:17 ` Christoph Hellwig
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=3EAED567.2090006@sgi.com \
--to=modica@sgi.com \
--cc=netdev@oss.sgi.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.